核心是精准捕获改变权限状态的行为,包括用户身份切换、特权命令执行和权限结构篡改;auditd因内核层运行可确保日志不可绕过、不可删改,并需配置永久规则、验证生效及增强溯源与防篡改能力。

要记录系统管理员权限操作轨迹,核心不是录下所有命令,而是精准捕获真正改变权限状态的行为——比如切换身份、执行特权程序、修改权限配置文件等。auditd 的优势在于它运行在内核层,能绕过 shell 层干扰,确保日志不可绕过、不可删改。
聚焦三类关键提权动作
管理员行为审计必须覆盖以下三类高风险路径:
- 用户身份切换:su、sudo、login 等本质是触发 euid ≠ uid 的 execve 调用
- 特权命令执行:/usr/bin/sudo、/bin/su、/usr/bin/passwd 等二进制被调用
- 权限结构篡改:/etc/sudoers、/etc/passwd、/etc/shadow、/etc/group 等文件被写入或属性变更
配置永久审计规则(推荐写入 /etc/audit/rules.d/10-privilege.rules)
每条规则需明确架构(b64)、系统调用或路径,并打上统一关键词便于检索:
-
-a always,exit -F arch=b64 -S execve -F euid!=uid -k priv_escalation -
-w /usr/bin/sudo -p x -k privileged_cmd -
-w /bin/su -p x -k privileged_cmd -
-w /etc/sudoers -p wa -k sudoers_change -
-w /etc/passwd -p wa -k account_mod -
-w /etc/shadow -p wa -k account_mod -
-w /etc/group -p wa -k account_mod -
-w /etc/gshadow -p wa -k account_mod
确保规则生效并可验证
- 规则保存后,运行
sudo augenrules --load加载(不是 systemctl restart) - 检查是否加载成功:
sudo auditctl -l | grep priv_escalation - 手动触发一次 sudo 操作,立即验证:
sudo ausearch -k priv_escalation -i --start recent | head -3 - 输出中应包含 auid(原始登录用户)、uid(当前执行者)、exe(执行路径)、comm(命令名)等字段
增强溯源与防篡改能力
- 启用 PAM loginuid 模块,确保 auid 在首次登录时正确绑定,避免 su/sudo 后丢失源头
- 配置 auditd 日志 TLS 加密外发至远程服务器,防止本地日志被清除
- 结合 AIDE 对 /etc 目录做文件完整性校验,auditd 告诉你“谁改了”,AIDE 告诉你“改成了什么”
不复杂但容易忽略











