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

Linux 权限体系本身不直接提供完整性检查能力,但它为完整性检查提供了基础支撑——比如限制谁可以修改关键文件(/etc/passwd、/bin/ls)、谁有权读取校验数据库或执行 aide --check。真正实现完整性检查,需在权限控制之上叠加专用机制。
用 AIDE 做系统级完整性监控
AIDE 是专为 Linux 设计的完整性审计工具,能同时跟踪文件内容、权限、所有者、时间戳、SELinux 上下文等元数据变化,且规则可精细控制。
- 安装后先初始化可信基线:运行
aide --init,生成/var/lib/aide/aide.db.new.gz,再手动重命名为/var/lib/aide/aide.db.gz,否则后续检查会报错“database not found” - 编辑
/etc/aide.conf时避免无脑包含整个目录:例如/etc/ p+i+n+u+g+s+sha256会把/etc/resolv.conf这类动态文件也纳入监控,导致频繁误报;应显式排除:!/etc/resolv.conf!/etc/mtab!/etc/**.log - 规则中
!表示排除,但路径需精确匹配;若启用 glob 支持,可用!/etc/**/*.log,否则需逐条列出
对高敏感单文件做轻量级哈希校验
适用于 /etc/shadow、/boot/vmlinuz-*、SSH 主机密钥等极少变动但一旦被改就意味失陷的文件。
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- 初始校验值生成并存于安全位置:
sha256sum /etc/shadow /boot/vmlinuz-* /etc/ssh/ssh_host_*_key > /root/critical-files.sha256 - 后续巡检脚本中验证:
sha256sum -c /root/critical-files.sha256 2>/dev/null | grep -v ": OK$" - 校验文件自身必须受保护:建议用
chattr +i /root/critical-files.sha256锁定,或将其存放在只读挂载点
避开常见陷阱与权限风险
完整性检查失效,往往不是工具没用好,而是部署细节被忽略。
- 不要把 AIDE 数据库(
aide.db.gz)和日志写在同一分区:根分区满会导致aide --init失败,且检查日志也无法落盘 -
aide --check返回值有明确语义:成功为0,发现变更返回1,出错(如数据库损坏)返回2;写 cron 任务时必须判断$?,不能只靠日志里有没有 “OK” - 日志中出现
Added或Removed比Changed更紧急:前者可能表示植入后门或清除日志,需立即响应 -
rpm -Va只覆盖 RPM 包管理的文件,漏掉/usr/local/bin下的手动程序、用户脚本、自建配置等,不能替代 AIDE 或手工校验
别用 md5sum 做系统完整性检查
MD5 已被证实存在碰撞漏洞,攻击者可构造不同内容却产生相同哈希值的文件。它仅防意外损坏,不防恶意篡改。
-
md5sum输出是 128 位哈希,sha256sum是 256 位,抗碰撞能力高出约两个数量级 - 若仅用于传输校验(如下载 ISO 后比对官网提供的 MD5),尚可接受;但涉及系统关键文件监控,必须换用
sha256sum或更专业的 AIDE
不复杂但容易忽略

















