跳过导航链接 | |
退出打印视图 | |
系统管理指南:安全性服务 Oracle Solaris 10 8/11 Information Library (简体中文) |
审计服务使用以下文件:
/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_syslog.so 文件结合使用,以存储文本格式的审计记录。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 关键字-不推荐使用该关键字。对 audit_binfile.so 插件使用 p_minfree 属性。
p_minfree 属性以百分比形式定义所有审计文件系统的最小空闲空间水平。百分比必须等于 0 或大于 0。缺省值为 20%。当审计文件系统的空间使用率达到 80% 时,审计数据便会存储到下一个可用的审计目录中。有关更多信息,请参见 audit_warn(1M) 手册页。
dir 关键字-不推荐使用该关键字。对 audit_binfile.so 插件使用 p_dir 属性。
p_dir 属性列出了目录位置。每一行值都定义了系统用于存储其审计文件的审计文件系统和目录。可以指定一个或多个目录位置。值的顺序非常重要。auditd 守护进程将按照指定顺序在目录中创建审计文件。第一个目录为系统的主审计目录。第二个目录为辅助审计目录,当第一个目录已满时,auditd 守护进程将在其中创建审计文件,以此类推。有关更多信息,请参见 audit(1M) 手册页。
plugin 关键字-指定插件模块 audit_binfile.so 和 audit_syslog.so 的插件路径和审计类。audit_binfile.so 模块负责创建二进制审计文件。audit_syslog.so 模块可提供 Oracle Solaris 审计记录向文本的实时转换。在 audit_syslog.so 插件的 p_flags 属性中指定的审计类必须是预选审计类的子集。
有关 audit_control 文件的更多信息,请参见 audit_control(4) 手册页。有关插件的更多信息,请参见 审计插件、audit_binfile(5) 和 audit_syslog(5) 手册页。
示例 31-2 audit_control 文件样例
以下是系统 noddy 的 audit_control 文件样例。noddy 使用的两个审计文件系统位于审计服务器 blinken 上,第三个审计文件系统从第二台审计服务器 winken 装入。仅当 blinken 上的审计文件系统已满或不可用时,才使用第三个文件系统。如果 minfree 的值为 20%,则指定当文件系统的空间使用率达到 80% 时运行警告脚本。这些设置指定可以对登录和管理操作进行审计。可以对操作进行审计以查看成功和失败的情况。可以对所有类型的失败进行审计(但创建文件系统对象失败除外),也可以对无归属事件进行审计。syslog 审计日志记录的审计事件较少。该日志包含失败的登录和管理操作的文本摘要。
在 Solaris 10 发行版中,不推荐使用 dir 和 minfree 行。在以下示例中,plugin 行不包含换行符。
flags:lo,am,-all,^-fc naflags:lo,nt plugin:name=audit_binfile.so; p_minfree=20; p_dir=/var/audit/blinken/files, /var/audit/blinken.1/files,/var/audit/winken plugin:name=audit_syslog.so; 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 字段打开对其中的类的审计。使用该字段修改系统范围的设置。例如,将 all 放入 always-audit-classes 字段可为用户审计全部事务。
never-audit-classes 字段关闭对其中的类的审计。使用该字段覆盖系统设置。将 all 放入 never-audit-classes 字段会关闭对用户的所有审计,即使是在 audit_control 文件中指定的审计类。
假定您想要对用户 tamiko 应用系统范围的审计设置,但文件系统对象的成功读取除外。请注意,在以下 audit_user 项中放置第二个冒号 (:):
tamiko:^+fr:no modify system defaults for fr
前面的项意味着“始终审计所有内容,但成功的文件读取除外”。
如果想要审计用户 tamiko 的所有内容(成功的文件读取例外),可以使用以下各项:
tamiko:all,^+fr:no audit everything except fr
假定您希望覆盖用户 tamiko 成功的文件读取的系统缺省设置。以下项意味着“始终审计所有内容,但从不审计成功的文件读取”。
tamiko:all:+fr override system defaults for fr
注 - 成功事件和失败事件是分别处理的。一个进程为失败事件生成的审计记录比成功事件的要多。
如果 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 别名发送电子邮件。生成审计记录的进程将继续执行,但会对审计记录进行计数。将不会生成审计记录。有关如何处理此情况的示例,请参见示例 30-16 和如何防止审计迹溢出。
发现 audit_control 文件的语法存在问题。缺省情况下,系统会向控制台发送一条消息,同时还向 audit_warn 别名发送电子邮件。
如果已经设置了 perzone 审计策略,非全局区域的 auditd 实例会调用区域的 audit_warn 脚本。有关更多信息,请参见 audit_warn(1M) 手册页。
/etc/security/bsmconv 脚本可启用审计服务。bsmunconv 命令可禁用审计服务。bsmconv bsmconv 脚本运行后,您可以配置审计目录和审计配置文件。重新引导系统时,将启用审计功能。
有关更多信息,请参见 bsmconv(1M) 手册页。