AIDE实现Linux文件完整性校验需先在干净系统中运行aide --init生成基线,再移动生成的/var/lib/aide/aide.db.new.gz为正式数据库;编辑/etc/aide.conf聚焦核心路径并排除干扰项,通过aide --check定期检测Added/Removed/Changed异常,结合crontab自动化与分级告警。

实现 Linux 系统文件完整性校验与定期备份巡检,关键在于把“静态校验”和“动态验证”结合起来——既要确认关键文件没被篡改,也要确保备份包真能用。不能只看备份脚本有没有跑完,也不能只存一份哈希就以为万事大吉。
用 AIDE 做周期性文件完整性监控
AIDE 是专为生产环境设计的完整性审计工具,适合长期运行、规则可控、结果可追溯。
- 安装后先初始化可信基线:运行
aide --init,再把生成的/var/lib/aide/aide.db.new.gz移动并解压为正式数据库,这一步必须在系统干净、配置完成之后做 - 编辑
/etc/aide.conf,聚焦核心路径,比如:/etc/ p+i+n+u+g+s+b+m+c+sha256 !/etc/.*~ !/etc/*.log
表示监控 /etc 下所有常规文件的权限、属主、大小、时间戳和 SHA256 哈希,但跳过临时文件和日志 - 日常检查只需执行
aide --check,输出中重点关注 Changed(内容或属性变更)、Added(可疑新增)、Removed(关键文件消失)三类结果 - 把检查任务加进 crontab,例如每天凌晨 3:15 执行:
15 3 * * * /usr/bin/aide --check | grep -E "(Added|Removed|Changed)" | mail -s "AIDE Alert $(hostname)" admin@example.com
对关键文件单独做轻量级哈希校验
适用于少量高敏感文件(如 /etc/passwd、/boot/vmlinuz*、SSH 主机密钥),响应快、不依赖数据库。
- 首次生成校验值时,保存到受保护位置(比如只读挂载的 USB 或带签名的备份):
sha256sum /etc/passwd /etc/shadow /boot/vmlinuz* > /root/filesums.sha256 - 后续巡检脚本中运行:
sha256sum -c /root/filesums.sha256 2>/dev/null | grep -v ": OK$"
只显示失败项,避免干扰 - 注意校验文件自身安全——可配合
chattr +i锁定,或用auditd监控其读写行为
备份文件有效性闭环验证
备份成功 ≠ 备份可用。验证必须包含状态检查、内容抽查、小范围还原三层动作。
-
查状态:检查备份文件大小是否合理(如全量数据库备份不应小于 10MB)、修改时间是否在预期窗口内(
stat -c %y backup.tar.gz)、SHA256 校验和是否匹配 -
抽内容:不全量解压,改用轻量访问:
– tar 包:用tar -tzf backup.tar.gz | head -n 20看能否列出目录结构
– qcow2 镜像:用qemu-img info检元数据,再guestmount --ro挂载读取/etc/passwd -
试还原:从备份中提取固定路径(如
/etc/hostname)到临时目录,用diff或sha256sum对比原始文件,记录退出码和耗时
整合成定时任务并分级告警
把上述检查封装为统一脚本(如 /usr/local/bin/verify-backup.sh),通过 cron 调度,按结果触发不同响应。
- 成功:仅写 syslog,不发通知
- 警告(如哈希不匹配但文件可读):邮件 + 企业微信文本提醒
- 严重(如挂载失败、还原中断):语音电话告警 + 暂停后续备份任务,防止坏备份覆盖好备份
- 所有执行日志按日期归档到
/var/log/backup-verify/$(date +%F).log,便于回溯定位


















