以下列表概述了 auditd 守护进程的功能。
auditd 守护进程可打开和关闭 audit_control 文件内指定的目录中的审计文件。这些文件将按顺序打开。
auditd 守护进程可装入一个或多个插件。Sun 提供了两个插件。/lib/security/audit_binfile.so.1 插件可将二进制审计数据写入文件。/lib/security audit_syslog.so.1 插件可将审计记录的文本摘要发送到 syslogd 守护进程。
auditd 守护进程可使用 auditd 插件从内核读取审计数据并输出此数据。
auditd 守护进程可执行 audit_warn 脚本来发出有关配置错误的警告。binfile.so.1 插件可执行 audit_warn 脚本。此脚本在缺省情况下将警告发送到 audit_warn 电子邮件别名以及控制台。syslog.so.1 插件无法执行 audit_warn 脚本。
缺省情况下,当所有的审计目录已满时,生成审计记录的进程便会暂停。此外,auditd 守护进程可将消息写入控制台以及 audit_warn 电子邮件别名。此时,只有系统管理员才可以修复审计服务。管理员可以登录以将审计文件写入脱机介质、从系统中删除审计文件,以及执行其他清除任务。
可以使用 auditconfig 命令重新配置审计策略。
当系统进入多用户模式时,auditd 守护进程便会自动启动。也可以从命令行启动此守护进程。当 auditd 守护进程启动时,它会计算审计文件所需的空闲空间量。
auditd 守护进程使用 audit_control 文件中的审计目录列表作为创建审计文件的可能位置。此守护进程维护指向此目录列表的指针,该指针开始于第一个目录。每次在 auditd 守护进程需要创建审计文件时,都会将文件放入列表内的第一个可用目录中。列表开始于 auditd 守护进程的当前指针处。您可以运行 audit -s 命令将指针复位到列表的开始处。audit -n 命令指示此守护进程切换到新的审计文件。新的文件在当前文件所在的目录中创建。
audit 命令可控制 auditd 守护进程的操作。audit 命令可以执行以下任务:
有关可用选项的介绍,请参见 audit(1M) 手册页。
bsmrecord 命令可显示在 /etc/security/audit_event 文件中定义的审计事件的格式。输出包括事件的审计 ID、审计类、审计标志以及按顺序列出的记录的审计标记。如果不使用任何选项,则 bsmrecord 输出将在终端窗口中显示。如果使用 -h 选项,则输出将适合于在浏览器中进行查看。有关 bsmrecord 命令的使用示例,请参见如何显示审计记录格式。另请参见 bsmrecord(1M) 手册页。
auditreduce 命令可汇总以二进制格式存储的审计记录。此命令可以合并来自一个或多个输入审计文件的审计记录,还可以用于执行后选审计记录。这些记录仍保持二进制格式。要合并整个审计跟踪,请在审计服务器上运行此命令。审计服务器是指挂载了用于安装的所有审计文件系统的系统。有关更多信息,请参见 auditreduce(1M) 手册页。
使用 auditreduce 命令,可以从一个位置跟踪多个系统上的所有已审计的操作。此命令可以将所有审计文件的逻辑组合作为一个审计跟踪单元进行读取。您必须对站点上要进行审计的所有系统进行相同的配置,并为审计文件创建服务器和本地目录。auditreduce 命令会忽略记录的生成方式或记录的存储位置。如果不使用选项,则 auditreduce 命令将合并审计根目录内所有子目录中的所有审计文件的审计记录。通常,/etc/security/audit 为审计根目录。auditreduce 命令将已合并的结果发送到标准输出。 您也可以将这些结果放入按时间顺序排列的单个输出文件中。 此文件包含二进制数据。
auditreduce 命令还可以选择特定的记录类型进行分析。 auditreduce 命令的合并功能和选择功能在逻辑上是相互独立的。在系统合并输入文件并将其写入磁盘之前,auditreduce 命令将在系统读取记录时从这些文件中捕获数据。
通过为 auditreduce 命令指定选项,还可以执行以下操作:
请求已由指定的审计类生成的审计记录
请求已由某个特定用户生成的审计记录
请求已在特定日期生成的审计记录
如果不使用参数,则 auditreduce 命令将检查 /etc/security/audit 目录(缺省审计根目录)中的子目录,它还会检查 start-time.end-time.hostname 文件所在的 files 目录。auditreduce 命令对于审计数据位于不同目录的情况非常有用。图 30–1 显示了不同主机上不同目录中的审计数据。图 30–2 显示了不同审计服务器上不同目录中的审计数据。
如果用于 /etc/security/audit 目录的分区非常小,则可能无法在缺省目录中存储审计数据。可以使用 -R 选项将 auditreduce 命令传递到其他目录:
# auditreduce -R /var/audit-alt |
还可以使用 -S 选项指定特定的子目录:
# auditreduce -S /var/audit-alt/host1 |
有关其他选项和更多示例,请参见 auditreduce(1M) 手册页。
praudit 命令可使 auditreduce 命令的二进制输出具有可读性。praudit 命令可从标准输入中读取二进制格式的审计记录,并以可显示的格式显示这些记录。输入既可以从 auditreduce 命令进行管道输出,也可以从单个审计文件进行管道输出。输入还可以使用 cat 命令生成以串联数个文件,或者针对当前审计文件使用 tail 命令生成。
praudit 命令可以生成四种输出格式。第五个选项,即 -l(长),可在每个输出行中列显一条审计记录。缺省设置为在每个输出行中放置一个审计标记。-d 选项可更改标记字段之间以及标记之间使用的分隔符。缺省分隔符为逗号。
缺省设置-不带选项的 praudit 命令在每行显示一个审计标记。此命令将按审计事件的说明显示审计事件,例如 ioctl(2) 系统调用。任何可以显示为文本的值均以文本格式显示。例如,用户将显示为用户名,而不是用户 ID。
–r 选项-原始选项将任何可以为数字的值显示为数字。例如,用户显示为用户 ID,Internet 地址以十六进制格式显示,模式以八进制格式显示。审计事件显示为其事件编号,例如 158。
–s 选项-短选项将通过审计事件的表名显示审计事件,例如 AUE_IOCTL。此选项显示其他标记的方式与缺省选项显示这些标记的方式相同。
–x 选项-XML 选项以 XML 格式显示审计记录。此选项可用于浏览器输入,或者可用于处理 XML 的脚本输入。
XML 通过审计服务提供的 DTD 进行说明。Solaris 软件还提供了样式表。DTD 和样式表位于 /usr/share/lib/xml 目录中。
在 praudit 命令的缺省输出格式中,可以轻松地将每条记录标识为一系列审计标记。每个标记都在单独的行中显示。每条记录都以 header 标记开始。例如,您可以使用 awk 命令进一步处理输出。
以下是 header 标记的 praudit -l 命令的输出:
header,173,2,settppriv(2),,example1,2003-10-13 13:46:02.174 -07:00 |
以下是同一 header 标记的 praudit -r 命令的输出:
121,173,2,289,0x0000,192.168.86.166,1066077962,174352445 |
您可能需要将 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" \\ 查找用户指定的字符串 | tr '\\002' '\\012' 恢复原始的新换行符 |
请注意,脚本中的 ^a 为 Ctrl-A,而不是 ^ 和 a 这两个字符。前缀将 header 标记与可能显示为文本的字符串 header 区分开来。
auditconfig 命令可提供命令行界面来检索并设置审计配置参数。auditconfig 命令可以执行以下任务:
显示、检查以及配置审计策略
确定审计功能处于打开还是关闭状态
关闭和打开审计功能
管理审计目录和审计文件
管理审计队列
获取并设置预选掩码
获取审计事件并将其设置为审计类映射
获取并设置配置信息,例如会话 ID 和审计 ID
配置进程、shell 以及会话的审计特征
重置审计统计信息
有关命令选项的介绍,请参见 auditconfig(1M) 手册页。