核心是“建基线+定时比对+异常响应”三步闭环:用debsums(Debian)、rpm-Va(RHEL)、rkhunter或手动SHA256脚本建立哈希基线,cron定时校验并记录告警。

用自动化工具定期对比 /usr/bin 下文件的哈希指纹,核心是“建基线 + 定时比对 + 异常响应”三步闭环。Linux 系统自带工具就能完成,无需额外安装。
用 debsums(Debian/Ubuntu)快速建模并定时校验
debsums 专为 Debian 系统设计,能基于包管理器数据库生成可信哈希基准:
- 首次初始化:运行
sudo debsums-init,生成本地校验数据库 - 生成当前快照:执行
sudo debsums --all --quiet > /var/log/debsums-baseline.log(仅记录异常项可加--changed) - 写定时任务:用
crontab -e添加每日检查行:0 3 * * * /usr/bin/debsums --all --changed >> /var/log/debsums-alerts.log 2>&1 - 注意:若提示
no md5sums,说明该包未提供校验信息,需对关键文件(如sudo、ls)单独用sha256sum手动比对
用 rpm -Va(RHEL/CentOS/Fedora)验证 RPM 包文件完整性
RPM 系统原生支持文件校验,适用于所有由包管理器安装的 /usr/bin 文件:
- 直接运行
sudo rpm -Va | grep '^..5' | grep '/usr/bin/',筛选出哈希值不匹配的文件(5表示 SHA256 不符) - 导出基线供后续对比:
sudo rpm -Va > /var/log/rpm-verify-$(date +\%F).log - 配置 cron 每日凌晨执行并告警:
0 2 * * * sudo rpm -Va 2>/dev/null | awk '$1 ~ /^..5/ && $2 ~ /^\/usr\/bin\// {print $0}' >> /var/log/rpm-hash-alerts.log - 补充说明:默认跳过配置文件(
%config)和空占位文件(%ghost),如需检查需加--noconfig参数
用 rkhunter 扩展检测(通用 Linux)
rkhunter 不依赖包管理器,专注检测被 rootkit 替换的关键命令,适合加固场景:
- 先更新数据库:
sudo rkhunter --update - 采集当前系统可信快照:
sudo rkhunter --propupd(这步不可跳过!) - 日常校验:
sudo rkhunter --check --report-warnings-only - 加入定时任务:
0 4 * * * /usr/bin/rkhunter --check --report-warnings-only >> /var/log/rkhunter.log 2>&1 - 发现异常(如
File '/usr/bin/ps' has a different MD5 hash)后,优先用rpm -Vf /usr/bin/ps或debsums -s /usr/bin/ps交叉验证是否为合法更新
手动脚本兜底:SHA256 全量比对(所有发行版适用)
当需要完全自主控制路径、算法和输出格式时,可用简单 Bash 脚本实现:
- 首次生成基线:
find /usr/bin -type f -executable -exec sha256sum {} \; 2>/dev/null | sort > /etc/sha256-baseline-$(date +\%F).txt - 后续比对脚本(
/usr/local/bin/check-bin-hashes.sh):#!/bin/bash<br>BASELINE="/etc/sha256-baseline-latest.txt"<br>NEWHASH="/tmp/current-bin-hashes.txt"<br>find /usr/bin -type f -executable -exec sha256sum {} \; 2>/dev/null | sort > "$NEWHASH"<br>diff "$BASELINE" "$NEWHASH" | grep '^[<>]' | tee -a /var/log/bin-hash-changes.log - 设为每日执行,并自动更新基线(确认无风险后):
0 5 * * * /usr/local/bin/check-bin-hashes.sh && cp /tmp/current-bin-hashes.txt /etc/sha256-baseline-latest.txt


















