首选aide部署轻量可靠的文件完整性监控系统:在干净系统中执行aide --init初始化基线,定制/etc/aide.conf排除动态目录、强化关键路径校验,通过crontab每日自动检查并邮件告警,严格保护数据库权限与离线备份。

直接上手部署一个可靠、轻量、可落地的服务器文件完整性监控系统,推荐首选 AIDE(Advanced Intrusion Detection Environment)。它不依赖网络通信或中心平台,纯本地运行,适合生产环境长期值守,且满足等保2.0、PCI DSS 等合规要求。
安装与初始化:在干净系统中建立可信基线
务必在确认系统未被入侵、无异常进程、无可疑用户时操作——这是整个监控体系可信的前提。
- Debian/Ubuntu:sudo apt install aide aide-common
- RHEL/CentOS 7/8:sudo yum install aide 或 sudo dnf install aide
- 执行初始化:sudo aide --init,生成压缩数据库 /var/lib/aide/aide.db.new.gz
- 激活新库:sudo mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
- 加固权限:sudo chmod 600 /var/lib/aide/aide.db.gz(仅 root 可读写)
定制监控规则:聚焦关键路径,避开干扰项
默认配置太宽泛,容易误报。编辑 /etc/aide.conf,按需调整:
- 用 !/var/log、!/proc、!/sys、!/dev 排除动态目录
- 对敏感配置启用强校验,例如:
/etc/passwd p+i+n+u+g+s+b+md5+sha256
/etc/ssh/sshd_config p+i+n+u+g+s+m+c+md5+sha256 - 定义策略组简化管理,如:
CRITICAL = p+i+n+u+g+s+m+c+md5+sha256
/etc/ CRITICAL - 修改配置后必须重新运行 sudo aide --init 并替换数据库
自动化检查与告警处理
手动检查不可持续。将校验任务加入定时作业,并做好结果归档:
- 添加 crontab 条目(每天凌晨2点执行):
0 2 * * * /usr/bin/aide --check --config=/etc/aide.conf > /var/log/aide-check.log 2>&1 - 用 logrotate 管理日志,防止膨胀(配置见 /etc/logrotate.d/aide)
- 检查输出中是否含 changed、added、removed 关键字;发现变更先确认是否为预期操作(如 yum update、nginx reload)
- 建议配合简单脚本自动提取异常行并邮件通知:
grep -E "(changed|added|removed)" /var/log/aide-check.log | mail -s "AIDE Alert" admin@example.com
数据库安全与版本管理
AIDE 数据库本身是攻击者首要清除目标,必须离线备份并验证完整性:
- 定期导出并签名:
gpg --detach-sign /var/lib/aide/aide.db.gz - 备份到只读介质(如挂载的 USB 设备或隔离网络中的备份服务器)
- 每次重大变更(内核升级、安全补丁、服务重装)后重建基线,并记录版本号与说明,例如:
aide.db.gz-v20260604-kernel5.10.197 - 禁止通过 HTTP/FTP 等明文协议传输数据库文件











