Linux 文件完整性检测方法

6次阅读

linux文件完整性检测依靠校验值比对(如sha256sum)、专用工具(aide)、实时监控(inotifywait)和访问审计(auditd)四类方法,分别适用于静态校验、周期审计、即时告警与行为溯源。

Linux 文件完整性检测方法

Linux 文件完整性检测主要靠校验值比对和专用工具监控,核心是发现文件是否被意外或恶意修改。

使用 sha256sum 生成并验证校验值

适用于静态关键文件(如配置文件、启动脚本)的离线校验。先在可信状态下生成校验值存档,后续定期比对。

  • 生成校验文件:sha256sum /etc/passwd /etc/shadow /boot/vmlinuz* > /root/filesums.sha256
  • 验证时运行:sha256sum -c /root/filesums.sha256 2>/dev/NULL | grep -v “: OK$”(只显示失败或警告项)
  • 注意:需确保校验文件本身不被篡改,建议存于只读介质或带签名的备份中

用 AIDE(Advanced Intrusion Detection Environment)做周期性完整性审计

AIDE 是专为文件完整性设计的开源工具,支持规则配置、数据库初始化与增量比对,适合生产环境长期部署。

  • 安装后初始化数据库:aide –init && mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
  • 日常检查执行:aide –check,输出差异(如权限变更、大小变动、哈希不匹配)
  • 可配置忽略临时文件、日志目录等动态内容,避免误报;规则写在 /etc/aide.conf

借助 inotify 或 inotifywait 实时监控敏感目录

适合需要即时响应的场景(如 Web 根目录、管理后台配置),但不替代校验,仅作辅助告警。

  • 监听 /etc 下关键子目录变化:inotifywait -m -e modify,attrib,move,create,delete /etc/ssh/ /etc/pam.d/
  • 配合脚本可触发邮件通知、记录日志或自动还原(需预置干净副本)
  • 注意:inotify 资源有限,监控深度大或文件数多的目录需调高 /proc/sys/fs/inotify/max_user_watches

结合系统日志与 auditd 追踪文件访问行为

auditd 可记录谁、何时、以何种方式访问或修改了哪些文件,提供溯源依据,与完整性校验形成互补。

  • 添加监控规则示例(监控 /etc/shadow 写入):auditctl -w /etc/shadow -p wa -k shadow_access
  • 查询相关事件ausearch -k shadow_access | aureport -f -i
  • 规则持久化需写入 /etc/audit/rules.d/ 并重启 auditd
text=ZqhQzanResources