AIDE 安全监控需先建立可信基线:初始化前清环境、用干净配置生成 aide.db.new.gz,再重命名并校验为正式数据库;规则须精简聚焦核心路径、排除干扰项且顺序正确;日常检查必须依赖退出码(0=正常,1=变更,255=错误)而非人工读日志。

在 Linux 中用 AIDE 生成系统文件快照并定期比对核心文件改动,关键不是“运行一次就完事”,而是建立可信基线、保护数据库、正确排除干扰、靠退出码判断结果,并让检查真正自动化落地。
初始化前必须清理环境并确认系统干净
AIDE 的数据库一旦基于被篡改的系统生成,后续所有比对都失去意义。初始化前务必确保系统刚部署完成、未连入高风险网络、无可疑进程运行。
- 先彻底清空旧配置和残留数据库:sudo rm -f /var/lib/aide/aide.db* /etc/aide.conf
- 用官方示例重建干净配置:sudo cp /usr/share/doc/aide/examples/aide.conf.sample /etc/aide.conf
- 编辑 /etc/aide.conf 时注意:路径行开头不能有多余空格;每行末尾不要有不可见字符(如 Windows 换行符);关键目录如 /bin、/sbin、/etc、/usr/bin 必须显式列出
生成并部署可信快照(数据库)
AIDE 不会自动把新生成的快照设为基准——它只认 /var/lib/aide/aide.db.gz 这个固定路径。生成的 aide.db.new.gz 只是“草稿”,必须手动转正且验证。
- 运行初始化:sudo aide --init --force-init(加 --force-init 避免跳过)
- 确认生成成功:ls -lh /var/lib/aide/aide.db.new.gz(大小应 >1KB)
- 重命名为正式数据库:sudo mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
- 立即校验压缩完整性:sudo gzip -t /var/lib/aide/aide.db.gz(失败则需重做)
- 可选但强推:保存数据库指纹,防止它自己被替换:sudo sha256sum /var/lib/aide/aide.db.gz > /root/aide.db.sha256
合理配置监控规则与排除项
默认规则太宽泛,既拖慢速度又导致大量误报。生产环境应聚焦核心路径,明确排除高频变动项,且规则顺序决定优先级。
- 定义精简规则别名(例如只校验关键属性+SHA256):F = p+i+n+u+g+s+m+c+sha256
- 监控重点目录(一行一个,不加尾部斜杠):/bin F、/etc F、/usr/sbin F
- 排除日志、临时文件等(必须写在监控规则之前!):!/var/log/.*、!/tmp/、!/run/、!/proc/
- 修改 /etc/aide.conf 后,必须重新运行 aide --init 才能让新规则生效
日常比对要靠退出码,不是靠肉眼扫输出
AIDE 的文本输出混合了正常信息和异常提示,仅看屏幕容易漏掉关键变更。真正可靠的是命令执行后的退出状态码:
- 退出码 0:无任何变更(安静,无输出也属正常)
- 退出码 1:检测到新增、删除或内容/属性变更(即真实风险信号)
- 退出码 255:内部错误(如数据库损坏、权限不足、找不到配置)
- 写成判断语句才实用:sudo aide --check && echo "OK" || echo "ALERT"
- 发现 Added: 或 Removed: 要优先排查——这比内容修改更危险,可能意味着后门植入或日志擦除











