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 审计(参考)

词汇表

索引

管理审计记录

通过管理审计迹,可以监视网络中的用户操作。审计可以生成大量数据。以下任务说明如何处理所有这些数据。

如何显示审计记录格式

要编写可查找所需审计数据的脚本,您需要了解审计事件中的标记顺序。bsmrecord 命令可显示审计事件的审计事件编号、审计类、选择掩码和记录格式。

示例 30-26 显示程序的审计记录格式

在本示例中,将显示 login 程序生成的所有审计记录的格式。登录程序包括 rlogintelnetnewgrp、Solaris Management Console 的角色登录,以及 Oracle Solaris 安全 Shell。

% bsmrecord -p login
login: logout
  program     various              See login(1)
  event ID    6153                 AUE_logout
…

newgrp
  program     newgrp               See newgrp login
  event ID    6212                 AUE_newgrp_login
…

rlogin
  program     /usr/sbin/login      See login(1) - rlogin
  event ID    6155                 AUE_rlogin
…

SMC: role login
  program     SMC server           See role login
  event ID    6173                 AUE_role_login
…

/usr/lib/ssh/sshd
  program     /usr/lib/ssh/sshd    See login - ssh
  event ID    6172                 AUE_ssh
…

telnet login
  program     /usr/sbin/login      See login(1) - telnet
  event ID    6154                 AUE_telnet
  …

示例 30-27 显示审计类的审计记录格式

在本示例中,将显示 fd 类中所有审计记录的格式。

% bsmrecord -c fd

rmdir
  system call rmdir                See rmdir(2)
  event ID    48                   AUE_RMDIR
  class       fd                   (0x00000020)
      header
      path
      [attribute]
      subject
      [use_of_privilege]
      return

unlink
  system call unlink               See unlink(2)
  event ID    6                    AUE_UNLINK
  …

unlinkat
  system call unlinkat             See openat(2)
  event ID    286                  AUE_UNLINKAT
  …

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

通过合并所有审计目录中的所有审计文件,可以分析整个审计迹的内容。auditreduce 命令将其输入文件中的所有记录合并到单个输出文件中。然后可以删除输入文件。将输出文件保存到名为 /etc/security/audit/server-name /files 的目录中时,auditreduce 命令可以找到此输出文件,而无需指定全路径。


注 - 此过程仅适用于二进制审计记录。


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

    System Administrator(系统管理员)角色拥有 Audit Review(审计查看)配置文件。另外,还可以创建拥有 Audit Review(审计查看)配置文件的单独用户。要创建角色并将其指定给用户,请参见配置 RBAC(任务列表)

  2. 创建存储合并的审计文件的目录。
    # mkdir audit-trail-directory
  3. 限制对该目录的访问。
    # chmod 700 audit-trail-directory
    # ls -la audit-trail-directory
    drwx------   3 root     sys          512 May 12 11:47 .
    drwxr-xr-x   4 root     sys         1024 May 12 12:47 ..
  4. 合并审计迹中的审计记录。

    转至 audit-trail-directory 目录,并将审计记录合并到带有指定后缀的文件中。将合并在本地系统上 audit_control 文件中的 dir 行列出的所有目录。

    # cd audit-trail-directory
    # auditreduce -Uppercase-option -O suffix

    auditreduce 命令的大写选项用于处理审计迹中的文件。大写选项包括:

    -A

    选择审计迹中的所有文件。

    -C

    只选择完整文件。此选项会忽略带有后缀 not_terminated 的文件。

    -M

    选择带特定后缀的文件。后缀可以是机器名,也可以是为摘要文件指定的后缀。

    -O

    在当前目录中创建一个开始时间和结束时间为 14 个字符时间戳且后缀为 suffix 的审计文件。

示例 30-28 将审计文件复制到摘要文件

在以下示例中,System Administrator(系统管理员)角色 sysadmin 将审计迹中的所有文件复制到一个合并文件中。

$ whoami
sysadmin
$ mkdir /var/audit/audit_summary.dir
$ chmod 700 /var/audit/audit_summary.dir
$ cd /var/audit/audit_summary.dir
$ auditreduce -A -O All
$ ls *All
20100827183214.20100827215318.All

在以下示例中,只将审计迹中的完整文件复制到一个合并文件中。

$ cd /var/audit/audit_summary.dir
$ auditreduce -C -O Complete
$ ls *Complete
20100827183214.20100827214217.Complete

在以下示例中,只将 example1 计算机上的完整文件复制到一个合并文件中。

$ cd /var/audit/audit_summary.dir
$ auditreduce -M example1 -O example1summ
$ ls *summ
20100827183214.20100827214217.example1summ

示例 30-29 将审计文件移动到摘要文件

auditreduce 命令的 -D 选项会在您将审计文件复制到其他位置时将其删除。在以下示例中,会将一个系统中的完整审计文件复制到摘要目录,供以后检查。

