auditd
是 Linux 系统中的审计守护进程,用于记录系统的安全相关事件。通过配置 auditd
,可以监控和记录各种系统活动,如文件访问、用户登录、系统调用等。以下是一些常见的配置场景和审计日志查看方法。
常见的配置场景
-
文件和目录访问审计
监控特定文件或目录的访问情况。例如,监控
/etc/passwd
文件的访问:sudo auditctl -w /etc/passwd -p rwxa -k passwd_changes
解释:
-w /etc/passwd
:监控/etc/passwd
文件。-p rwxa
:监控读(r)、写(w)、执行(x)和属性更改(a)。-k passwd_changes
:为该规则指定一个键(key),便于在日志中查找。
-
用户登录和注销审计
监控用户登录和注销事件:
sudo auditctl -a always,exit -F arch=b64 -S execve -k user_login
解释:
-a always,exit
:添加一个规则,监控所有exit
事件。-F arch=b64
:指定 64 位架构。-S execve
:监控execve
系统调用。-k user_login
:为该规则指定一个键(key),便于在日志中查找。
-
系统调用审计
监控特定的系统调用。例如,监控
open
系统调用:sudo auditctl -a always,exit -F arch=b64 -S open -k file_open
解释:
-a always,exit
:添加一个规则,监控所有exit
事件。-F arch=b64
:指定 64 位架构。-S open
:监控open
系统调用。-k file_open
:为该规则指定一个键(key),便于在日志中查找。
-
用户命令审计
监控用户执行的命令:
sudo auditctl -a always,exit -F arch=b64 -S execve -F uid>=1000 -F uid!=4294967295 -k user_commands
解释:
-a always,exit
:添加一个规则,监控所有exit
事件。-F arch=b64
:指定 64 位架构。-S execve
:监控execve
系统调用。-F uid>=1000
:监控用户 ID 大于等于 1000 的用户(通常是普通用户)。-F uid!=4294967295
:排除未定义的用户 ID。-k user_commands
:为该规则指定一个键(key),便于在日志中查找。
审计日志查看方法
auditd
的审计日志通常存储在 /var/log/audit/audit.log
文件中。可以使用以下方法查看和分析审计日志:
-
直接查看日志文件
使用
cat
、less
或tail
命令查看日志文件:sudo less /var/log/audit/audit.log
或者实时查看日志:
sudo tail -f /var/log/audit/audit.log
-
使用
ausearch
工具ausearch
是一个专门用于搜索审计日志的工具。例如,查找所有与passwd_changes
相关的事件:sudo ausearch -k passwd_changes
查找特定时间范围内的事件:
sudo ausearch -ts recent -k user_login
解释:
-ts recent
:查找最近的事件。-k user_login
:查找与user_login
相关的事件。
使用 aureport
工具
aureport
是一个生成审计报告的工具,可以帮助你快速查看和分析审计日志中的信息。以下是一些常见的使用场景:
-
生成每日的登录报告
sudo aureport -l --summary
这将生成一个关于用户登录事件的摘要报告。
-
生成文件访问报告
sudo aureport -f --summary
这将生成一个关于文件访问事件的摘要报告。
-
生成系统调用报告
sudo aureport -s --summary
这将生成一个关于系统调用事件的摘要报告。
-
生成用户命令报告
sudo aureport -c --summary
这将生成一个关于用户执行命令的摘要报告。
-
生成特定时间范围内的报告
例如,生成过去一天的登录报告:
sudo aureport -l --start today --end now
这将生成从今天开始到现在的登录事件报告。
配置持久化审计规则
为了确保审计规则在系统重启后仍然有效,可以将审计规则写入配置文件。通常,审计规则可以写入 /etc/audit/rules.d/
目录下的文件中,例如 /etc/audit/rules.d/audit.rules
。
-
编辑审计规则文件
打开或创建
/etc/audit/rules.d/audit.rules
文件:sudo nano /etc/audit/rules.d/audit.rules
-
添加审计规则
将所需的审计规则添加到文件中。例如:
-w /etc/passwd -p rwxa -k passwd_changes -a always,exit -F arch=b64 -S execve -k user_login -a always,exit -F arch=b64 -S open -k file_open -a always,exit -F arch=b64 -S execve -F uid>=1000 -F uid!=4294967295 -k user_commands
-
重启
auditd
服务保存文件并退出编辑器,然后重启
auditd
服务以应用新的规则:sudo systemctl restart auditd
总结
通过配置 auditd
,可以监控和记录系统中的各种安全相关事件。常见的配置场景包括文件和目录访问审计、用户登录和注销审计、系统调用审计以及用户命令审计。审计日志通常存储在 /var/log/audit/audit.log
文件中,可以使用 ausearch
和 aureport
工具查看和分析审计日志。为了确保审计规则在系统重启后仍然有效,可以将规则写入 /etc/audit/rules.d/
目录下的配置文件中,并重启 auditd
服务以应用新的规则。