Audit
概述
参考:
Audit 是实现的 Linux 系统审计的软件包,其中包含两个部分:
- 用户空间应用程序和实用程序
- 内核端系统调用处理。
当我们安装 Audit 后,会在系统中看到两个进程,一个是内核态的,一个是用户态的。
~]# ps -p $(pgrep audit)
PID TTY STAT TIME COMMAND
100 ? S 0:02 [kauditd]
15016 ? S<sl 0:14 /sbin/auditd
并且,不能随意停止 auditd 服务器,内核进程无法通过用户空间的操作终止,使用 systemctl stop auditd.service
将会报错:
Failed to stop auditd.service: Operation refused, unit auditd.service may be requested by dependency only (it is configured to refuse manual start/stop).
See system logs and 'systemctl status auditd.service' for details.
内核组件从用户空间应用程序接收系统调用,并通过以下过滤器之一对其进行过滤:user, task, fstype, exit
系统调用通过 exclude 过滤器后,它将通过上述其中一个过滤器发送,这些过滤器根据 Audit 规则配置将其发送到 Audit 守护进程,以进行进一步处理。
用户空间审计守护进程从内核收集信息,并在日志文件中创建条目。其他 Audit 用户空间实用程序与 Audit 守护进程、内核审计组件或 Audit 日志文件交互:
- audisp - Audit 分配程序守护进程与 Audit 守护进程交互,并将事件发送到其他应用以进行进一步处理。此守护进程的目的是提供一种插件机制,让实时分析程序能够与审计事件交互。
- auditctl - Audit 控制实用程序与内核审计组件交互,以管理规则并控制事件生成进程的许多设置和参数。
- 剩余的 Audit 实用程序将 Audit 日志文件的内容作为输入,并根据用户的要求生成输出。例如,aureport 实用程序生成所有记录事件的报告。
注意:由于 Audit 会运行一个内核态的进程,并且监听系统调用,所以像 nfs 这种涉及内核的文件系统工具,可能会跟 Audit 产生冲突。
安装 Audit
~]# yum install audit audit-libs
Audit 关联文件与配置
/etc/audit/ #
- ./auditd.conf # auditd 进程运行时配置
- ./audit.rules # 由
rules.d/
目录下的规则文件生成 - ./rules.d/ # Audit 规则文件
/usr/share/doc/audit-${VERSION}/rules/ # Audit 软件包安装后根据各种认证标准提供一组预配置的规则文件
/var/log/audit/ # auditd 记录日志的默认位置。
规则语法
定义文件系统规则
-w FILE -p PERMISSIONS -k KEY
- FILE # 是被审计的文件或目录
- PERMISSIONS # 记录的权限
- r - 对文件或目录的读取访问权限.
- w - 对文件或目录的写入访问权限.
- x - 执行对文件或目录的访问权限。
- a - 更改文件或目录的属性.
- KEY # 是一个可选字符串,可帮助您识别生成了特定日志条目的规则或一组规则。
定义系统调用规则
-a action,filter -S system_call -F field=value -k key_name
- action 和 filter # 指定记录特定事件的时间。操作可以是 always 或 never。filter 指定将哪个内核规则匹配过滤器应用到事件。rule-matching 过滤器可以是以下之一: task、exit、user 和 exclude。有关这些过滤器的更多信息,请参阅 第 7.1 节 “Audit 系统架构” 的开头。
- system_call # 指定系统调用的名称。可以在 /usr/include/asm/unistd_64.h 文件中找到所有系统调用的列表。可将多个系统调用分组成一个规则,各自在其自己的 -S 选项后指定。
- Field=value # 指定进一步修改规则以根据指定的体系结构、组 ID、进程 ID 和其他选项匹配的额外选项。有关所有可用字段类型及其值的完整列表,请查看 auditctl(8) man page。
- key_name # 是一个可选字符串,可帮助您识别生成了特定日志条目的规则或一组规则。
auditctl 命令行工具
auditctl 命令允许您控制 Audit 系统的基本功能,并定义决定记录哪些审计事件的规则。
aureport 命令行工具
aureport 实用程序允许您针对 Audit 日志文件中记录的事件生成摘要和列ar 报告
ausearch 命令行工具
ausearch 实用程序允许您搜索 Audit 日志文件特定事件。默认情况下,ausearch 搜索 /var/log/audit/audit.log
文件。
[“Linux libc 库”](/docs/1.操作系统/Linux 源码解析/Linux libc 库.md)
反馈
此页是否对你有帮助?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.