AIDE 完整介绍
一、全称与定位
AIDE = Advanced Intrusion Detection Environment,高级入侵检测环境
开源免费的 Linux 文件完整性监控工具(FIM),是等保 2.0 强制要求部署的主机安全组件,用来发现黑客篡改系统文件、植入后门、替换二进制程序的行为。
二、核心工作原理
1. 干净基线快照
系统刚装好、无病毒无入侵时,扫描指定目录(/etc、/bin、/sbin、/usr/bin、/root 等关键路径),记录每一个文件的全套指纹信息存入数据库 /var/lib/aide/aide.db.gz:
- 文件内容哈希:SHA256/SHA512(判断内容是否被篡改)
- 基础属性:权限、属主 uid、属组 gid、inode、文件大小、修改时间 mtime、创建时间 ctime
- 扩展属性:ACL、SELinux 标签、扩展文件属性
2. 定期比对检测
执行 aide --check 时,重新扫描当前系统文件,和基线数据库一一对比,输出三类异常:
- Changed:文件内容 / 权限 / 归属被改动(高危,大概率后门、恶意修改 passwd、sshd 配置)
- Added:多出陌生文件(木马、webshell、后门程序)
- Removed:系统关键文件被删除(破坏运维、留入侵通道)
三、和 auditd 的核心区别(别混淆)
| 工具 | 模式 | 作用 | 适用场景 |
|---|---|---|---|
| AIDE | 周期快照对比(每日定时) | 事后发现文件被改了,不知道谁改的 | 等保合规、入侵事后取证、基线校验 |
| auditd | 内核实时审计 | 实时记录谁、何时、哪个进程修改文件 | 实时操作溯源、精细行为监控 |
两者互补,生产环境一般同时部署。
四、典型监控目录(必监控)
- 系统命令:
/bin /sbin /usr/bin /usr/sbin(防止替换 ls、ps、ssh 后门) - 系统配置:
/etc(passwd、shadow、sshd_config、issue.net、sudoers 等) - 管理员目录:
/root - 启动脚本:
/etc/rc.d /etc/systemd - 业务关键目录:你的宝塔站点根目录、后端程序目录
必须排除的目录(否则大量误报)
/proc /sys /dev /tmp /var/tmp /var/log(日志、临时文件、虚拟文件系统持续变动)
五、CentOS 最简实操命令
1. 安装
yum install aide -y
2. 配置文件
vi /etc/aide.conf
自定义监控路径、排除目录、校验算法(推荐 sha512)。
3. 初始化基线(系统干净时执行,只做一次)
aide --init
# 生成新库,替换为正式基准库
mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
4. 日常检测(手动扫描)
aide --check
5. 正常运维更新基线(确认是人为修改后)
改完配置、升级系统后,同步更新基准库避免持续告警:
aide --update
mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
六、安全价值(对应你前面配置 sshd、issue.net 场景)
- 黑客入侵后常篡改:
/etc/passwd、/etc/shadow、/etc/ssh/sshd_config、/etc/issue.net、系统命令;AIDE 会第一时间发现改动并告警。 - 满足等保三级测评硬性要求:主机必须具备文件完整性校验能力,缺少 AIDE 直接扣分。
- 服务器被入侵后,可完整导出 AIDE 报告,定位所有被篡改文件,用于溯源清理后门。
七、补充注意事项
- 基线数据库必须在系统干净时生成,如果系统已经中毒再初始化,基准本身就是脏的,检测完全失效。
- 建议把基准库异地备份(上传对象存储、另一台服务器),防止黑客本地删除数据库掩盖篡改痕迹。
- 配合 crontab 每日自动检测,输出日志并对接钉钉 / 邮件告警,不用人工每天手动执行。
八、简易定时任务(每日凌晨 2 点扫描)
# 编辑定时
crontab -e
# 添加
0 2 * * * /usr/sbin/aide --check >> /var/log/aide/daily_check.log 2>&1