服务器权限审计规则模板需聚焦高风险操作,覆盖特权命令执行、权限配置文件变更、提权与会话切换、敏感目录访问四类行为;规则须存于 /etc/audit/rules.d/ 下以 .rules 结尾,禁手动改 audit.rules;加载后用 augenrules --load 和 auditctl -l 验证,并配套日志轮转、性能排除及SIEM告警。

设置服务器权限审计规则模板,核心是聚焦高风险操作、避免规则冗余、确保长期生效。不能只靠临时命令测试,必须建立可维护、可验证、符合业务实际的规则文件结构。
明确要监控的关键权限行为
不是所有操作都需要审计,优先覆盖以下四类:
- 特权命令执行:sudo、su、passwd、usermod、chage、visudo 等二进制文件的调用
- 身份与权限配置文件变更:/etc/passwd、/etc/shadow、/etc/group、/etc/sudoers、/etc/ssh/sshd_config
- 提权与会话切换行为:execve 系统调用中 euid != uid 的情况(如普通用户执行 sudo)、su 切换、ssh 登录成功/失败事件
- 敏感目录访问:/root、/etc、/var/log、/boot 等目录下的写、执行、属性修改操作
按规范编写永久性规则文件
所有规则必须存入 /etc/audit/rules.d/ 目录,以 .rules 结尾,例如 10-perm-audit.rules。每条规则前加注释说明用途,示例:
# 监控所有对关键身份文件的写和属性修改 -w /etc/passwd -p wa -k identity_change -w /etc/shadow -p wa -k identity_change -w /etc/group -p wa -k identity_change -w /etc/sudoers -p wa -k sudoers_change <h1>监控特权命令执行(64位系统)</h1><p>-a always,exit -F arch=b64 -F path=/usr/bin/sudo -F perm=x -k privileged_cmd -a always,exit -F arch=b64 -F path=/bin/su -F perm=x -k privileged_cmd</p><h1>捕获非 root 用户提权行为(euid 变化)</h1><p>-a always,exit -F arch=b64 -S execve -F euid!=uid -k priv_escalation
注意:不要直接编辑 /etc/audit/audit.rules,该文件由 augenrules 自动生成,手动改写会被覆盖。
加载并验证规则是否真正生效
完成编写后,执行标准加载流程:
- 运行 sudo augenrules --load,触发规则合并与内核加载
- 检查是否载入:sudo auditctl -l | grep -E "(identity_change|privileged_cmd)"
- 手动触发一次目标行为(如 sudo id),再用 ausearch -k privileged_cmd -i | tail -2 查看完整上下文(含用户、终端、命令行、时间)
- 确认日志落盘位置:/var/log/audit/audit.log,且内容可读、字段完整
配套运维要点不能漏
规则模板只是起点,还需同步配置:
- 日志轮转:在 /etc/audit/auditd.conf 中设置 max_log_file(如 50M)、num_logs(如 6)、rotate_logs(yes)
- 性能保护:对 /proc、/sys、/dev 等高频路径添加排除规则(如 -a never,never -F path=/proc),防止审计拖慢系统
- 告警衔接:将 audit.log 接入 rsyslog 或 filebeat,转发至 SIEM(如 ELK、Splunk)做关键词匹配与实时通知
- 香港等合规场景额外要求:日志加密存储、保留至少 180 天、禁止跨域传输、记录 auid(原始登录用户ID)而非仅 uid

