$ cd /var/audit/audit_summary.dir
$ auditreduce -C -O daily_example1 -D example1
$ ls *example1
20100827183214.20100827214217.daily_example1

此命令成功完成后,将删除 example1 系统中的审计文件,这些审计文件是 *daily_example1 文件的输入。

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

可以过滤审计记录以进行检查。有关过滤选项的完整列表,请参见 auditreduce(1M) 手册页。

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

    System Administrator(系统管理员)角色拥有 Audit Review(审计查看)配置文件。另外,还可以创建拥有 Audit Review(审计查看)配置文件的单独用户。要创建角色并将其指定给用户,请参见配置 RBAC(任务列表)

  2. 从审计迹或指定的审计文件中选择所需的记录类型。
    auditreduce -lowercase-option argument [optional-file]
    argument

    小写选项所需的特定参数。例如,-c 选项需要审计类的 argument,例如 ua

    -d

    选择特定日期的所有事件。argument 的日期格式为 yyymmdd。其他日期选项 -b-a 选择特定日期之前和之后的事件。

    -u

    选择归属于特定用户的所有事件。argument 是用户名。另一个用户选项 -e 选择归属于有效用户 ID 的所有事件。

    -c

    选择预选审计类中的所有事件。argument 是审计类名。

    -m

    选择特定审计事件的所有实例。argument 是审计事件。

    optional-file

    审计文件的名称。

示例 30-30 合并和减少审计文件

auditreduce 命令可以在合并输入文件时删除不太感兴趣的记录。例如,可以使用 auditreduce 命令仅保留审计文件中一个月以前的登录和注销记录。如果需要获取完整的审计迹,可以从备份介质中恢复。

# cd /var/audit/audit_summary.dir
# auditreduce -O lo.summary -b 20100827 -c lo; compress *lo.summary

示例 30-31 将 na 审计记录复制到摘要文件

在本示例中,将审计迹中的所有无归属审计事件记录收集到一个文件中。

$ whoami
sysadmin
$ cd /var/audit/audit_summary.dir
$ auditreduce -c na -O nasumm
$ ls *nasumm
20100827183214.20100827215318.nasumm

将使用 na 记录的开始和结束日期为合并的 nasumm 审计文件设置时间戳。

示例 30-32 在指定的审计文件中查找审计事件

可以手动选择审计文件以仅搜索指定的文件组。例如,可以通过进一步处理前面示例中的 *nasumm 文件来查找系统引导事件。要执行此操作,可以指定文件名作为 auditreduce 命令的最后一个参数。

$ auditreduce -m 113 -O systemboot 20100827183214.20100827215318.nasumm
20100827183214.20100827183214.systemboot

20100827183214.20100827183214.systemboot 文件只包含系统引导审计事件。

示例 30-33 将一个用户的审计记录复制到摘要文件

在本示例中,将合并审计迹中包含特定用户名的记录。-e 选项用于查找有效用户。-u 选项用于查找审计用户。

$ cd /var/audit/audit_summary.dir
$ auditreduce -e tamiko -O tamiko

可以在此文件中查找特定事件。在以下示例中,将检查 2010 年 9 月 7 日(您的当地时间)用户登录和注销的时间。只检查那些以用户名作为文件后缀的文件。日期的简洁形式为 yyyymmdd

# auditreduce -M tamiko -O tamikolo -d 20100907 -u tamiko -c lo

示例 30-34 将选定记录复制到单个文件中

在本示例中,将从审计迹中选择特定日期的登录和注销消息。将这些消息合并到一个目标文件中。该目标文件将保存到常规审计根目录以外的其他目录中。

# auditreduce -c lo -d 20100827 -O /var/audit/audit_summary.dir/logins
# ls /var/audit/audit_summary.dir/*logins
/var/audit/audit_summary.dir/20100827183936.20100827232326.logins

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

