核心是捕获提权行为而非权限本身,通过auditd配置sudo/su执行、/etc/sudoers和/passwd修改等规则,结合日志转发、实时告警、sudo/SSH加固及AIDE文件完整性校验,实现低延迟、不可绕过、防篡改的权限变更审计闭环。

要实现服务器权限变更的实时审计,核心不是监听“权限本身是否变了”,而是精准捕获所有触发权限提升或关键配置修改的行为——比如执行 sudo、su、修改 /etc/sudoers 或 /etc/passwd 等操作。这套机制必须低延迟、不可绕过、日志防篡改。
启用 auditd 捕获内核级提权行为
auditd 是 Linux 唯一能从系统调用层拦截特权动作的工具,比 shell 日志更可靠:
- 在
/etc/audit/rules.d/priv-audit.rules中添加规则,例如:-a always,exit -F path=/usr/bin/sudo -F perm=x -k sudo_exec-a always,exit -F path=/bin/su -F perm=x -k su_exec-w /etc/sudoers -p wa -k sudoers_change-w /etc/passwd -p wa -k user_change - 运行
sudo augenrules --load加载规则,确认服务已启动:sudo systemctl enable --now auditd - 验证是否生效:执行一次
sudo ls,再运行ausearch -k sudo_exec | head -n1,应看到含用户、终端、时间的完整事件
集中收集并实时解析审计日志
本地日志易被删改,需转发+实时分析:
- 配置
rsyslog或auditd自带的audispd插件,将/var/log/audit/audit.log转发至远程 syslog 服务器(启用 TLS 加密) - 部署轻量脚本监听日志变化,例如用
inotifywait+awk匹配key="sudo_exec"事件,触发告警:echo "$(date): sudo used by $(ausearch -k sudo_exec -i | grep 'acct' | tail -1 | cut -d\" \" -f4)" | mail -s "SUDO ALERT" admin@example.com - 企业环境推荐接入 SIEM(如 Wazuh、OSSEC),自动关联登录 IP、命令参数与用户身份,识别异常时段或高危组合(如 root + chmod 777)
加固 sudo 和 SSH 配置以缩小审计盲区
审计有效性的前提是行为可记录、不可跳过:
- 禁用 root 远程登录:
PermitRootLogin no(/etc/ssh/sshd_config),强制所有管理通过普通用户 + sudo - 在
/etc/sudoers中启用细粒度记录:Defaults logfile=/var/log/sudo.logDefaults log_input,log_output(配合sudo_logsrvd可录终端输入输出) - 对敏感命令加白名单限制,避免
NOPASSWD: ALL;使用%wheel ALL=(ALL) /bin/systemctl restart httpd替代宽泛授权
补充文件完整性监控(FIM)做基线比对
auditd 记录“谁改了”,FIM 工具确认“改成了什么样”:
- 用
aide建立初始文件指纹库:aide --init && mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz - 每日定时校验:
aide --check,重点监控/etc下的shadow、group、crontab等文件权限与内容变化 - 将 aide 报告输出接入日志系统,与 auditd 事件交叉比对(例如:
ausearch显示某用户执行了usermod,aide显示/etc/passwd哈希值变更 → 完整闭环)

















