JavaScript is required to for searching.
跳过导航链接
退出打印视图
系统管理指南:安全性服务     Oracle Solaris 10 8/11 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

第 1 部分安全性概述

1.  安全性服务(概述)

第 2 部分系统、文件和设备安全性

2.  管理计算机安全性(概述)

3.  控制对系统的访问(任务)

4.  控制对设备的访问(任务)

5.  使用基本审计报告工具(任务)

6.  控制对文件的访问(任务)

7.  使用自动安全性增强工具(任务)

第 3 部分角色、权限配置文件和特权

8.  使用角色和特权(概述)

9.  使用基于角色的访问控制(任务)

10.  基于角色的访问控制(参考)

11.  特权(任务)

12.  特权(参考)

第 4 部分加密服务

13.  Oracle Solaris 加密框架(概述)

14.  Oracle Solaris 加密框架(任务)

15.  Oracle Solaris 密钥管理框架

第 5 部分验证服务和安全通信

16.  使用验证服务(任务)

17.  使用 PAM

18.  使用 SASL

19.  使用 Oracle Solaris 安全 Shell(任务)

20.  Oracle Solaris 安全 Shell(参考)

第 6 部分Kerberos 服务

21.  Kerberos 服务介绍

22.  规划 Kerberos 服务

23.  配置 Kerberos 服务(任务)

24.  Kerberos 错误消息和故障排除

25.  管理 Kerberos 主体和策略(任务)

26.  使用 Kerberos 应用程序(任务)

27.  Kerberos 服务(参考)

第 7 部分Oracle Solaris 审计

28.  Oracle Solaris 审计(概述)

29.  规划 Oracle Solaris 审计

30.  管理 Oracle Solaris 审计(任务)

Oracle Solaris 审计(任务列表)

配置审计文件(任务列表)

配置审计文件(任务)

如何修改 audit_control 文件

如何配置 syslog 审计日志

如何更改用户审计特征

如何添加审计类

如何更改审计事件的类成员身份

配置和启用审计服务(任务列表)

配置和启用审计服务(任务)

如何为审计文件创建分区

如何配置 audit_warn 电子邮件别名

如何配置审计策略

如何启用审计服务

如何禁用审计服务

如何更新审计服务

在区域中配置审计服务(任务)

如何配置以相同方式审计所有区域

如何配置每区域审计

管理审计记录(任务列表)

管理审计记录

如何显示审计记录格式

如何合并审计迹中的审计文件

如何从审计迹中选择审计事件

如何查看二进制审计文件的内容

如何清除 not_terminated 审计文件

如何防止审计迹溢出

Oracle Solaris 审计的故障排除(任务)

Oracle Solaris 审计的故障排除(任务列表)

如何确定 Oracle Solaris 正在运行中

如何减少生成的审计记录数目

如何审计用户执行的所有命令

如何找到对特定文件更改的审计记录

如何修改用户的预选掩码

如何阻止审计某些事件

如何限制二进制审计文件的大小

如何审计从其他操作系统的登录

如何审计 FTP 和 SFTP 文件传输

31.  Oracle Solaris 审计(参考)

词汇表

索引

配置和启用审计服务(任务)

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

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

如何为审计文件创建分区

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

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

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

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

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

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

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

    # newfs /dev/rdsk/cwtxdysz

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

    如果要审计本地主机,还要为本地主机创建一个迫不得已时使用的审计目录。

  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 命令或第一组 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 服务"。有关管理持久性服务的信息,请参见《系统管理指南:基本管理》中的第 18  章 "管理服务(概述)"smf(5) 手册页。

示例 30-13 创建迫不得已时使用的审计目录

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

示例 30-14 创建新的审计分区

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

# 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

示例 30-15 创建 ZFS 审计分区

在本示例中,管理员在创建 ZFS 审计分区之后运行 script 命令。以下是命令输出:

# zpool create auditf mirror c0t4d0 c0t5d0
# zfs create -o mountpoint=/audit auditf/audit
# zfs create auditf/audit/noddy
# zfs create auditf/audit/noddy/files
# zfs create auditf/audit/blinken
# zfs create auditf/audit/blinken/files
# zfs set devices=off auditf/audit
# zfs set exec=off auditf/audit
# zfs set setuid=off auditf/audit
# zfs set sharenfs=on auditf/audit
# share
-               /audit/blinken/files   rw   ""
-               /audit/noddy   rw   ""
-               /audit/blinken   rw   ""
-               /audit/noddy/files   rw   ""
-               /audit   rw   ""
# ^D
script done on Fri Apr 10 10:10:20 2009

然后,管理员查看从远程系统 remotesys 的挂载。

# dfshares remotesys
RESOURCE                             SERVER ACCESS    TRANSPORT
remotesys:/audit/blinken/files       remotesys  -         -
remotesys:/audit/noddy               remotesys  -         -
remotesys:/audit/blinken             remotesys  -         -
remotesys:/audit/noddy/files         remotesys  -         -
remotesys:/audit                     remotesys  -         -

