19.3.审计配置
最后更新于
最后更新于
用户空间的事件审计支持作为 FreeBSD 操作系统的一部分进行安装。内核支持默认包含在 GENERIC 内核中,可以通过将以下行添加到 /etc/rc.conf 来启用 :
然后,启动审计守护进程:
希望编译自定义内核的用户,必须在自定义内核配置文件中加入以下行:
选择表达式用于审计配置中的多个地方,以确定应审计哪些事件。表达式包含一个事件类别列表来进行匹配。选择表达式从左到右进行评估,两个表达式通过将一个附加到另一个来组合。
总结了默认的审计事件类别:
表1. 默认审计事件类别
all
所有
匹配所有事件类别。
aa
身份验证和授权
ad
管理性
执行系统级的管理性操作。
ap
应用程序
应用程序定义的操作。
cl
文件关闭
审计调用 close
系统调用的事件。
ex
执行
fa
文件属性访问
fc
文件创建
审计文件创建的事件。
fd
文件删除
审计文件删除的事件。
fm
文件属性修改
fr
文件读取
审计数据读取或文件以读取方式打开的事件。
fw
文件写入
审计数据写入或文件写入或修改的事件。
io
ioctl
审计 ioctl
系统调用的使用。
ip
ipc
审计不同形式的进程间通信,包括 POSIX 管道和 System V IPC 操作。
lo
登录/注销
na
不可归属
审计不可归属事件。
no
无效类别
匹配无审计事件。
nt
网络
ot
其他
审计杂项事件。
pc
进程
这些审计事件类别可以通过修改 audit_class 和 audit_event 配置文件来进行自定义。
表2. 审计事件类别的前缀
+
审计该类别中的成功事件。
-
审计该类别中的失败事件。
^
不审计该类别中的任何成功或失败事件。
^+
不审计该类别中的成功事件。
^-
不审计该类别中的失败事件。
如果没有前缀,则会审计事件的成功和失败实例。
以下示例选择字符串选择了成功和失败的登录/注销事件,但只选择成功的执行事件:
安全事件审计的以下配置文件位于 /etc/security 中:
audit_class:包含审计类别的定义。
audit_control:控制审计子系统的各个方面,如默认审计类别、在审计日志卷上保留的最小磁盘空间以及最大审计日志大小。
audit_event:系统审计事件的文本名称和描述,以及每个事件所属的类别。
audit_user:用户特定的审计要求,在登录时与全局默认设置组合。
警告
审计配置文件应小心编辑和维护,因为配置错误可能导致事件记录不正确。
在大多数情况下,管理员只需要修改 audit_control 和 audit_user。第一个文件控制系统范围的审计属性和策略,第二个文件可用于按用户精细调整审计。
audit_control 文件中指定了许多审计子系统的默认设置:
dir
项用于设置一个或多个存储审计日志的目录。如果出现多个目录条目,它们将按顺序使用,直到填满为止。通常建议将审计日志存储在专用文件系统上,以防止审计子系统和其他子系统之间的干扰,尤其是当文件系统空间用尽时。
如果 dist
字段设置为 on
或 yes
,则会在 /var/audit/dist 中为所有审计日志文件创建硬链接。
flags
字段设置系统范围的默认预选择掩码,用于可归属事件。在上面的示例中,所有用户的登录/注销事件以及身份验证和授权事件都会被审计。
minfree
项定义了存储审计日志的文件系统的最小可用空间百分比。
naflags
项指定了对于不可归属事件的审计类别,例如登录/注销过程以及身份验证和授权。
filesz
项指定审计日志文件的最大大小,超出该大小后自动终止并轮换日志文件。值为 0
时会禁用自动日志轮换。如果请求的文件大小小于 512k,则会被忽略,并生成一条日志消息。
expire-after
字段指定审计日志文件的过期时间和删除时间。
管理员可以在 audit_user 文件中为特定用户指定进一步的审计要求。每一行通过两个字段配置用户的审计:alwaysaudit
字段指定应始终审计的事件,neveraudit
字段指定应始终不审计的事件。
以下示例条目会为 root
审计登录/注销事件和成功的命令执行,为 www
审计文件创建和成功的命令执行。如果与默认的 audit_control 配置一起使用,则 root
的 lo
条目是多余的,登录/注销事件也会为 www
审计。
审计程序执行。通过 中的 argv
和 envv
参数控制命令行参数和环境变量的审计。
审计访问对象属性的事件,如 和 。
审计文件属性修改的事件,如通过 、 和 进行的修改。
审计 和 事件。
审计与网络相关的事件,如 和 事件。
审计进程操作,如 和 事件。
每个审计事件类别都可以与前缀结合,表示是否匹配成功/失败的操作,以及该条目是否添加或移除类别和类型的匹配。总结了可用的前缀:
audit_warn:由 使用的可定制的脚本,用于在异常情况下生成警告消息,如当审计记录的空间不足或审计日志文件被轮换时。
policy
项指定一个由逗号分隔的策略标志列表,用于控制审计行为的各个方面。cnt
表示即使发生审计失败,系统也应继续运行(强烈建议启用此标志)。另一个标志 argv
会将命令行参数(即 系统调用的参数)作为命令执行的一部分进行审计。