Linux文件篡改怎么检测_完整性校验方案讲解【教学】

2次阅读

linux文件是否被篡改,核心靠的是“比对”——拿当前文件的指纹,跟它原本该有的指纹对照。只要内容有丁点变化,指纹就完全不同。检测不难,关键是选对方法、用对时机、存好基线。

Linux 文件篡改怎么检测_完整性校验方案讲解【教学】

Linux 文件是否被篡改,核心靠的是“比对”——拿当前文件的指纹,跟它原本该有的指纹对照。只要内容有丁点变化,指纹就完全不同。检测不难,关键是选对方法、用对时机、存好基线。

用 md5sum 或 sha256sum 做轻量级校验

这是最直接、无需额外安装的方式(coreutils包自带)。适合检查单个关键文件或小范围目录:

  • 生成原始指纹:比如对 /etc/passwd 记录一次哈希值
    sha256sum /etc/passwd > /root/etc_passwd.sha256
  • 后续复查:运行 sha256sum -c /root/etc_passwd.sha256,输出 /etc/passwd: OK 表示未变;若显示 FaiLED,说明内容已被修改
  • 注意:MD5 虽快,但已不推荐用于安全场景;优先用 sha256sum,抗碰撞更强,且系统普遍支持

用 RPM 或 debsums 验证软件包文件

适用于 RHEL/centosdebian/ubuntu 这类包管理完善的系统。它不依赖你手动记录,而是直接查软件包 数据库 里“出厂时承诺的文件状态”:

  • RHEL 系:运行 rpm -Va 检查所有已安装包的文件(权限、大小、哈希、时间戳等)。输出形如 S.5……T. c /etc/ssh/sshd_config,其中 5 表示哈希值变了,c 表示是 配置文件
  • Debian 系:先装 debsumssudo apt install debsums),再执行 sudo debsums -c;无输出即全部正常,有输出则列出被改或缺失的文件
  • 修复方式很明确:确认问题后,重装对应包即可,例如 sudo yum reinstall openssh-serversudo apt install --reinstall openssh-server

用 AIDE 建立长期完整性监控

如果需要持续盯防关键系统目录(如 /bin/sbin/etc),AIDE(Advanced Intrusion Detection Environment)是专业选择。它不是临时比对,而是建一个本地可信基线库:

  • 安装后先初始化数据库:sudo aide --init(生成 /var/lib/aide/aide.db.new.gz
  • 把新库设为正式基线:sudo cp /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
  • 日常检查只需运行 sudo aide --check,它会报告新增、删除、属性或内容变更的文件
  • 建议将 AIDE 数据库和 配置文件/etc/aide.conf)单独备份到离线介质或只读挂载点,防止被攻击者一并覆盖

补充技巧:快速定位可疑文件

除了比对,还可以从行为反推异常:

  • 查不属于任何包的“幽灵文件”:rpm -qf /path/to/file(RHEL)或 dpkg -S /path/to/file(Debian),若提示“not owned”,需重点审查
  • 找最近被修改的系统二进制:find /bin /sbin /usr/bin -type f -mtime -7 -ls,结合 stat 看详细时间与权限变化
  • 锁定不可篡改的关键文件(仅限确信无需再改):chattr +i /usr/bin/sudo,这样连 root 也无法删除或覆盖(解除用 chattr -i
站长
版权声明:本站原创文章,由 站长 2025-12-24发表,共计1405字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
1a44ec70fbfb7ca70432d56d3e5ef742
text=ZqhQzanResources