JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris 11.1 管理:安全服务     Oracle Solaris 11.1 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

第 1 部分安全性概述

1.  安全性服务(概述)

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

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

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

4.  病毒扫描服务(任务)

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

6.  使用 BART 验证文件完整性(任务)

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

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

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

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

10.  Oracle Solaris 中的安全属性(参考信息)

第 4 部分加密服务

11.  加密框架(概述)

12.  加密框架(任务)

13.  密钥管理框架

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

14.  使用可插拔验证模块

15.  使用 安全 Shell

16.  安全 Shell(参考信息)

17.  使用简单验证和安全层

18.  网络服务验证(任务)

第 6 部分Kerberos 服务

19.  Kerberos 服务介绍

20.  规划 Kerberos 服务

21.  配置 Kerberos 服务(任务)

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

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

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

25.  Kerberos 服务(参考信息)

第 7 部分在 Oracle Solaris 中审计

26.  审计(概述)

27.  规划审计

28.  管理审计(任务)

配置审计服务(任务)

配置审计服务(任务列表)

如何显示审计服务缺省值

如何预选审计类

如何配置用户审计特征

如何更改审计策略

如何更改审计队列控制

如何配置 audit_warn 电子邮件别名

如何添加审计类

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

配置审计日志(任务)

配置审计日志(任务列表)

如何为审计文件创建 ZFS 文件系统

如何为审计迹指定审计空间

如何向远程系统信息库发送审计文件

如何配置审计文件的远程系统信息库

如何配置 syslog 审计日志

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

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

如何配置每区域审计

启用和禁用审计服务(任务)

如何刷新审计服务

如何禁用审计服务

如何启用审计服务

在本地系统上管理审计记录(任务)

在本地系统上管理审计记录(任务列表)

如何显示审计记录定义

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

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

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

如何清除 not_terminated 审计文件

如何防止审计迹溢出

审计服务的故障排除(任务)

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

如何确定审计正在运行

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

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

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

如何更新已登录用户的预选掩码

如何阻止审计特定事件

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

如何压缩专用文件系统上的审计文件

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

如何审计 FTP 和 SFTP 文件传输

29.  审计(参考信息)

词汇表

索引

在本地系统上管理审计记录(任务)

缺省插件 audit_binfile 创建审计迹。审计迹可能包含大量数据。以下任务说明如何处理所有这些数据。

在本地系统上管理审计记录(任务列表)

以下任务列表列出了有关选择、分析和管理审计记录的过程。

任务
说明
参考
显示审计记录格式。
显示为审计事件收集的信息类型和信息的显示顺序。
合并审计记录。
将多台计算机中的审计文件合并到一个审计迹中。
选择要检查的记录。
选择要研究的特定事件。
显示审计记录。
可以查看二进制审计记录。
清除错误指定的审计文件。
向审计服务意外打开的审计文件提供结束时间戳。
防止审计迹溢出。
防止写满审计文件系统。

如何显示审计记录定义

auditrecord 命令显示审计记录定义。定义提供审计事件的审计事件编号、审计类、选择掩码和记录格式。

示例 28-27 显示程序的审计记录定义

在本示例中,将显示 login 程序生成的所有审计记录的定义。登录程序包括 rlogintelnetnewgrp,以及 Oracle Solaris 的 安全 Shell 功能。

% auditrecord -p login
...
login: logout
  program     various              See login(1)
  event ID    6153                 AUE_logout
  class       lo                  (0x0000000000001000)
...
newgrp
  program     newgrp               See newgrp login
  event ID    6212                 AUE_newgrp_login
  class       lo                  (0x0000000000001000) 
...
rlogin
  program     /usr/sbin/login      See login(1) - rlogin
  event ID    6155                 AUE_rlogin
  class       lo                   (0x0000000000001000)
...
/usr/lib/ssh/sshd
  program     /usr/lib/ssh/sshd    See login - ssh
  event ID    6172                 AUE_ssh
  class       lo                   (0x0000000000001000)
...
telnet login
  program     /usr/sbin/login      See login(1) - telnet
  event ID    6154                 AUE_telnet
  class       lo                   (0x0000000000001000)
  …

示例 28-28 显示审计类的审计记录定义

在本示例中,显示在示例 28-10 中创建的 pf 类中所有审计记录的定义。

% auditrecord -c pf

pfexec
  system call pfexec               See execve(2) with pfexec enabled
  event ID    116                  AUE_PFEXEC
  class       pf                   (0x0100000000000000)
      header
      path                    pathname of the executable
      path                    pathname of working directory
      [privileges]            privileges if the limit or inheritable set are changed
      [privileges]            privileges if the limit or inheritable set are changed
      [process]               process if ruid, euid, rgid or egid is changed
      exec_arguments
      [exec_environment]      output if arge policy is set
      subject
      [use_of_privilege]
      return

使用特权时,将记录 use_of_privilege 标记。更改限制或可继承权限集时,将记录 privileges 标记。更改 ID 时,将记录 process 标记。无需任何策略选项即可将这些标记包含在记录中。

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

通过合并所有审计目录中的审计文件,可以分析整个审计迹的内容。


注 - 由于审计迹中的时间戳采用的是协调通用时间 (Coordinated Universal Time, UTC),因此日期和小时必须转换为当前时区才有意义。每当使用标准文件命令而不是 auditreduce 命令来处理这些文件时,都要切记这一点。


开始之前

