-e 2 把审计配置锁死
在 auditd 规则文件的最后写一行 -e 2,会把审计配置置为不可变状态:此后连 root 也无法增删改规则,直到系统重启。这是等保要求“审计配置不被篡改”的落地手法,也让人为抹除审计痕迹的难度显著提高。代价是灵活性丧失——固化之后要改规则必须重启,因此重大变更窗口前要先把规则定稿。
基本信息
| 适用平台 | Linux(auditd,RHEL/CentOS/Debian/Ubuntu 通用) |
|---|---|
| 规则文件 | /etc/audit/rules.d/99-finalize.rules(文件名决定加载顺序) |
| 配置项 | -e 1(仅允许增,不允许删改)与 -e 2(完全不可变) |
| 核查命令 | auditctl -s 查看 enabled 取值 |
| 基线 | 审计配置处于不可变状态 |
典型使用场景
- 等保整改:落实审计配置不被篡改的要求
- 高安全区主机:防止入侵者清理审计规则掩盖痕迹
- 规则定稿后固化:完成规则调优再锁死,避免反复变更
- 合规取证:证明审计配置在考察期内未被修改
- 演练与验证:在测试机验证固化流程与回退方式
固化与核查
固化与核查
cat >> /etc/audit/rules.d/99-finalize.rules << 'EOF'
-e 2
EOF
augenrules --load # 重新加载并生效
auditctl -s | grep enabled # enabled=2 表示已固化
auditctl -w /tmp/x -p wa -k test # 预期报 Operation not permitted
auditctl -l | tail -3 # 查看已加载规则列表取值与影响读法
| 取值/现象 | 含义 | 影响 |
|---|---|---|
| -e 0 | 审计已关闭 | 不应出现在生产环境 |
| -e 1 | 只允许追加规则 | 可增不可删,灵活性介于两者之间 |
| -e 2 | 完全不可变 | 连 root 也无法修改,需重启才能变更 |
| enabled=2 | 当前处于不可变状态 | 固化已生效 |
| Operation not permitted | 尝试改动被拒绝 | 固化生效的正常表现 |
固化后想改规则必须重启系统:重大变更窗口前先确认规则文件最终定稿再固化,避免为了调整规则被迫重启生产机。
落地要点
- -e 2 必须位于 rules.d 中排序最后的文件,否则会被后续规则覆盖
- 固化前先在测试环境演练一遍:确认流程与回退方式都可行
- 固化状态无法在线解除,只能通过重启恢复可写状态
- 规则变更加入变更流程:把 -e 2 作为规则定稿的收尾动作
- 把 auditctl -s 的输出纳入巡检证据,证明配置未被篡改
如果运行的是容器或精简系统,auditd 可能未启用:固化前先确认审计服务本身在运行,否则规则文件没有实际作用。