为站点设置配置文件之后,需要为审计文件设置磁盘空间。还需要设置审计服务的其他属性,然后启用此服务。本节还包含更改配置设置时刷新审计服务的过程。
安装非全局区域后,可以采用与审计全局区域完全相同的方式来审计此非全局区域。或者,可以在非全局区域中修改审计配置文件,以便单独审计非全局区域。要自定义审计配置文件,请参见配置审计文件(任务列表)。
以下过程说明如何创建审计文件及相应文件系统和目录的分区。根据需要可跳过一些步骤,具体取决于是否已经具有空分区,或者是否已经挂载了空文件系统。
承担主管理员角色,或成为超级用户。
主管理员角色拥有主管理员配置文件。要创建角色并将角色指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
确定所需的磁盘空间量。
至少为每台主机指定 200 MB 磁盘空间。但是,由于所需审计量决定磁盘空间需求,因此,所需的磁盘空间可能远大于此数字。请记住要包括一个用于最后使用的目录的本地分区。
根据需要创建专用的审计分区。
此步骤可以在服务器安装期间非常轻松地完成。另外,还可以在尚未挂载到服务器上的磁盘中创建分区。有关如何创建分区的完整说明,请参见《系统管理指南:设备和文件系统》中的第 12 章 “管理磁盘(任务)”。
# newfs /dev/rdsk/cwtxdysz |
其中 /dev/rdsk/cwtxdysz 是分区的原始设备名称。
如果要审计本地主机,还要为本地主机创建最后使用的审计目录。
为每个新分区创建挂载点。
# mkdir /var/audit/server-name.n |
其中 server-name.n 是服务器名称加一个标识各个分区的数字。数字是可选的,但是存在多个审计目录时,此数字非常有用。
添加自动挂载新分区的项。
将类似以下内容的行添加到 /etc/vfstab 文件:
/dev/dsk/cwtxdysz /dev/rdsk/cwtxdysz /var/audit/server-name.n ufs 2 yes |
(可选的)删除每个分区上的最小空闲空间阈值。
如果使用缺省配置,则会在目录的使用率达到 80% 时生成警告,出现此消息后,便无需再在分区上保留空闲空间。
# tunefs -m 0 /var/audit/server-name.n |
挂载新的审计分区。
# mount /var/audit/server-name.n |
在新分区上创建审计目录。
# mkdir /var/audit/server-name.n/files |
更正挂载点和新目录的权限。
# chmod -R 750 /var/audit/server-name.n/files |
在文件服务器上,定义其他主机可以使用的文件系统。
通常,会安装磁盘组来存储审计记录。如果一个审计目录要供多个系统使用,则必须通过 NFS 服务来共享此目录。在 /etc/dfs/dfstab 文件中针对每个目录添加类似以下内容的项:
share -F nfs /var/audit/server-name.n/files |
在文件服务器上,重新启动 NFS 服务。
如果该命令是已启动的第一个或第一组 share 命令,则 NFS 守护进程可能未运行。
如果 NFS 服务处于脱机状态,请启用此服务。
% svcs \*nfs\* disabled Nov_02 svc:/network/nfs/rquota:default offline Nov_02 svc:/network/nfs/server:default # svcadm enable network/nfs/server |
如果 NFS 服务正在运行,请重新启动此服务。
% svcs \*nfs\* online Nov_02 svc:/network/nfs/client:default online Nov_02 svc:/network/nfs/server:default # svcadm restart network/nfs/server |
有关 NFS 服务的更多信息,请参阅《系统管理指南:网络服务》中的“设置 NFS 服务”。有关管理持久性服务的信息,请参见《系统管理指南:基本管理》中的第 14 章 “管理服务(概述)”和 smf(5) 手册页。
运行审计服务的所有系统都应具有一个本地文件系统,当其他文件系统不可用时可以使用此本地文件系统。在本示例中,将在名为 egret 的系统上添加一个文件系统。由于此文件系统只在本地使用,因此无需执行任何关于文件服务器的步骤。
# newfs /dev/rdsk/c0t2d0 # mkdir /var/audit/egret # grep egret /etc/vfstab /dev/dsk/c0t2d0s1 /dev/rdsk/c0t2d0s1 /var/audit/egret ufs 2 yes - # tunefs -m 0 /var/audit/egret # mount /var/audit/egret # mkdir /var/audit/egret/files # chmod -R 750 /var/audit/egret/files |
在本示例中,将在由网络中其他系统使用的两个新磁盘上创建一个新的文件系统。
# newfs /dev/rdsk/c0t2d0 # newfs /dev/rdsk/c0t2d1 # mkdir /var/audit/egret.1 # mkdir /var/audit/egret.2 # grep egret /etc/vfstab /dev/dsk/c0t2d0s1 /dev/rdsk/c0t2d0s1 /var/audit/egret.1 ufs 2 yes - /dev/dsk/c0t2d1s1 /dev/rdsk/c0t2d1s1 /var/audit/egret.2 ufs 2 yes - # tunefs -m 0 /var/audit/egret.1 # tunefs -m 0 /var/audit/egret.2 # mount /var/audit/egret.1 # mount /var/audit/egret.2 # mkdir /var/audit/egret.1/files # mkdir /var/audit/egret.2/files # chmod -R 750 /var/audit/egret.1/files /var/audit/egret.2/files # grep egret /etc/dfs/dfstab share -F nfs /var/audit/egret.1/files share -F nfs /var/audit/egret.2/files # svcadm enable network/nfs/server |
audit_warn 脚本会针对名为 audit_warn 的电子邮件别名生成邮件。要将此邮件发送到有效的电子邮件地址,可以执行步骤 2 中介绍的选项之一:
承担主管理员角色,或成为超级用户。
主管理员角色拥有主管理员配置文件。要创建角色并将角色指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
配置 audit_warn 电子邮件别名。
选择以下选项之一:
选项 1-使用 audit_warn 脚本中的另一个电子邮件帐户替换 audit_warn 电子邮件别名。
在脚本的以下行中更改电子邮件别名:
ADDRESS=audit_warn # standard alias for audit alerts |
选项 2-将 audit_warn 电子邮件重定向到另一个邮件帐户。
在这种情况下,需要将 audit_warn 电子邮件别名添加到适当的邮件别名文件。可以将别名添加到本地 /etc/mail/aliases 文件或名称空间中的 mail_aliases 数据库。如果 root 邮件帐户成为 audit_warn 电子邮件别名的成员,则新项可能类似以下内容:
audit_warn: root |
审计策略确定本地主机审计记录的特征。启用审计后,/etc/security/audit_startup 文件的内容将确定审计策略。
可以使用 auditconfig 命令来检查、启用或禁用当前审计策略选项。另外,还可以通过修改 audit_startup 脚本中 auditconfig 命令的策略选项来做出永久的审计策略更改。
承担拥有审计控制配置文件的角色或成为超级用户。
要创建拥有审计控制配置文件的角色并将该角色指定给用户,请参见配置 RBAC(任务列表)。
在启用审计之前,audit_startup 文件的内容将确定审计策略:
#!/bin/sh /usr/bin/echo "Starting BSM services." /usr/sbin/deallocate -Is /usr/sbin/auditconfig -conf 配置事件类映射 /usr/sbin/auditconfig -aconf 配置无属性事件 /usr/sbin/auditconfig -setpolicy +cnt 对记录进行计数,而非删除 |
查看可用的策略选项。
$ auditconfig -lspolicy |
只能在全局区域中设置 perzone 和 ahlt 策略选项。
启用或禁用选定的审计策略选项。
# auditconfig -setpolicy prefixpolicy |
prefix 值 + 会启用策略选项。prefix 值 - 会禁用策略选项。
选择要启用或禁用的策略。
直到下次引导,或者由 auditconfig -setpolicy 命令修改此策略后,此策略才生效。
有关每个策略选项的说明,请参见确定审计策略。
在本示例中,禁用了 cnt 策略,同时启用了 ahlt 策略。在此设置下,当审计分区已满时,会停止系统的使用。这些设置适合在安全性比可用性更重要时使用。有关设置此策略的限制的信息,请参见步骤 3。
以下 audit_startup 项会在重新引导后禁用 cnt 策略,同时启用 ahlt 策略:
# cat /etc/security/audit_startup #!/bin/sh /usr/bin/echo "Starting BSM services." /usr/sbin/deallocate -Is /usr/sbin/auditconfig -conf /usr/sbin/auditconfig -aconf /usr/sbin/auditconfig -setpolicy -cnt /usr/sbin/auditconfig -setpolicy +ahlt |
在本示例中,auditd 守护进程正在运行,并已设置 ahlt 审计策略。seq 审计策略添加到当前策略。seq 策略会在每条审计记录中添加 sequence 标记。在正在删除记录或审计记录已损坏时,此操作可以用来调试审计服务。
+ 前缀将 seq 选项添加到审计策略,而不是使用 seq 替换当前审计策略。auditconfig 命令直到下次调用此命令或下次引导时才使此策略生效。
$ auditconfig -setpolicy +seq $ auditconfig -getpolicy audit policies = ahlt,seq |
在本示例中,在全局区域的 audit_startup 脚本中设置 perzone 审计策略。引导区域时,非全局区域将根据其区域中的审计配置设置收集审计记录。
$ cat /etc/security/audit_startup #!/bin/sh /usr/bin/echo "Starting BSM services." /usr/sbin/deallocate -Is /usr/sbin/auditconfig -conf /usr/sbin/auditconfig -aconf /usr/sbin/auditconfig -setpolicy +perzone /usr/sbin/auditconfig -setpolicy +cnt |
在本示例中,审计守护进程正在运行,并已设置审计策略。auditconfig 命令会针对会话持续时间更改 ahlt 和 cnt 策略。在此设置下,当审计文件系统已满时,会删除审计记录,但也会对审计记录进行计数。有关设置 ahlt 策略的限制,请参见步骤 3。
$ auditconfig -setpolicy +cnt $ auditconfig -setpolicy -ahlt $ auditconfig -getpolicy audit policies = cnt,seq |
将更改置于 audit_startup 文件中后,更改后的策略将永久有效:
$ cat /etc/security/audit_startup #!/bin/sh /usr/bin/echo "Starting BSM services." /usr/sbin/deallocate -Is /usr/sbin/auditconfig -conf /usr/sbin/auditconfig -aconf /usr/sbin/auditconfig -setpolicy +cnt |
不必在此文件中指定 -ahlt 选项,因为缺省情况下禁用 ahlt 策略选项。当可用性比审计记录提供的安全性更重要时,适合使用此设置。
此过程在全局区域中启动审计服务。要在非全局区域中启用审计服务,请参见示例 29–18。
应该在完成以下任务后执行此过程:
自定义审计文件-配置审计文件(任务列表)
设置审计分区-如何创建审计文件的分区
设置审计警告消息-如何配置 audit_warn 电子邮件别名
设置审计策略-如何配置审计策略
成为超级用户并使系统进入单用户模式。
% su Password: <键入超级用户口令> # init S |
有关更多信息,请参见 init(1M) 手册页。
运行启用审计服务的脚本。
转至 /etc/security 目录,并在其中执行 bsmconv 脚本。
# cd /etc/security # ./bsmconv This script is used to enable the Basic Security Module (BSM). Shall we continue with the conversion now? [y/n] y bsmconv: INFO: checking startup file. bsmconv: INFO: move aside /etc/rc3.d/S81volmgt. bsmconv: INFO: turning on audit module. bsmconv: INFO: initializing device allocation files. The Basic Security Module is ready. If there were any errors, please fix them now. Configure BSM by editing files located in /etc/security. Reboot this system now to come up with BSM enabled. |
有关此脚本的影响,请参见 bsmconv(1M) 手册页。
使系统进入多用户模式。
# init 6 |
启动文件 /etc/security/audit_startup 使 auditd 守护进程在系统进入多用户模式时自动运行。
此脚本的另一个影响是启用设备分配。要配置设备分配,请参见管理设备分配(任务列表)。
以下示例中,在全局区域中启用审计并引导非全局区域后,全局区域管理员启动了 perzone 策略。非全局区域的区域管理员配置了此区域的审计文件,随后在此区域中启动审计守护进程。
zone1# /usr/sbin/audit -s |
如果在某一点不再需要审计服务,则此过程会使系统返回到启用审计之前的系统状态。如果正在审计非全局区域,则其审计服务也将禁用。
此命令还禁用设备分配。如果需要分配设备,请勿运行此命令。要禁用审计并保留设备分配,请参见示例 29–19。
成为超级用户并使系统进入单用户模式。
% su Password: <键入超级用户口令> # init S |
有关更多信息,请参见 init(1M) 手册页。
运行此脚本以禁用审计。
转至 /etc/security 目录,并执行 bsmunconv 脚本。
# cd /etc/security # ./bsmunconv |
此脚本的另一个影响是禁用设备分配。
有关 bsmunconv 脚本的全部影响的信息,请参见 bsmconv(1M) 手册页。
使系统进入多用户模式。
# init 6 |
在本示例中,审计服务停止收集记录,但是设备分配继续工作。将删除 audit_control 文件中 flags、naflags 和 plugin 项的所有值,同时也将删除 audit_user 文件中所有用户项。
# audit_control file … flags: minfree:10 naflags: plugin: # audit_user file |
auditd 守护进程将运行,但是不保留任何审计记录。
当在运行守护进程之后更改审计配置时,此过程将重新启动 auditd 守护进程。
承担拥有审计控制权限配置文件的角色或成为超级用户。
要创建拥有审计控制权限配置文件的角色并将该角色指定给用户,请参见配置 RBAC(任务列表)。
选择适当的命令。
如果修改 audit_control 文件中的 naflags 行,请更改无归属事件的内核掩码。
$ /usr/sbin/auditconfig -aconf |
也可以重新引导。
如果修改 audit_control 文件中的其他行,请重新读取 audit_control 文件。
审计守护进程内部存储 audit_control 文件的信息。要使用新信息,请重新引导系统或指示审计守护进程读取已修改的文件。
$ /usr/sbin/audit -s |
将基于与每个进程相关联的审计预选掩码生成审计记录。执行 audit -s 不会在现有进程中更改掩码。要更改现有进程的预选掩码,必须重新启动此进程。也可以重新引导。
audit -s 命令使审计守护进程从 audit_control 文件中重新读取 directory 和 minfree 值。此命令会更改后续登录所产生进程的预选掩码的生成。
如果在审计守护进程运行时修改 audit_event 文件或 audit_class 文件,请刷新审计服务。
将已修改事件到类的映射读入系统,并且确保正确审计使用此计算机的每个用户。
$ auditconfig -conf $ auditconfig -setumask auid classes |
用户 ID。
预选审计类。
要在正在运行的系统上更改审计策略,请参见示例 29–15。
在本示例中,系统降为单用户模式,随后回升到多用户模式。当系统进入多用户模式时,会将已修改的审计配置文件读入系统。
# init S # init 6 |