跳过导航链接 | |
退出打印视图 | |
手册页第 1M 部分:系统管理命令 Oracle Solaris 11.1 Information Library (简体中文) |
- 从审计迹文件中合并和选择审计记录
auditreduce [options] [audit-trail-file]...
通过 auditreduce,您可以从审计迹文件中选择或合并记录。审计文件可能来自一台或多台计算机。
合并功能会将一个或多个输入审计迹文件中的审计记录一起合并到单个输出文件中。假定审计迹文件中的记录按时间顺序进行排序(最早的排在最前面),此顺序在输出文件中是由 auditreduce 维护的。
除非另有说明,否则 auditreduce 将合并整个审计迹,其中包括目录结构 audit_root_dir/* 中的所有审计迹文件(有关审计根目录结构的详细信息,请参见 audit.log(4))。除非使用 -R 或 -S 选项指定,否则 audit_root_dir 缺省为 /var/audit。通过使用文件选择选项,可以选择这些文件的某个子集,或其他目录中的文件,或在命令行中显式指定的文件。
通过选择功能,可以基于与记录的内容相关的多个条件选择审计记录(有关记录内容的详细信息,请参见 audit.log(4))。记录必须满足所有 record-selection-option 条件才会被选择。
未在命令行中指定的任何审计迹文件必须遵循审计迹文件名格式。审计系统生成的文件已经具有此格式。auditreduce 生成的输出文件名采用此格式。此格式为:
start-time. end-time. suffix
其中,start-time 为 14 字符时间戳,表示打开文件的时间;end-time 为 14 字符时间戳,表示关闭文件的时间;suffix 为生成审计迹文件的计算机的名称,或者其他某个有意义的后缀(例如 all,如果文件中混合了来自多台计算机的记录)。end-time 可以是文本字符串 not_terminated,指示审计系统仍在向该文件进行写入。时间戳采用的格式为 yyyymmddhhmmss(年、月、日、小时、分钟、秒)。时间戳采用国际协调时间 (Coordinated Universal Time, UTC)。
文件选择选项指示要处理哪些文件以及特定类型的特殊处理。
将选择输入文件中的所有记录,而不考虑其时间戳。此选项会有效禁用 -a、-b 以及 -d 选项。这可用于防止在处理输入文件后使用 -D 选项删除这些输入文件时丢失记录。但是,请注意,如果由于其他选项而未选择某个记录,则 -A 将不会覆盖该记录。
仅处理完整文件。不处理文件名 end-time 时间戳为 not_terminated 的文件(审计系统当前正向此类文件进行写入)。这可用于防止在处理输入文件后使用 -D 删除这些输入文件时丢失记录。该选项不适用于在命令行中指定的文件。
在读取输入文件后整个运行成功时删除这些输入文件。如果在读取某个文件时 auditreduce 检测到错误,则不会删除该文件。如果指定了 -D,也将默示使用 -A、-C 和 -O。suffix 将指定给 -O 选项。这有助于确保写入所有记录、只处理完整文件,以及在删除记录之前将其写入到文件中,从而防止丢失审计记录。请注意,如果在命令行中同时指定 -D 和 -O,指定顺序至关重要。与后一指定关联的 suffix 有效。
允许从文件名后缀为 machine 的文件中选择记录。如果未指定 -M,则将处理所有文件,而不考虑后缀。也可以使用 -M 允许从混合了多台计算机中的记录且具有通用后缀(例如 all)的文件中选择记录。
采用新模式选择对象。缺省情况下此标志处于关闭状态,因此保留了向后兼容性。在现有的旧模式中,指定 -e、-f、-g、-r 或 -u 标志不仅会选择使用这些 ID 采取的操作,还会选择这些 ID 所拥有的特定对象。在新模式中运行时,只会选择相应的操作。为了选择对象,必须使用 -o 选项。
将输出流定向到当前 audit_root_dir 中具有指定后缀的文件。suffix 也可以包含全路径名,在这种情况下,最后一部分充当后缀,前面紧接着将是时间戳,再接着将是路径名的剩余部分。如果未指定 -O 选项,则会将输出发送到标准输出。在 auditreduce 将时间戳放置在文件名中时,它分别使用合并内容中第一个记录的时间和最后一个记录的时间作为 start-time 和 end-time。
静默。隐藏有关输入文件错误的通知。
将备用审计根目录 audit_root_dir 的路径名指定为 pathname。因此,将转而检查 pathname/*,而不是缺省情况下使用 /var/audit。
此选项将导致 auditreduce 从特定位置 (specific_directory) 读取审计迹文件。specific_directory 通常解释为审计根目录的某个子目录的名称,因此 auditreduce 将在 audit_root_dir/specific_directory 中查找审计迹文件。但是,如果 specific_directory 中包含任何反斜杠字符 (/),它将是审计根目录中不一定包含的目录的名称。在这种情况下,将参考 specific_directory。通过此选项,可以轻松地处理归档文件,而无需要求这些归档文件实际位于某个目录结构(例如 /var/audit)中。
详细模式。显示打开的每个文件的名称以及写入到输出流中的记录总数。
下面列出的记录选择选项用于指示将哪些记录写入到 auditreduce 生成的输出文件中。
不允许使用同一类型的多个参数。
选择在 date-time 或之后发生的记录。下面的 Option Arguments 下介绍了 date-time 参数。date-time 采用本地时间。-a 和 -b 选项可以一起使用来形成一个范围。
选择在 date-time 之前发生的记录。
按审计类选择记录。将选择事件映射到 audit-classes 指定的审计类的记录。审计类名称是在 audit_class(4) 中定义的。audit-classes 可以是 audit flags(如 audit_flags(5) 中所述的那些标志)的逗号分隔列表。使用 audit flags,用户可以基于成功和失败条件选择记录。
选择特定日期(24 小时期限内,从指定日期的 00:00:00 开始,到 23:59:59 结束)发生的记录。指定日期采用本地时间。将忽略参数的时间部分(如果提供)。将选择具有该日时间戳的任何记录。如果在 time 中给定了任何小时、分钟或秒,将会忽略它们。-d不能与 -a 或 -b 一起使用。
选择具有指定 effective-user 的记录。
选择具有指定 effective-group 的记录。
选择具有指定 real-group 的记录。
选择具有指定 subject-ID 的记录,其中 subject-ID 是进程 ID。
选择具有指定标签(或标签范围)(如下面的“选项参数”下所述)的记录。仅当系统配置有 Trusted Extensions 时,此选项才可用。
选择具有指定 event 的记录。event 为文本字符串或 event 编号。
按对象类型选择记录。当记录中包含介绍指定 object_type 的信息且对象 ID 等于 objectID_value 指定的值时,会出现匹配项。允许的对象类型和值如下所述:
选择包含关于所用授权的信息的记录。授权名称末尾的句点表示授权是一个通配符;将选择包含更具体的所用授权对象的记录。
选择包含具有指定路径名的文件系统对象的记录,其中路径名是正则表达式的逗号分隔列表。如果正则表达式前面有波浪号 (~),将从输出中排除与表达式匹配的文件。例如,选项 file=~/usr/openwin,/usr,/etc 将选择 /usr 或 /etc 中的所有文件,/usr/openwin 中的文件除外。正则表达式的顺序很重要,因为 auditreduce 将从左至右处理这些表达式,并在已知选中或排除文件时停止。因此,选项 file=/usr,/etc,~/usr/openwin 将选择 /usr 中的所有文件和 /etc 中的所有文件。不会排除 /usr/openwin 中的文件,因为首先匹配的是正则表达式 /usr。在 pathname 周围使用引号时应当小心,以便防止 shell 扩展任何波浪号。
选择包含以 group 作为所属组的文件系统对象的记录。
选择包含以 user 作为所属用户的文件系统对象的记录。
选择包含具有指定 service instance 的故障管理资源标识符 (fault management resource identifier, FMRI) 的记录。请参见 smf(5)。
选择包含具有指定 ID 的消息队列对象的记录,其中 ID 为消息队列 ID。
选择包含以 group 作为所属组或创建组的消息队列对象的记录。
选择包含以 user 作为所属用户或创建用户的消息队列对象的记录。
选择包含具有指定 ID 的进程对象的记录,其中 ID 为进程 ID。当进程是信号的接收方时,它们是对象。
选择包含以 group 作为实际组或有效组的进程对象的记录。
选择包含以 user 作为实际用户或有效用户的进程对象的记录。
选择包含具有指定 ID 的信号对象的记录,其中 ID 为信号 ID。
选择包含以 group 作为所属组或创建组的信号对象的记录。
选择包含以 user 作为所属用户或创建用户的信号对象的记录。
选择包含具有指定 ID 的共享内存对象的记录,其中 ID 为共享内存 ID。
选择包含以 group 作为所属组或创建组的共享内存对象的记录。
选择包含以 user 作为所属用户或创建用户的共享内存对象的记录。
选择包含具有指定 port_number 或指定 machine 的套接字对象的记录,其中 machine 是如 hosts(4) 中所定义的计算机名称。
选择包含具有指定名称的用户对象的记录。通常会指定用户对象以针对某个用户执行管理操作。
选择具有指定 real-user 的记录。
选择具有指定 session-id 的审计记录。
选择具有指定 audit-user 的记录。
从指定区域名称中选择记录。区域名称选择区分大小写。
当命令行中出现一个或多个 filename 参数时,只处理指定的文件。以这种方式指定的文件无需遵循审计迹文件名格式。但是,处理指定的文件时,不得使用 -M、-S 和 -R。如果 filename 为 "-",则会从标准输入中获取输入。
审计迹文件,如 audit.log(4) 中所定义。未在命令行中指定的审计迹文件必须遵循审计迹文件名格式。作为 auditreduce 的输出生成的审计迹文件也采用此格式。该格式为:
start-time . end-time . suffix
start-time 为 14 字符时间戳,表示打开文件的时间。end-time 为 14 字符时间戳,表示关闭文件的时间。end-time 也可以是文本字符串 not_terminated,指示审计守护进程仍在向该文件进行写入或者该文件未正确关闭(发生了系统崩溃或突然停止)。suffix 是生成审计迹文件的计算机的名称(或其他某个有意义的后缀;例如,如果审计迹文件混合了来自多台计算机的记录,all 将是一个不错的后缀)。
-a、-b 和 -d 的 date-time 参数可以采用两种格式:绝对 date-time 采用以下格式:
yyyymmdd [ hh [ mm [ ss ]]]
其中,yyyy 指定年份(1970 为最早年份值);mm 为月份 (01-12);dd 为日期 (01-31);hh 为小时 (00-23);mm 为分钟 (00-59);ss 为秒 (00-59)。hh、mm 和 ss 的缺省值为 00。
时差可以指定为:+n d|h|m| s,其中,n 为单位数,d、h、m 和 s 标志分别代表日期、小时、分钟和秒。时差相对于起始时间。因此,此格式只能用于 -b 选项。
在 audit_event(4) 中找到的文本字符串或有序事件编号。如果在 audit_event 文件中找不到 event,则将其视为无效。
在 group(4) 中找到的文本字符串或有序组 ID 编号。如果在 group 文件中找不到 group,则将其视为无效。group 可以是负值。
表示 MAC 标签或两个有效 MAC 标签组成的范围的文本字符串。要指定范围,请使用 x;y,其中 x 和 y 是有效的 MAC 标签。将只选择被 x 和 y 完全限定的记录。如果省略 x 或 y,缺省情况下使用 ADMIN_LOW 或 ADMIN_HIGH。请注意,指定范围时必须使用引号。
描述路径名的正则表达式。
在 passwd(4) 中找到的文本用户名或有序用户 ID 编号。如果在 passwd 文件中找不到用户名,则将其视为无效。user 可以是负值。
示例 1 使用 auditreduce
praudit(1M) 可用于以用户可读的格式显示审计记录。
这将以用户可读的格式显示整个审计迹:
% auditreduce | praudit
如果要将所有审计迹文件合并到一个大文件中,则可能需要删除原始文件以防止记录显示两次:
% auditreduce -V -D /var/audit/combined/all
这将显示用户 milner 在 1988 年 4 月 13 日所执行的操作。系统会以用户可读的格式将输出显示到标准输出:
% auditreduce -d 19880413 -u milner | praudit
如果 milner 一直处于繁忙状态,以上示例可能会生成大量数据。只查看登录和注销时间可能会更简单一些。-c 选项将从指定类中选择记录:
% auditreduce -d 19880413 -u milner -c lo | praudit
要查看 milner 在 4 月 13 日、14 日以及 15 日的登录/注销活动,请使用以下命令行。结果将保存到当前工作目录内的某个文件中。请注意,输出文件的名称将使用 milnerlo 作为 suffix,使用相应的时间戳作为前缀。另请注意,名称的长格式用于 -c 选项:
% auditreduce -a 19880413 -b +3d -u milner -c login_logout -O milnerlo
要跟踪 milner 在 4 月 13 日、14 日以及 15 日的文件系统活动,可以查看 chdir 记录类型。请注意,为了获取与以上示例中相同的时间范围,我们需要将 -b 时间指定为我们的范围之后的日期。这是因为 19880416 缺省为该日期的午夜,此时间之前的记录均落在范围中的最后一天 0415。
% auditreduce -a 19880413 -b 19880416 -u milner -m AUE_CHDIR | praudit
在此示例中,将采用摘要格式收集审计记录(仅限登录/注销记录)。记录将写入到常规审计根目录以外的其他目录内的摘要文件中,以防止选定记录在审计根目录中存在两次。
% auditreduce -d 19880330 -c lo -O /var/audit/audit_summary/logins
如果已观察到用户 ID 9944 的活动,但系统管理员不知道该用户,则以下示例中的命令将搜索整个审计迹以查找该用户生成的任何记录。auditreduce 会就 ID 9944 的当前有效性来查询系统,如果该 ID 当前未处于活动状态,则会显示一条警告消息:
% auditreduce -O /var/audit/audit_suspect/user9944 -u 9944
要仅获取全局区域的审计日志,请执行以下命令:
% auditreduce -z global
审计迹的缺省存储位置
有关下列属性的说明,请参见 attributes(5):
|
命令调用为 Stable(稳定)。二进制文件格式是 Stable(稳定)。二进制文件内容是 Unstable(不稳定)。
praudit(1M)、audit.log(4)、audit_class(4)、group(4)、hosts(4)、passwd(4)、attributes(5)、audit_flags(5)、smf(5)
请参见《《Oracle Solaris 11.1 管理:安全服务》》中有关审计的章节。
如果命令行中存在错误,auditreduce 将显示错误消息,然后退出。如果运行期间存在致命错误,auditreduce 将显示说明性消息并退出。在这种情况下,输出文件可能会处于不一致状态(没有尾部记录或部分写入记录),auditreduce 将显示警告消息,然后退出。如果调用成功,则返回 0;如果调用不成功,则返回 1。
由于 auditreduce 可能要处理大量输入文件,因此可能会超出对打开文件的计算机范围内的限制。如果发生这种情况,auditreduce 将针对该效果显示一条消息,给出有关存在多少个文件的信息,然后退出。
如果 auditreduce 在诊断消息中显示记录的时间戳,该时间会采用本地时间。但是,显示文件名时,其时间戳会采用 UTC。
应当允许结合使用、取消结合使用和拒绝使用记录选择选项以及对其进行分组。
仅当设置了审计策略 zonename 时,才应使用 -z 选项。如果没有任何 zonename 标记,则不会选择任何记录。