最后,管理员在 /var/audit 上挂载 /audit 文件系统。

# mount remotesys:/audit /var/audit
# ls /var/audit
blinken  noddy 

如何配置 audit_warn 电子邮件别名

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

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

    Primary Administrator(主管理员)角色拥有 Primary Administrator(主管理员)配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 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

如何配置审计策略

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

可以使用 auditconfig 命令来检查和更改当前的审计策略选项。另外,还可以通过在 audit_startup 脚本中修改 auditconfig 命令的策略选项来进行永久的审计策略更改。

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

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

  2. 查看审计策略。

    在启用审计之前,audit_startup 文件的内容将确定审计策略:

    #! /bin/sh
    ...
    /usr/bin/echo "Starting BSM services."
    /usr/sbin/auditconfig -setpolicy +cnt Counts rather than drops records
    /usr/sbin/auditconfig -conf  Configures event-class mappings
    /usr/sbin/auditconfig -aconf Configures nonattributable events
  3. 查看可用的策略选项。
    $ auditconfig -lspolicy

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


  4. 启用或禁用选定的审计策略选项。
    # auditconfig -setpolicy prefixpolicy
    prefix

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

    policy

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

    下次引导之后,或者使用 auditconfig -setpolicy 命令修改策略后,该策略才会生效。

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

示例 30-16 设置 cntahlt 审计策略选项

在本示例中,禁用了 cnt 策略,启用了 ahlt 策略。在这些设置下,当审计分区已满而发生异步事件时,会中止系统的使用。发生同步事件时,会挂起创建线程的进程。这些设置适用于安全性比可用性更重要的情况。

以下 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

示例 30-17 临时设置 seq 审计策略

在本示例中,auditd 守护进程正在运行,并已设置 ahlt 审计策略。seq 审计策略被添加到当前策略。seq 策略会在每条审计记录中添加一个 sequence 标记。审计记录损坏或丢失时,此功能可用于调试审计服务。

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

$ auditconfig -setpolicy +seq
$ auditconfig -getpolicy
audit policies = ahlt,seq    

示例 30-18 设置 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

示例 30-19 更改审计策略

在本示例中,审计守护进程正在运行,并已设置审计策略。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 策略选项。当可用性比审计记录提供的安全性更重要时,适合使用此设置。

如何启用审计服务

此过程启用所有区域的审计服务。要在非全局区域中启用审计守护进程,请参见示例 30-20

安全地配置审计后,系统将处于单用户模式下,直到启用了审计。也可以在多用户模式下启用审计。

开始之前

应在完成以下任务后,以超级用户身份执行此过程:


注 - 要使审计正常进行,主机名转换必须能够正确进行。命名服务中的 hosts 数据库必须配置正确,且工作正常。

有关主机数据库的配置,请参见 nsswitch.conf(4)netconfig(4) 手册页。有关其他信息,请参见《系统管理指南:名称和目录服务(DNS、NIS 和 LDAP)》《System Administration Guide: Naming and Directory Services (NIS+)》


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

    转到 /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: turning on audit module.
    bsmconv: INFO: initializing device allocation.
    
    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) 手册页。

  2. 重新引导系统。
    # reboot

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

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

示例 30-20 在非全局区域中启用审计

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

zone1# svcadm enable svc:/system/auditd

如何禁用审计服务

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


注意

注意 - 此命令还将禁用设备分配。如果需要能够分配设备,请勿运行此命令。要禁用审计并保留设备分配,请参见示例 30-21


  1. 成为超级用户并使系统进入单用户模式。
    % su
    Password: <Type root password>
    # init S

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

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

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

    # cd /etc/security
    # ./bsmunconv

    该脚本的另一个结果是禁用设备分配。

    有关 bsmunconv 脚本完整结果的信息,请参见 bsmconv(1M) 手册页。

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

示例 30-21 禁用审计并保持设备分配

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

## audit_control file
flags:
naflags:

## audit_user file

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

示例 30-22 按区域禁用审计

在本示例中,在禁用了审计服务的 zone1 上,审计服务停止运行。设备分配继续工作。在全局区域中运行该命令时,如果没有设置 perzone 审计策略,将禁用所有区域(而不仅仅是全局区域)的审计。

zone1 # audit -t

如何更新审计服务

此过程用于在运行 auditd 守护进程后更改了审计配置文件时重新启动该守护进程。

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

    要创建拥有 Audit Control(审计控制)权限配置文件的角色并将该角色指定给用户,请参见配置 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 文件中重新读取 directory 和 minfree 值。此命令会更改后续登录所产生进程的预选掩码的生成。

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

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

      $ auditconfig -conf
      $ auditconfig -setumask auid classes
      auid

      用户 ID。

      classes

      预选的审计类。

      有关示例,请参见如何修改用户的预选掩码

    • 要在运行中系统上更改审计策略,请参见示例 30-17

示例 30-23 重新启动审计守护进程

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

# init S
# init 6