运行 rkhunter --check 前必须先执行 rkhunter --update 更新签名库,再执行 rkhunter --propupd 建立本地可信基线,否则因无基准比对而误报;Warning 需人工甄别是否为升级或入侵所致,filehash 测试不可禁用,且需配合 chkrootkit 等工具弥补内核级 Rootkit 检测盲区。

运行 rkhunter --check 前必须先做两件事
直接跑 rkhunter --check 会报一堆 Warning 和 Not found,不是系统被黑了,是你还没给它“建档案”。rkhunter 的核心逻辑是比对——拿当前文件状态跟它脑子里的“干净快照”比。没快照,就全是未知数。
必须按顺序执行:
-
rkhunter --update:更新官方签名库和已知 Rootkit 特征(含新版发行版的二进制哈希) -
rkhunter --propupd:在你当前系统上采集一次可信基线(记录/bin/ps、/usr/bin/netstat等约 150 个关键命令的 MD5、权限、大小)
注意:--propupd 不会自动触发,也不在 --check 里隐式执行。如果系统刚重装或确认干净,现在就是唯一安全时机;若已怀疑被入侵,这步反而会把恶意文件存为“正常”,得先用其他手段清场。
看到 File hash mismatch 别急着删,先分清是篡改还是升级
rkhunter 报 Warning: File '/bin/ps' has a different MD5 hash than expected,只说明“跟它记的不一样”,不等于“被 rootkit 替换了”。常见干扰源有三类:
- 系统升级:比如
apt upgrade或yum update后,ps二进制自然变了 - 手动编译安装:你自己编译过
procps-ng并覆盖了系统ps - 容器/精简系统:Alpine、CoreOS 等默认不带完整
netstat,rkhunter 却按标准 Debian/CentOS 指纹去比
验证方式优先级:
Linux AI 服务器 — 将 Linux 服务器转换为本地 AI 推理集群。使用 systemd、NVIDIA CUDA 实现无头 Linux AI,零 GUI 开销。
- RPM 系统:
rpm -Vf /bin/ps(看输出里有没有S(大小变)、M(权限变)、5(MD5 变)) - Debian/Ubuntu:
debsums -s /bin/ps - 通用兜底:
which ps→ls -la $(which ps)→ 确认没被 alias 或/etc/ld.so.preload劫持
这些 Warning 必须人工介入,不能跳过
不是所有告警都指向提权 Rootkit,但以下几类出现时,大概率已有用户态持久化后门,需立即停掉业务、隔离主机并溯源:
-
Warning: The file '/bin/ps' has been replaced by a script:真实ps是 ELF 二进制,被替成 shell 脚本?99% 是为了过滤进程列表 -
Warning: Hidden directory found+ 路径含.ssh、.config、X11-unix或随机字符串(如/dev/shm/.X11-unix) -
Warning: System commands files have been replaced后列出多个网络工具(netstat、ss、ifconfig)——这是典型用户态 hook 组合技 -
Warning: Found 'rootkit' string in /var/log/messages:查日志上下文,重点看时间点前后是否有异常 SSH 登录、insmod记录或连接外网 IP
注意:/etc/rkhunter.conf 里 DISABLE_TESTS 可关高开销项(如 suspscan),但 filehash 测试绝不能关——它是检测提权 Rootkit 最直接的手段。
定期扫描别只靠 --cronjob,得加 --report-warnings-only
把 rkhunter --cronjob 塞进 crontab 是基础操作,但默认输出全量日志,每天扫完还得人工翻几百行。生产环境建议组合使用:
-
rkhunter --cronjob --report-warnings-only --quiet:只发真正需要看的 Warning,避免噪音淹没关键信号 - 搭配
--skip-keypress(即--sk)避免交互卡住 cron - 务必单独配
--update任务(例如每周日凌晨),否则指纹库过期,新 Rootkit 就漏检
最后提醒一句:rkhunter 查的是“结果”(文件是否被改),不是“过程”(谁改的、怎么改的)。如果 --check 显示一切 OK,不代表没被提权——内核级 Rootkit(如 eBPF 后门、LKM)可能完全绕过它的文件校验逻辑。这时候得补 chkrootkit -x 和 unhideproc。

















