跳过导航链接 | |
退出打印视图 | |
Oracle Solaris 管理:安全服务 Oracle Solaris 11 Information Library (简体中文) |
两个审计插件(audit_binfile 和 audit_syslog)将审计日志发送到您可以配置的位置。以下任务帮助您配置这些日志。
以下任务列表列出了为各种插件配置审计日志的过程。所有任务都是可选的。
|
以下过程说明如何为审计文件创建 ZFS 池以及相应的文件系统和挂载点。缺省情况下,/var/audit 文件系统为 audit_binfile 插件保存审计文件。
开始之前
您必须分配有 ZFS File System Management(ZFS 文件系统管理)和 ZFS Storage Management(ZFS 存储管理)权限配置文件。通过后一个配置文件可以创建存储池。
有关更多信息,请参见如何获取管理权限。
每个主机至少指定 200 MB 磁盘空间。但是,由于所需审计量决定磁盘空间需求,因此,所需的磁盘空间可能远大于此数字。
注 - 缺省类预选在 /var/audit 中创建文件,对于 lo 类中记录的每个事件实例(如登录、注销或角色承担),这些文件增长约 80 字节。
zpool create 命令创建一个存储池作为 ZFS 文件系统的容器。有关更多信息,请参见《Oracle Solaris 管理:ZFS 文件系统》中的第 1 章 "Oracle Solaris ZFS 文件系统(介绍)"。
# zpool create audit-pool mirror disk1 disk2
例如,从两个磁盘(c3t1d0 和 c3t2d0)创建 auditp 池并镜像这两个磁盘。
# zpool create auditp mirror c3t1d0 c3t2d0
使用一个命令创建文件系统和挂载点。创建时,文件系统已挂载。例如,下图显示了按主机名存储的审计迹存储。
注 - 如果计划加密文件系统,必须在创建文件系统时对其进行加密。有关示例,请参见示例 28-12。
加密需要进行管理。例如,挂载时需要口令短语。有关更多信息,请参见《Oracle Solaris 管理:ZFS 文件系统》中的"加密 ZFS 文件系统"。
# zfs create -o mountpoint=/mountpoint audit-pool/mountpoint
例如,为 auditf 文件系统创建 /audit 挂载点。
# zfs create -o mountpoint=/audit auditp/auditf
# zfs create -p auditp/auditf/system
例如,为 sys1 系统创建未加密的 ZFS 文件系统。
# zfs create -p auditp/auditf/sys1
创建其他文件系统的一个原因是阻止审计溢出。可以设置每个文件系统的 ZFS 配额,如步骤 9 中所示。达到每个配额时,audit_warn 电子邮件别名会通知您。要释放空间,可以将关闭的审计文件移动到远程服务器。
# zfs create -p auditp/auditf/sys1.1 # zfs create -p auditp/auditf/sys1.2
为池中的所有文件系统将以下 ZFS 属性设置为 off:
# zfs set devices=off auditp/auditf # zfs set exec=off auditp/auditf # zfs set setuid=off auditp/auditf
通常,压缩是在 ZFS 中的文件系统级别设置的。但是,由于此池中的所有文件系统都包含审计文件,因此会在顶级数据集为池设置压缩。
# zfs set compression=on auditp
另请参见《Oracle Solaris 管理:ZFS 文件系统》中的"ZFS 压缩、重复数据删除和加密属性之间的交互"。
可以设置父文件系统和/或后代文件系统上的配额。如果设置父审计文件系统上的配额,后代文件系统上的配额将强加其他限制。
在以下示例中,auditp 池中的两个磁盘都达到配额时,audit_warn 脚本将通知审计管理员。
# zfs set quota=510G auditp/auditf
在以下示例中,达到 auditp/auditf/system 文件系统的配额时,audit_warn 脚本将通知审计管理员。
# zfs set quota=170G auditp/auditf/sys1 # zfs set quota=170G auditp/auditf/sys1.1 # zfs set quota=165G auditp/auditf/sys1.2
缺省情况下,审计文件可以增长到池的大小。为了便于管理,限制审计文件的大小。请参见示例 28-14。
示例 28-12 为审计文件创建加密文件系统
为了符合站点安全要求,管理员将在打开加密的情况下创建审计文件系统。然后,管理员设置挂载点。
# zfs create -o encryption=on auditp/auditf Enter passphrase for auditp/auditf': /** Type 8-character minimum passphrase**/ Enter again: /** Confirm passphrase **/ # zfs set -o mountpoint=/audit auditp/auditf
管理员在 auditf 文件系统下创建其他文件系统时,也将加密这些后代文件系统。
示例 28-13 在 /var/audit 目录上设置配额
在本示例中,管理员在缺省审计文件系统上设置配额。达到此配额时,audit_warn 脚本将警告审计管理员。
# zfs set quota=252G rpool/var/audit
在本过程中,使用 audit_binfile 插件的属性将其他磁盘空间指定给审计迹。
开始之前
您必须分配有 Audit Configuration(审计配置)权限配置文件。
有关更多信息,请参见如何获取管理权限。
阅读 audit_binfile(5) 手册页的 OBJECT ATTRIBUTES 部分。
# man audit_binfile ... OBJECT ATTRIBUTES The p_dir attribute specifies where the audit files will be created. The directories are listed in the order in which they are to be used. The p_minfree attribute defines the percentage of free space that the audit system requires before the audit daemon invokes the audit_warn script. The p_fsize attribute defines the maximum size in bytes that an audit file can become before it is automatically closed and a new audit file opened. ...
缺省文件系统为 /var/audit。
# auditconfig -setplugin audit_binfile active p_dir=/audit/sys1.1,/var/audit
上述命令将 /audit/sys1.1 文件系统设置为审计文件的主目录,将缺省 /var/audit 文件系统设置为辅助目录。在此方案中,/var/audit 是最后考虑采用的目录。要成功完成此配置,/audit/sys1.1 文件系统必须存在。
在如何为审计文件创建 ZFS 文件系统中已创建了类似的文件系统。
auditconfig -setplugin 命令设置已配置的值。该值为审计服务的属性,因此刷新或重新启动该服务时会恢复该值。刷新或重新启动审计服务时,已配置的值变为活动状态。有关配置的活动值的信息,请参见 auditconfig(1M) 手册页。
# audit -s
示例 28-14 限制 audit_binfile 插件的文件大小
在以下示例中,二进制审计文件的大小设置为特定大小。大小是以兆字节为单位指定的。
# auditconfig -setplugin audit_binfile active p_fsize=4M # auditconfig -getplugin audit_binfile Plugin: audit_binfile (active) Attributes: p_dir=/var/audit;p_fsize=4M;p_minfree=1;
缺省情况下,审计文件大小可以无限制地增长。为了创建较小的审计文件,管理员指定文件大小上限为 4 MB。达到大小限制时,审计服务将创建新文件。管理员刷新审计服务后,文件大小限制开始生效。
# audit -s
示例 28-15 指定对审计插件的多个更改
在以下示例中,具有高吞吐量和大型 ZFS 池的系统上的管理员将更改 audit_binfile 插件的队列大小、二进制文件大小和软限制警告。管理员允许审计文件增长到 4 GB,在剩余 2% 的 ZFS 池时收到警告,并将允许的队列大小翻倍。缺省队列大小是内核审计队列的高水位标志 100,如 active audit queue hiwater mark (records) = 100 中所示。
# auditconfig -getplugin audit_binfile Plugin: audit_binfile (active) Attributes: p_dir=/var/audit;p_fsize=2G;p_minfree=1; # auditconfig -setplugin audit_binfile active "p_minfree=2;p_fsize=4G" 200 # auditconfig -getplugin audit_binfile Plugin: audit_binfile (active) Attributes: p_dir=/var/audit;p_fsize=4G;p_minfree=2; Queue size: 200
管理员刷新审计服务后,更改的规范开始生效。
# audit -s
示例 28-16 删除审计插件的队列大小
在以下示例中,将删除 audit_binfile 插件的队列大小。
# auditconfig -getplugin audit_binfile Plugin: audit_binfile (active) Attributes: p_dir=/var/audit;p_fsize=4G;p_minfree=2; Queue size: 200 # auditconfig -setplugin audit_binfile active "" "" # auditconfig -getplugin audit_binfile Plugin: audit_binfile (active) Attributes: p_dir=/var/audit;p_fsize=4G;p_minfree=2;
最后的空引号 ("") 将插件的队列大小设置为缺省值。
管理员刷新审计服务后,插件的 qsize 规范中的更改开始生效。
# audit -s
示例 28-17 设置警告的软限制
在本示例中,设置了所有审计文件系统的最低空闲空间级别,以便在文件系统的可用空间只有 2% 时发出警告。
# auditconfig -setplugin audit_binfile active p_minfree=2
缺省百分比为 1 (1)。对于大型 ZFS 池,请适当地选择较低的百分比。例如,16 TB 池的 10% 大约是 16 GB,如果设为此值将在仍剩余大量磁盘空间时向审计管理员发出警告。如果值为 2,将在剩余大约 2 GB 磁盘空间时发送 audit_warn 消息。
audit_warn 电子邮件别名用于接收警告。要设置别名,请参见如何配置 audit_warn 电子邮件别名。
对于大型池,管理员还会将文件大小限制为 3 GB。
# auditconfig -setplugin audit_binfile active p_fsize=3G
管理员刷新审计服务后,插件的 p_minfree 和 p_fsize 规范开始生效。
# audit -s
在本过程中,使用 audit_remote 插件的属性将审计迹发送到远程审计系统信息库。
开始之前
远程系统信息库上必须具有审计服务的接收者。您必须分配有 Audit Configuration(审计配置)权限配置文件。
有关更多信息,请参见如何获取管理权限。
阅读 audit_remote(5) 手册页的 OBJECT ATTRIBUTES 部分。
# man audit_remote ... OBJECT ATTRIBUTES The p_hosts attribute specifies the remote servers. You can also specify the port number and the GSS-API mechanism. The p_retries attribute specifies the number of retries for connecting and sending data. The default is 3. The p_timeout attribute specifies the number of seconds in which a connection times out.
缺省端口是 solaris_audit IANA 指定的端口 16162/tcp。缺省机制是 kerberos_v5。缺省超时为 5 秒。您还可以指定插件的队列大小。
# auditconfig -setplugin audit_remote active p_hosts=rhost1:16088:kerberos_v5
# auditconfig -setplugin audit_remote active p_retries=5
# auditconfig -setplugin audit_remote active p_timeout=3
审计服务在刷新时将读取审计插件更改。
# audit -s
可以指示审计服务,将审计队列中的部分或全部审计记录复制到 syslog 实用程序。如果记录二进制审计数据和文本摘要,二进制数据将提供完整的审计记录,而摘要将筛选数据以供实时查看。
开始之前
要配置 audit_syslog 插件,必须分配有 Audit Configuration(审计配置)权限配置文件。要配置 syslog 实用程序,必须是 root 角色。
注 - p_flags 审计类必须预选为系统缺省值,或在用户的审计标志或权限配置文件的审计标志中预选。不会为未预选的类收集记录。
# auditconfig -setplugin audit_syslog active p_flags=lo,+as,-ss
审计服务在刷新时将读取审计插件的更改。
# audit -s
审计服务可生成大量输出。要管理日志,请参见 logadm(1M) 手册页。
示例 28-18 指定 syslog 输出的审计类
在以下示例中,syslog 实用程序收集预选的审计类的子集。pf 类是在示例 28-10 中创建的。
# auditconfig -setnaflags lo,na # auditconfig -setflags lo,ss # usermod -K audit_flags=pf:no jdoe # auditconfig -setplugin audit_syslog active p_flags=lo,+na,-ss,+pf
auditconfig 命令的参数指示系统收集所有登录/注销、无归属事件以及系统状态审计记录的更改。audit_syslog 插件项指示 syslog 实用程序收集所有登录、成功的无归属事件以及失败的系统状态更改。
对于 jdoe 用户,二进制审计记录包含对调用 pfexec 命令的所有使用。要使这些事件可供以后选择,audit_binfile 或 audit_remote 插件必须处于活动状态。syslog 实用程序收集对 pfexec 命令的成功调用。
示例 28-19 将 syslog 审计记录放置在远程系统上
可以更改 syslog.conf 文件中的 audit.notice 项,使其指向远程系统。在本示例中,本地系统的名称为 sys1.1。远程系统是 remote1。
sys1.1 # cat /etc/syslog.conf … audit.notice @remote1
在 remote1 系统上,syslog.conf 文件中的 audit.notice 项指向日志文件。
remote1 # cat /etc/syslog.conf … audit.notice /var/adm/auditlog