您必须是指定有 Audit Review(审计查看)权限配置文件的管理员。有关更多信息,请参见如何使用指定给您的管理权限

  1. 创建用于存储合并的审计文件的文件系统。

    为了降低达到磁盘空间上限的可能性,该文件系统应当位于与您在如何为审计文件创建 ZFS 文件系统中创建的用来存储原始文件的文件系统不同的 zpool 中。

  2. 合并审计迹中的审计记录。

    转到用于存储合并的审计文件的目录。从此目录中,将审计记录合并到具有指定后缀的文件中。本地系统上审计迹中的所有目录将被合并,然后放置到此目录中。

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

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

    -A

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

    -C

    只选择完整文件。

    -M

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

    -O

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

    -R pathname

    指定该选项可读取备用审计根目录 pathname 中的审计文件。

    -S server

    指定该选项可读取指定服务器中的审计文件。

    有关选项的完整列表,请参见 auditreduce(1M) 手册页。

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

在以下示例中,指定有 System Administrator(系统管理员)权限配置文件的管理员将审计迹中的所有文件复制到其他文件系统上的合并文件中。/var/audit/storage 文件系统位于 /var/audit 文件系统(审计根文件系统)的独立磁盘上。

$ cd /var/audit/storage
$ auditreduce -A -O All
$ ls /var/audit/storage/*All
20100827183214.20100827215318.All

在以下示例中,仅将完整文件从审计迹复制到合并文件中。完整路径指定为 -0 选项的值。路径的最后组成部分 Complete 用作后缀。

$ auditreduce -C -O /var/audit/storage/Complete
$ ls /var/audit/storage/*Complete
20100827183214.20100827214217.Complete

在下面的示例中,通过添加 -D 选项删除了原始审计文件。

$ auditreduce -C -O daily_sys1.1 -D sys1.1
$ ls *sys1.1
20100827183214.20100827214217.daily_sys1.1

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

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

开始之前

您必须是指定有 Audit Review(审计查看)权限配置文件的管理员。有关更多信息,请参见如何使用指定给您的管理权限

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

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

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

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

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

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

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

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

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

在本示例中,将从审计迹中选择特定日期的登录和注销记录。将这些记录合并到一个目标文件中。将目标文件写入到包含审计根目录的文件系统以外的文件系统。

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

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

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

开始之前

您必须是指定有 Audit Review(审计查看)权限配置文件的管理员。有关更多信息,请参见如何使用指定给您的管理权限

示例 28-33 打印整个审计迹

通过打印命令的管道,整个审计迹的输出将传输到打印机。出于安全考虑,打印机的访问权限将受到限制。

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

示例 28-34 查看特定审计文件

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

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

示例 28-35 以 XML 格式显示审计记录

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

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

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

示例 28-36 使用脚本处理 praudit 输出

您可能需要将 praudit 命令的输出作为多行文本处理。例如,您可能需要选择 auditreduce 命令无法选择的记录。您可以使用简单的 shell 脚本来处理 praudit 命令的输出。下面的简单脚本在每行中放置一条审计记录,搜索用户指定的字符串,然后将审计文件返回到其原始格式。

#!/bin/sh
#
## This script takes an argument of a user-specified string.
#  The sed command prefixes the header tokens with Control-A
#  The first tr command puts the audit tokens for one record 
#  onto one line while preserving the line breaks as Control-A
#
praudit | sed -e '1,2d' -e '$s/^file.*$//' -e 's/^header/^aheader/' \\
| tr '\\012\\001' '\\002\\012' \\
| grep "$1" \\ Finds the user-specified string
| tr '\\002' '\\012' Restores the original newline breaks

请注意,脚本中的 ^a 为 Ctrl-A,而不是 ^a 这两个字符。前缀将 header 标记与可能显示为文本的字符串 header 区分开来。

故障排除

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

praudit: Can't assign 20090408164827.20090408171614.sys1.1 to stdin.

在配置文件 shell 中运行 praudit 命令。您必须是指定有 Audit Review(审计查看)权限配置文件的管理员。有关更多信息,请参见如何使用指定给您的管理权限

如何清除 not_terminated 审计文件

发生异常系统中断时,如果审计服务的审计文件仍处于打开状态,则审计服务将存在。或者,文件系统无法访问,强制系统切换到新文件系统。在这种情况下,尽管审计文件不再用于审计记录,但此文件仍然保留,并以字符串 not_terminated 作为结束时间戳。使用 auditreduce -O 命令可为此文件提供正确时间戳。

开始之前

您必须是指定有 Audit Review(审计查看)权限配置文件的管理员。有关更多信息,请参见如何使用指定给您的管理权限

  1. 在审计文件系统上,按创建顺序列出带有 not_terminated 字符串的文件。
    # ls -R1t audit-directory*/* | 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

示例 28-37 清除关闭的 not_terminated 审计文件

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

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

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

如何防止审计迹溢出

如果安全策略要求保存所有审计数据,请防止审计记录丢失。

开始之前

您必须承担 root 角色。有关更多信息,请参见如何使用指定给您的管理权限

  1. 设置 audit_binfile 插件上的最小空闲大小。

    使用 p_minfree 属性。

    磁盘空间满足最小空闲大小时,audit_warn 电子邮件别名将发送警告。请参见示例 28-17

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

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

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

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

    归档解释审计记录与审计迹所需的信息。至少应保存 passwdgrouphosts 文件。也可以归档 audit_eventaudit_class 文件。

  5. 保留已归档审计文件的记录。
  6. 正确存储归档介质。
  7. 减少启用 ZFS 压缩所需的文件系统容量。

    在专用于审计文件的 ZFS 文件系统上,压缩将大大缩小文件。有关示例,请参见如何压缩专用文件系统上的审计文件

    另请参见《Oracle Solaris 11.1 管理:ZFS 文件系统》中的"ZFS 压缩、重复数据删除和加密属性之间的交互"

  8. 通过创建摘要文件,减少存储的审计数据量。

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