审计服务使用以下文件:
/etc/system 文件包含内核在初始化期间读取以自定义系统操作的命令。用于激活和取消激活审计功能的 bsmconv 和 bsmunconv shell 脚本可修改 /etc/system 文件。 bsmconv shell 脚本将以下行添加到 /etc/system 文件:
set c2audit:audit_load=1 |
set c2audit:audit_load=1 项将导致在引导系统时装入用于审计的内核模块。bsmunconv shell 脚本将在重新引导系统时禁用审计功能。此命令可从 /etc/system 文件中删除 c2audit 行。
/etc/syslog.conf 文件可与 audit_control 文件结合使用以存储文本格式的审计记录。可以将 syslog.conf 文件配置为启用 syslog 实用程序来存储审计记录。有关示例,请参见如何配置 syslog 审计日志。
/etc/security/audit_class 文件可定义审计类。审计类是指多组审计事件。可以使用 audit_control 文件中的类名来预选要审计其事件的类。这些类可接受前缀以仅选择失败的事件或仅选择成功的事件。有关更多信息,请参见审计类语法。
超级用户或承担等效角色的管理员可以修改审计类的定义。此管理员可以通过在文本编辑器中编辑 audit_class 文件来定义新的审计类,重命名现有类,或更改现有类。有关更多信息,请参见 audit_class(4) 手册页。
每个系统上的 /etc/security/audit_control 文件都包含 auditd 守护进程的配置信息。使用此文件,每个系统都可以装入远程审计文件系统来存储其审计记录。
可以在 audit_control 文件中指定五种信息类型。每个信息行都以关键字开始。
flags 关键字-用作为系统上所有用户预选要审计的事件类的项的开头。此处指定的审计类将确定系统范围的审计预选掩码。审计类以逗号分隔。
naflags 关键字-用作当无法将某操作归属到特定用户时预选要审计的事件类的项的开头。审计类以逗号分隔。na 事件类应归入此项。naflags 项可以用于记录其他通常具有归属性但无法进行归属的事件类。例如,如果在引导系统时启动的某个程序可读取文件,则 naflags 项中的 fr 将针对此事件创建一条记录。
minfree 关键字-用作针对所有审计文件系统定义最小空闲空间级别的项的开头。minfree 的百分比必须等于 0 或大于 0。缺省值为 20%。当审计文件系统的空间使用率达到 80% 时,审计数据便会存储到下一个可用的审计目录中。有关更多信息,请参见 audit_warn(1M) 手册页。
dir 关键字-用作目录定义行的开头。每一行都定义了系统用于存储其审计文件的审计文件系统和目录。可以定义一个或多个目录定义行。dir 行的顺序非常重要。auditd 守护进程将按照指定顺序在目录中创建审计文件。第一个目录为系统的主审计目录。第二个目录为辅助审计目录,当第一个目录变满时, auditd 守护进程在此创建审计文件,以此类推。有关更多信息,请参见 audit(1M) 手册页。
plugin 关键字-指定 syslog 插件模块的插件路径和审计类。此模块可提供 Solaris 审计记录向文本的实时转换。plugin 行中的审计类必须为 flags 行和 naflags 行中的审计类的子集。
有关 audit_control 文件的更多信息,请参见 audit_control(4) 手册页。
以下是系统 noddy 的 audit_control 文件样例。noddy 使用的两个审计文件系统位于审计服务器 blinken 上,第三个审计文件系统从第二台审计服务器 winken 中装入。仅当 blinken 上的审计文件系统变满或不可用时,才使用第三个文件系统。如果 minfree 的值为 20%,则指定当文件系统的空间使用率达到 80% 时运行警告脚本。这些设置指定可以对登录和管理操作进行审计。可以对操作进行审计以查看成功和失败的情况。可以对所有类型的失败进行审计(但创建文件系统对象失败除外),还可以对不具归属性的事件进行审计。syslog 审计日志将记录较少的审计事件。此日志包含失败的登录和管理操作的文本摘要。
flags:lo,am,-all,^-fc naflags:lo,nt minfree:20 dir:/etc/security/audit/blinken/files dir:/etc/security/audit/blinken.1/files # # Audit filesystem used when blinken fills up # dir:/etc/security/audit/winken plugin:name=audit_syslog.so.1; p_flags=-lo,-am |
/etc/security/audit_event 文件包含缺省的审计事件到类的映射。可以编辑此文件来更改类映射。更改类映射时,必须重新引导系统或运行 auditconfig -conf 命令以将已更改的映射读入内核。有关更多信息,请参见 audit_event(4) 手册页。
当系统进入多用户模式时,/etc/security/audit_startup 脚本可自动配置审计服务。在 auditd 守护进程启动之前,此脚本要执行以下任务:
配置审计事件到类的映射
设置审计策略选项
有关更多信息,请参见 audit_startup(1M) 手册页。
/etc/security/audit_user 数据库可针对单个用户修改系统范围的预选类。添加到 audit_user 数据库内用户项中的类可以通过两种方法修改 audit_control 文件中的设置:
通过指定始终针对此用户进行审计的审计类
通过指定从不针对此用户进行审计的审计类
audit_user 数据库中的每个用户项都包含三个字段:
username:always-audit-classes:never-audit-classes |
审计字段将按顺序进行处理。always-audit-classes 字段打开对其中的类的审计。never-audit-classes 字段关闭对其中的类的审计。
应避免出现在 never-audit-classes 字段中放置 all 审计类这种常见错误。此错误将导致针对此用户关闭所有审计功能,从而覆盖 always-audit-classes 字段中的设置。此设置还覆盖 audit_control 文件中的系统范围的审计类设置。
用户的 never-audit-classes 设置将覆盖系统缺省设置。您可能不需要覆盖系统缺省设置。例如,假定您需要针对用户 tamiko 审计所有内容,但文件系统对象的成功读取除外。您还需要将系统缺省设置应用于 tamiko。请注意,在以下 audit_user 项中放置第二个冒号 (:):
tamiko:all,^+fr: 正确的项 |
正确的项意味着“始终审计所有内容,但成功的文件读取除外”。
tamiko:all:+fr 错误的项 |
不正确的项意味着“始终审计所有内容,但从不审计成功的文件读取”。跟在第二个冒号之后的 never-audit-classes 字段将覆盖系统缺省设置。在正确的项中,always-audit-classes 字段包括 all 审计类的例外。由于 never-audit-classes 字段中没有审计类,因此,不会覆盖 audit_control 文件中的系统缺省设置。
成功的事件和失败的事件将分别进行处理。进程针对失败事件生成的审计记录数多于针对成功事件生成的审计记录数。
如果 auditd 守护进程在写入审计记录时遇到异常情况,则 /etc/security/audit_warn 脚本可通知电子邮件别名。您可以针对自己的站点自定义此脚本,以便在出现可能需要手动干预的情况时发出警告。也可以指定如何自动处理这些情况。对于所有错误情况,audit_warn 脚本将带有 daemon.alert 这一严重级别的消息写入 syslog。您可以使用 syslog.conf 来配置 syslog 消息的控制台显示。audit_warn 脚本还可将消息发送到 audit_warn 电子邮件别名。应在启用审计功能时设置此别名。
当 auditd 守护进程检测到以下情况时,便会调用 audit_warn 脚本。此脚本向 audit_warn 别名发送电子邮件。
审计目录的空间使用率已超过了 minfree 值所允许的限制。minfree 值或软限制是指某个审计文件系统上可用空间的百分比。
将使用字符串 soft 以及可用空间低于最小值的目录的名称调用 audit_warn 脚本。auditd 守护进程可自动切换到下一个适当的目录。此守护进程会一直将审计文件写入新的目录,直到此目录达到其 minfree 限制为止。然后,auditd 守护进程按顺序转至 audit_control 文件中列出的每个剩余目录。此守护进程将一直写入审计记录,直到每个目录达到其 minfree 限制为止。
将使用字符串 allsoft 调用 audit_warn 脚本。系统会向控制台写入一条消息,同时还向 audit_warn 别名发送电子邮件。
当 audit_control 文件中列出的所有审计目录均已达到其 minfree 阈值时,auditd 守护进程便会切换回第一个目录。此守护进程将一直写入审计记录,直到此目录完全变满为止。
将使用字符串 hard 以及目录名称调用 audit_warn 脚本。系统会向控制台写入一条消息,同时还向 audit_warn 别名发送电子邮件。
auditd 守护进程可自动切换到下一个具有可用空间的适当目录。 auditd 守护进程将按顺序转至 audit_control 文件中列出的每个剩余目录。此守护进程将一直写入审计记录,直到每个目录变满为止。
所有审计目录已完全变满。将使用字符串 allhard 作为参数来调用 audit_warn 脚本。
缺省情况下,系统会向控制台写入一条消息,同时还向 audit_warn 别名发送电子邮件。生成审计记录的进程将继续执行,但会对审计记录进行计数。将不会生成审计记录。有关如何处理此情况的示例,请参见示例 29–14 和如何防止审计跟踪溢出。
发现了 audit_control 文件的语法存在问题。缺省情况下,系统会向控制台发送一条消息,同时还会向 audit_warn 别名发送电子邮件。
有关详细信息,请参见 audit_warn(1M) 手册页。
/etc/security/bsmconv 脚本可启用审计服务。 bsmunconv 命令可禁用审计服务。当 bsmconv 脚本运行之后,您可以配置审计目录和审计配置文件。重新引导系统时,将启用审计功能。
有关详细信息,请参见 bsmconv(1M) 手册页。