新手配置Linux文件完整性扫描需四步:安装AIDE、生成并重命名初始数据库、精简/etc/aide.conf规则、用crontab定时执行--check并配合logrotate管理日志,关键在路径准确、权限严格、排除动态目录。

新手配置 Linux 文件完整性定时扫描和报告生成,核心是用好 AIDE 工具——它不依赖复杂环境,装完就能跑,关键是把初始化、规则精简、定时执行和结果查看这四步做对。别被默认配置带偏,很多报错其实只是数据库没重命名或路径写错了。
安装与生成初始可信数据库
先确保系统干净(未被入侵、无异常进程),再执行:
- Debian/Ubuntu:sudo apt install aide
- RHEL/CentOS:sudo yum install aide 或 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(否则 aide --check 会提示 “database not found”)
- 设权限防篡改:sudo chmod 600 /var/lib/aide/aide.db.gz
精简配置避免误报
打开 /etc/aide.conf,删掉或注释掉宽泛的默认规则(如全量监控 /etc),只留真正关键的路径,并排除动态内容:
- 加排除行(每行一个):!/var/log、!/proc、!/sys、!/dev、!/tmp
- 定义常用规则(示例):Binlib = p+i+n+u+g+s+sha256
- 应用规则到目录:/bin Binlib、/sbin Binlib、/usr/bin Binlib、/etc/ssh/ p+i+n+u+g+s+sha256
- 确认数据库路径正确:database=file:/var/lib/aide/aide.db.gz(大小写、.gz 后缀、斜杠都不能错)
设置定时扫描并保存结构化日志
用 crontab 实现每天凌晨自动检查,同时让日志可读、可追溯:
- 运行 sudo crontab -e,添加一行:0 2 * * * /usr/bin/aide --check --config=/etc/aide.conf > /var/log/aide/$(date +\%Y\%m\%d).log 2>&1
- 提前建好日志目录:sudo mkdir -p /var/log/aide,并设属主:sudo chown root:root /var/log/aide
- 用 logrotate 管理日志归档(新建 /etc/logrotate.d/aide):
/var/log/aide/*.log {
daily
missingok
rotate 30
compress
notifempty
}
快速查看和响应扫描结果
日常不用翻全量日志,重点看变更类型和退出码:
- 查最新日志:sudo tail -n 50 /var/log/aide/$(date +\%Y\%m\%d).log | grep -E "(Added|Removed|Changed)"
- 注意退出码:aide --check 返回 0 表示无变更;返回 1 表示发现文件变动(需人工确认是否合理);返回 2 表示出错(如权限不足、数据库损坏)
- 新增(Added)或删除(Removed)比内容变更(Changed)更危险,优先排查:
– 检查时间:journalctl --since "2 hours ago" | grep -i "aide\|install\|update"
– 查关联进程:lsof +D /path/to/suspicious/file
– 提取哈希比对:sha256sum /path/to/file


















