RHEL 10 文件完整性:AIDE 基线与检查
This content is not available in your language yet.
AIDE 不阻止变更,它只回答一个问题:和基线相比,哪些文件变了。在 RHEL 10 上,初始化、移动数据库、跑检查这三步都有坑,尤其是“.new.gz 不移动就等于没基线”。
在 PVE 390 rhel10-lab(RHEL 10.2 x86_64)上实际执行:
sudo dnf -y install aideaide --versionsudo aide --init --config /etc/aide.confsudo mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gzsudo aide --check --config /etc/aide.confE3 记录:plans/content-expansion/evidence/rhel/rhel-aide-baseline/run.json(7 步,含 init/check 的输出 sha256 与退出码)。
先给结论:AIDE = 基线 + 比对
Section titled “先给结论:AIDE = 基线 + 比对”aide --init扫描文件系统,把哈希/权限/时间戳写进数据库;- 新数据库默认叫
aide.db.new.gz,必须移动成aide.db.gz,--check才认; --check只报告差异,不自动修复;- 基线库本身要防篡改(只读介质/离线保存),否则攻击者改库即可“消警”。
实测初始化输出:
AIDE successfully initialized database.New AIDE database written to /var/lib/aide/aide.db.new.gzNumber of entries: 49557检查与退出码
Section titled “检查与退出码”sudo aide --check --config /etc/aide.confecho $?退出码是位掩码,不是普通成功/失败:
| 位 | 含义 |
|---|---|
| 1 | 新增文件 |
| 2 | 删除文件 |
| 4 | 内容/属性变更 |
所以 4 表示“有变更”,不是“命令坏了”。自动化里要按位判断,并把报告留存;不要把任何非 0 都当脚本失败。
变更检测实测
Section titled “变更检测实测”# 基线检查sudo aide --check --config /etc/aide.conf # rc=0
# 制造一次变更echo '# aide-test' | sudo tee -a /etc/hosts
# 再检查sudo aide --check --config /etc/aide.conf # rc=4输出节选:
AIDE found differences between database and filesystem!!f > ... ..H.... : /etc/hosts
File: /etc/hosts Size : 690 | 702 SHA512 : k8DzTLkA… | 1ILEmMi2…f 表示文件,> 表示发生变化;SHA512 前后值可直接用于取证。测试后已把追加行删除,但文件 mtime/大小已变,下一次 check 仍可能报差异——这正是“变更后要重建基线”的原因。
- 初次基线:安装完、加固完、业务上线前各做一次,记录时间与变更单;
- 日常检查:
aide --check的输出进日志/工单,不要只发“有告警”; - 有意变更后:更新
aide.conf的排除项或重建数据库,并在变更单里写明; - 基线库:复制到只读介质/离线位置,权限 600,禁止普通用户读;
- 排除项:
/proc、/sys、/var/log、容器层、数据库数据文件按需排除,否则噪声会淹没真实告警。
-
aide.db.new.gz是否已移动为aide.db.gz; - 基线库是否离线/只读保存;
-
--check退出码是否按位解释; - 报告是否留存(含时间、主机、差异文件);
- 有意变更后是否重建基线并记录原因;
- 排除项是否覆盖高噪声目录。
未实测与边界
Section titled “未实测与边界”- 未测试大规模文件系统(百万级 inode)的扫描时长与内存;
- 未测试
aide.conf自定义规则(NORMAL/CONTENT/PERMS)的组合; - 未测试与
auditd/falco的联动; - 未测试基线库签名/加密存储。
- RHEL 10 SELinux:文件上下文与布尔值 — 访问控制
- RHEL 安全基线与加固 — 系统加固
- 官方:Security hardening