auditd是linux权限审计最可靠的选择,它从内核层捕获真实操作,可精准回答“谁、何时、以何身份、对何资源做了什么”,适用于追踪提权、越权访问和敏感文件篡改。

auditd 是 Linux 权限审计最可靠的选择——它不依赖用户行为或应用日志,而是从内核层捕获真实操作。配置得当,就能清晰回答“谁、在何时、以什么身份、对哪些资源做了什么”,尤其适合追踪提权、越权访问和敏感文件篡改。
确认服务状态与基础环境
先确保 auditd 已安装并运行:
- 检查服务:`systemctl status auditd`,应显示 active (running)
- 若未运行,启动并设为开机自启:
sudo systemctl enable --now auditd - 验证内核模块已加载:
lsmod | grep audit,有输出即正常 - 关键路径检查:
/etc/audit/rules.d/(存永久规则)、/var/log/audit/audit.log(默认日志)
权限相关核心规则配置
聚焦权限变更、提权行为和敏感路径访问,避免泛监控导致日志爆炸:
-
监控 sudo 和 su 执行:
auditctl -a always,exit -F arch=b64 -S execve -F path=/usr/bin/sudo -k privilege_escalationauditctl -a always,exit -F arch=b64 -S execve -F path=/bin/su -k privilege_escalation -
捕获 setuid/setgid 程序执行:
auditctl -a always,exit -F arch=b64 -S execve -F euid!=uid -k setuid_exec -
跟踪 /etc/sudoers 及其包含文件:
auditctl -w /etc/sudoers -p wa -k sudoers_changeauditctl -w /etc/sudoers.d/ -p wa -k sudoers_d_change -
记录非 root 用户对关键系统文件的写入:
auditctl -w /etc/passwd -p w -F uid!=0 -k passwd_writeauditctl -w /etc/shadow -p w -F uid!=0 -k shadow_write
让规则持久化且可控
临时规则(auditctl 添加)重启后失效,生产环境必须写入规则文件:
- 在
/etc/audit/rules.d/下新建文件,如99-privilege.rules - 每行一条规则,格式与 auditctl 一致,但去掉
auditctl -a前缀,例如:-a always,exit -F arch=b64 -S execve -F path=/usr/bin/sudo -k privilege_escalation - 重载规则:
sudo augenrules --load(自动合并所有 .rules 文件) - 验证加载结果:
sudo auditctl -l查看当前生效规则列表
快速定位权限异常事件
用 ausearch 针对关键词查上下文,比翻原始日志高效得多:
- 查所有提权尝试:
ausearch -k privilege_escalation --start today | aureport -f -i - 查某个用户修改了哪些敏感文件:
ausearch -ui 1001 -m SYSCALL -f /etc/passwd - 查失败的 sudo 操作(需提前配好 -F exit=-1 规则):
ausearch -m execve -f /usr/bin/sudo -i | grep "exit=-1" - 导出可读报告:
ausearch -k sudoers_change | aureport -f -i --output stdout











