系统管理指南:安全性服务

配置和启用审计服务

为站点设置配置文件之后,需要为审计文件设置磁盘空间。还需要设置审计服务的其他属性,然后启用此服务。本节还包含更改配置设置时刷新审计服务的过程。

安装非全局区域后,可以采用与审计全局区域完全相同的方式来审计此非全局区域。或者,可以在非全局区域中修改审计配置文件,以便单独审计非全局区域。要自定义审计配置文件,请参见配置审计文件(任务列表)

Procedure如何创建审计文件的分区

以下过程说明如何创建审计文件及相应文件系统和目录的分区。根据需要可跳过一些步骤,具体取决于是否已经具有空分区,或者是否已经挂载了空文件系统。

  1. 承担主管理员角色,或成为超级用户。

    主管理员角色拥有主管理员配置文件。要创建角色并将角色指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 确定所需的磁盘空间量。

    至少为每台主机指定 200 MB 磁盘空间。但是,由于所需审计量决定磁盘空间需求,因此,所需的磁盘空间可能远大于此数字。请记住要包括一个用于最后使用的目录的本地分区。

  3. 根据需要创建专用的审计分区。

    此步骤可以在服务器安装期间非常轻松地完成。另外,还可以在尚未挂载到服务器上的磁盘中创建分区。有关如何创建分区的完整说明,请参见《系统管理指南:设备和文件系统》中的第 12  章 “管理磁盘(任务)”


    # newfs /dev/rdsk/cwtxdysz
    

    其中 /dev/rdsk/cwtxdysz 是分区的原始设备名称。

    如果要审计本地主机,还要为本地主机创建最后使用的审计目录。

  4. 为每个新分区创建挂载点。


    # mkdir /var/audit/server-name.n
    

    其中 server-name.n 是服务器名称加一个标识各个分区的数字。数字是可选的,但是存在多个审计目录时,此数字非常有用。

  5. 添加自动挂载新分区的项。

    将类似以下内容的行添加到 /etc/vfstab 文件:


    /dev/dsk/cwtxdysz /dev/rdsk/cwtxdysz /var/audit/server-name.n   ufs  2  yes
  6. (可选的)删除每个分区上的最小空闲空间阈值。

    如果使用缺省配置,则会在目录的使用率达到 80% 时生成警告,出现此消息后,便无需再在分区上保留空闲空间。


    # tunefs -m 0 /var/audit/server-name.n
    
  7. 挂载新的审计分区。


    # mount /var/audit/server-name.n
    
  8. 在新分区上创建审计目录。


    # mkdir /var/audit/server-name.n/files
  9. 更正挂载点和新目录的权限。


    # chmod -R 750 /var/audit/server-name.n/files
  10. 在文件服务器上,定义其他主机可以使用的文件系统。

    通常,会安装磁盘组来存储审计记录。如果一个审计目录要供多个系统使用,则必须通过 NFS 服务来共享此目录。在 /etc/dfs/dfstab 文件中针对每个目录添加类似以下内容的项:


    share -F nfs /var/audit/server-name.n/files
  11. 在文件服务器上,重新启动 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) 手册页。


示例 29–12 创建最后使用的审计目录

运行审计服务的所有系统都应具有一个本地文件系统,当其他文件系统不可用时可以使用此本地文件系统。在本示例中,将在名为 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


示例 29–13 创建新的审计分区

在本示例中,将在由网络中其他系统使用的两个新磁盘上创建一个新的文件系统。


# 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

Procedure如何配置 audit_warn 电子邮件别名

audit_warn 脚本会针对名为 audit_warn 的电子邮件别名生成邮件。要将此邮件发送到有效的电子邮件地址,可以执行步骤 2 中介绍的选项之一:

  1. 承担主管理员角色,或成为超级用户。

    主管理员角色拥有主管理员配置文件。要创建角色并将角色指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 配置 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

Procedure如何配置审计策略

审计策略确定本地主机审计记录的特征。启用审计后,/etc/security/audit_startup 文件的内容将确定审计策略。

可以使用 auditconfig 命令来检查、启用或禁用当前审计策略选项。另外,还可以通过修改 audit_startup 脚本中 auditconfig 命令的策略选项来做出永久的审计策略更改。

  1. 承担拥有审计控制配置文件的角色或成为超级用户。

    要创建拥有审计控制配置文件的角色并将该角色指定给用户,请参见配置 RBAC(任务列表)

  2. 查看审计策略。

    在启用审计之前,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   对记录进行计数,而非删除
    
  3. 查看可用的策略选项。


    $ auditconfig -lspolicy
    

    注 –

    只能在全局区域中设置 perzoneahlt 策略选项。


  4. 启用或禁用选定的审计策略选项。


    # auditconfig -setpolicy prefixpolicy
    
    prefix

    prefix+ 会启用策略选项。prefix- 会禁用策略选项。

    policy

    选择要启用或禁用的策略。

    直到下次引导,或者由 auditconfig -setpolicy 命令修改此策略后,此策略才生效。

    有关每个策略选项的说明,请参见确定审计策略


示例 29–14 设置 cntahlt 审计策略选项

在本示例中,禁用了 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


示例 29–15 临时设置 seq 审计策略