使用 praudit 命令可以查看二进制审计文件的内容。可以传输 auditreduce 命令的输出,也可以读取特定审计文件。-x 选项可用于进一步处理。

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

    System Administrator(系统管理员)角色拥有 Audit Review(审计查看)配置文件。另外,还可以创建拥有 Audit Review(审计查看)配置文件的单独用户。要创建角色并将其指定给用户,请参见配置 RBAC(任务列表)

  2. 使用以下 praudit 命令之一来生成最符合您需要的输出。

    以下示例显示同一审计事件的 praudit 输出。审计策略已设置为包括 sequencetrailer 标记。

    • praudit -s 命令以短格式显示审计记录,每行一个标记。使用 -l 选项在一行放置一条记录。

      $ auditreduce -c lo | praudit -s
      header,101,2,AUE_rlogin,,example1,2010-10-13 11:23:31.050 -07:00
      subject,jdoe,jdoe,staff,jdoe,staff,749,749,195 1234 server1
      text,successful login 
      return,success,0 
      sequence,1298
    • praudit -r 命令以原始格式显示审计记录,每行一个标记。使用 -l 选项在一行放置一条记录。

      $ auditreduce -c lo | praudit -r
      21,101,2,6155,0x0000,192.168.60.83,1062021202,64408258
      36,2026700,2026700,10,2026700,10,749,749,195 1234 192.168.60.17
      40,successful login
      39,0,0
      47,1298
    • praudit -x 命令以 XML 格式显示审计记录,每行一个标记。使用 -l 选项在 XML 输出中的每一行放置一条记录。

      $ auditreduce -c lo | praudit -x
      <record version="2" event="login - rlogin" host="example1" 
      time="Wed Aug 27 14:53:22 PDT 2010" msec="64">
      <subject audit-uid="jdoe" uid="jdoe" gid="staff" ruid="jdoe" 
      rgid="staff" pid="749" sid="749" tid="195 1234 server1"/>
      <text>successful login</text>
      <return errval="success" retval="0"/>
      <sequence seq-num="1298"/>
      
      </record>

示例 30-35 打印整个审计迹

通过 lp 命令的管道,可整个审计迹的输出将传输到打印机。打印机的访问应受到限制。

# auditreduce | praudit | lp -d example.protected.printer

示例 30-36 查看特定审计文件

在本示例中,将在终端窗口中查看登录文件摘要。

# cd /var/audit/audit_summary.dir/logins
# praudit 20100827183936.20100827232326.logins | more

示例 30-37 以 XML 格式显示审计记录

在本示例中,将审计记录转换为 XML 格式。

# praudit -x 20100827183214.20100827215318.logins > 20100827.logins.xml

可以在浏览器中显示 *xml 文件。可以使用脚本对文件内容进行操作,以提取相关信息。

故障排除

如果出现类似如下的消息,表明您没有足够的特权,无法使用 praudit 命令:

praudit: Can't assign 20090408164827.20090408171614.example1 to stdin.

如何清除 not_terminated 审计文件

偶尔,审计守护进程会在其审计文件仍处于打开状态时退出。也可能会出现服务器无法访问而强制计算机切换到新服务器的情况。在这种情况下,尽管审计文件不再用于审计记录,但此文件仍然保留,并以字符串 not_terminated 作为结束时间戳。使用 auditreduce -O 命令可为此文件提供正确时间戳。

  1. 在审计文件系统上,按创建顺序列出带有 not_terminated 字符串的文件。
    # ls -R1t audit-directory*/files/* | grep not_terminated
    -R

    列出子目录中的文件。

    -t

    按照从最新到最旧的顺序列出文件。

    -1

    将文件列成一列。

  2. 清除旧的 not_terminated 文件。

    auditreduce -O 命令指定旧文件的名称。

    # auditreduce -O system-name old-not-terminated-file
  3. 删除旧的 not_terminated 文件。
    # rm system-name old-not-terminated-file

示例 30-38 清除关闭的 not_terminated 审计文件

在以下示例中,查找并重命名 not_terminated 文件,然后删除原始文件。

ls -R1t */files/* | grep not_terminated
…/egret.1/20100908162220.not_terminated.egret
…/egret.1/20100827215359.not_terminated.egret
# cd */files/egret.1
# auditreduce -O egret 20100908162220.not_terminated.egret
# ls -1t
20100908162220.not_terminated.egret Current audit file
20100827230920.20100830000909.egret Input (old) audit file
20100827215359.not_terminated.egret
# rm 20100827215359.not_terminated.egret
# ls -1t
20100908162220.not_terminated.egret Current audit file
20100827230920.20100830000909.egret Cleaned up audit file

新文件的开始时间戳反映 not_terminated 文件中第一个审计事件的时间。结束时间戳反映此文件中最后一个审计事件的时间。

如何防止审计迹溢出

如果安全策略要求保存所有的审计数据,请执行以下操作:

  1. 设置计划安排以定期归档审计文件。

    通过将文件备份到脱机介质来归档审计文件。此外,还可以将这些文件移动到归档文件系统。

    如果正在使用 syslog 实用程序收集文本审计日志,请归档文本日志。有关更多信息,请参见 logadm(1M) 手册页。

  2. 设置计划安排以从审计文件系统中删除已归档的审计文件。
  3. 保存和存储辅助信息。

    归档解释审计记录与审计迹所需的信息。

  4. 保留已归档审计文件的记录。
  5. 正确存储归档介质。
  6. 通过创建摘要文件,减少存储的审计数据量。

    可以使用 auditreduce 命令的选项从审计迹中提取摘要文件。摘要文件只包含指定类型审计事件的记录。要提取摘要文件,请参见示例 30-30示例 30-34