在本示例中,auditd 守护进程正在运行,并已设置 ahlt 审计策略。seq 审计策略添加到当前策略。seq 策略会在每条审计记录中添加 sequence 标记。在正在删除记录或审计记录已损坏时,此操作可以用来调试审计服务。

+ 前缀将 seq 选项添加到审计策略,而不是使用 seq 替换当前审计策略。auditconfig 命令直到下次调用此命令或下次引导时才使此策略生效。


$ auditconfig -setpolicy +seq

$ auditconfig -getpolicy

audit policies = ahlt,seq	


示例 29–16 设置 perzone 审计策略

在本示例中,在全局区域的 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


示例 29–17 更改审计策略

在本示例中,审计守护进程正在运行,并已设置审计策略。auditconfig 命令会针对会话持续时间更改 ahltcnt 策略。在此设置下,当审计文件系统已满时,会删除审计记录,但也会对审计记录进行计数。有关设置 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 策略选项。当可用性比审计记录提供的安全性更重要时,适合使用此设置。


Procedure如何启用审计

此过程在全局区域中启动审计服务。要在非全局区域中启用审计服务,请参见示例 29–18

开始之前

应该在完成以下任务后执行此过程:

  1. 成为超级用户并使系统进入单用户模式。


    % su
    
    Password: <键入超级用户口令>
    
    # init S
    

    有关更多信息,请参见 init(1M) 手册页。

  2. 运行启用审计服务的脚本。

    转至 /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) 手册页。

  3. 使系统进入多用户模式。


    # init 6
    

    启动文件 /etc/security/audit_startup 使 auditd 守护进程在系统进入多用户模式时自动运行。

    此脚本的另一个影响是启用设备分配。要配置设备分配,请参见管理设备分配(任务列表)


示例 29–18 在非全局区域中启用审计

以下示例中,在全局区域中启用审计并引导非全局区域后,全局区域管理员启动了 perzone 策略。非全局区域的区域管理员配置了此区域的审计文件,随后在此区域中启动审计守护进程。


zone1# /usr/sbin/audit -s

Procedure如何禁用审计

如果在某一点不再需要审计服务,则此过程会使系统返回到启用审计之前的系统状态。如果正在审计非全局区域,则其审计服务也将禁用。


注意 – 注意 –

此命令还禁用设备分配。如果需要分配设备,请勿运行此命令。要禁用审计并保留设备分配,请参见示例 29–19


  1. 成为超级用户并使系统进入单用户模式。


    % su
    
    Password: <键入超级用户口令>
    
    # init S
    

    有关更多信息,请参见 init(1M) 手册页。

  2. 运行此脚本以禁用审计。

    转至 /etc/security 目录,并执行 bsmunconv 脚本。


    # cd /etc/security
    
    # ./bsmunconv
    

    此脚本的另一个影响是禁用设备分配。

    有关 bsmunconv 脚本的全部影响的信息,请参见 bsmconv(1M) 手册页。

  3. 使系统进入多用户模式。


    # init 6
    

示例 29–19 禁用审计并保持设备分配

在本示例中,审计服务停止收集记录,但是设备分配继续工作。将删除 audit_control 文件中 flagsnaflagsplugin 项的所有值,同时也将删除 audit_user 文件中所有用户项。


# audit_control file

…

flags:

minfree:10

naflags:

plugin:



# audit_user file


auditd 守护进程将运行,但是不保留任何审计记录。


Procedure如何更新审计服务

当在运行守护进程之后更改审计配置时,此过程将重新启动 auditd 守护进程。

  1. 承担拥有审计控制权限配置文件的角色或成为超级用户。

    要创建拥有审计控制权限配置文件的角色并将该角色指定给用户,请参见配置 RBAC(任务列表)

  2. 选择适当的命令。

    • 如果修改 audit_control 文件中的 naflags 行,请更改无归属事件的内核掩码。


      $ /usr/sbin/auditconfig -aconf
      

      也可以重新引导。

    • 如果修改 audit_control 文件中的其他行,请重新读取 audit_control 文件。

      审计守护进程内部存储 audit_control 文件的信息。要使用新信息,请重新引导系统或指示审计守护进程读取已修改的文件。


      $ /usr/sbin/audit -s
      

      注 –

      将基于与每个进程相关联的审计预选掩码生成审计记录。执行 audit -s会在现有进程中更改掩码。要更改现有进程的预选掩码,必须重新启动此进程。也可以重新引导。


      audit -s 命令使审计守护进程从 audit_control 文件中重新读取 directoryminfree 值。此命令会更改后续登录所产生进程的预选掩码的生成。

    • 如果在审计守护进程运行时修改 audit_event 文件或 audit_class 文件,请刷新审计服务。

      将已修改事件到类的映射读入系统,并且确保正确审计使用此计算机的每个用户。


      $ auditconfig -conf
      
      $ auditconfig -setumask auid classes
      
      auid

      用户 ID。

      classes

      预选审计类。

    • 要在正在运行的系统上更改审计策略,请参见示例 29–15


示例 29–20 重新启动审计守护进程

在本示例中,系统降为单用户模式,随后回升到多用户模式。当系统进入多用户模式时,会将已修改的审计配置文件读入系统。


# init S

# init 6