启动器 产品 Bitnami 文档imaxe CLI 博客 联系
imaxe rkhunter rootkits v1.0.0

在你的服务器上猎杀 rootkit

rkhunter 扫描系统,查找 rootkit、后门和被篡改的文件,并用通俗的语言为你汇总警告。管理属性基线,只需一条命令即可保持特征库最新。

$ imaxe rkhunter check
版本
v1.0.0
子命令
5
配置
/etc/imaxe/rkhunter.yml
需要 root
输出
文本 · --json

该模块的功能 #

rootkit 是一种恶意软件,专为潜入你的服务器并藏匿自身而设计:它替换系统命令、打开后门,并抹除自己的痕迹,让你察觉不到。问题恰恰就在于此 — 当它运作良好时,你根本注意不到。因此定期检查系统很有必要。

rkhunter 模块借助 rkhunter(Rootkit Hunter)为你完成这项工作:它扫描系统,将文件和命令与已知 rootkit 的特征进行比对,监控可疑属性(异常权限、隐藏端口、被修改的二进制文件),并用通俗的语言为你汇总警告,让你知道该关注什么。此外,它还维护一份基线 — 即你的文件应有状态的快照 — 并保持特征库更新,这两者正是检测可靠性所依赖的核心。

开始之前

在安装模块或更新系统软件包后,用 update-baseline 更新基线。如果不这样做,合法的变更(例如一次 apt upgrade)会显示为警告,让你难以区分正常与可疑。

快速指南分步任务

常见任务 #

选择你想做的事。每个方案都附有写好的命令 — 复制、粘贴,再点击复制

1

立即扫描系统

启动一次完整分析,并获取警告汇总。

ubuntu 用户通过 SSH 连接到你的服务器。

启动扫描。它会花一点时间:rkhunter 会检查数百个文件和命令。

终端
$ sudo imaxe rkhunter check

从脚本调用它,或想与其他工具集成?加上 --json

终端
$ sudo imaxe rkhunter check --json
结束时你会看到出现了多少警告。如果有,跳转到方案 查看警告 以详细阅读。
2

查看上次扫描的警告

以可读的格式回顾 rkhunter 标记的内容。

显示上次 check 的警告,无需重新扫描:

终端
$ sudo imaxe rkhunter report
许多警告是更新后的合法变更。如果你确认它们是自己所为,用 更新基线 接受它们。
3

检查状态

一目了然:安装情况、基线、上次扫描和警告。

快速概览 rkhunter 是否就绪、是否存在基线、上次扫描的时间、留下了多少警告,以及是否有已计划的扫描:

终端
$ sudo imaxe rkhunter status

用于监控或脚本时,以 JSON 请求它:

终端
$ sudo imaxe rkhunter status --json
如果你看到「baseline: no presente」(基线不存在),在信任扫描结果之前,先用 更新基线 创建它。
4

更新基线

把文件的当前状态接受为可信参照。

把文件的当前属性保存为基线(相当于 rkhunter --propupd)。仅在你信任系统状态时才这样做 — 例如,刚安装完毕或经历一次你所认可的更新之后:

终端
$ sudo imaxe rkhunter update-baseline
合法的变更不再被标记为警告。下一次 check 将以这份新的参照快照为起点。
5

更新特征库

下载 rkhunter 最新的数据文件。

更新 rkhunter 的数据文件和特征库(相当于 rkhunter --update),让检测能够识别最新的 rootkit:

终端
$ sudo imaxe rkhunter update-data
特征库更新到最新后,下一次 check 可检测更新近期的威胁。建议在一次重要扫描之前执行它。
一下子出现很多警告?

第一次运行或刚更新软件包后,这很正常:rkhunter 发现了尚未纳入基线的变更。用 report 审阅它们,如果你确认它们是合法的,用 update-baseline 接受它们。如果你怀疑系统已被入侵,切勿更新基线。

CLI 参考命令、标志与文件

用法概要 #

用法
imaxe rkhunter <subcomando> [--json]

所有子命令都需要 root 权限(使用 sudo),因为 rkhunter 需要读取系统文件、比对二进制文件,并写入其基线和数据。为 checkstatus 加上 --json,即可获得机器可读的输出,适合脚本处理和监控。

子命令 #

子命令功能相关标志
check启动一次 rootkit/恶意软件扫描并汇总警告。--json
report以可读方式显示上次扫描的警告。
status状态:是否已安装、是否存在基线、上次扫描、警告以及已计划的扫描。--json
update-baseline把文件的当前属性接受为基线(rkhunter --propupd)。
update-data更新 rkhunter 的数据文件/特征库(rkhunter --update)。

参数与标志 #

标志类型默认值说明
--jsonboolfalsecheck/status 中,将结果以结构化 JSON 输出到 stdout,适合脚本处理和监控。

子命令 reportupdate-baselineupdate-data 不接受标志:直接无参数运行即可。

文件与路径 #

路径内容
/etc/imaxe/rkhunter.yml模块配置:默认情况下,check 仅报告警告(report_warnings_only)。
/var/lib/rkhunter/db/文件属性基线,以及由 update-baselineupdate-data 更新的数据文件/特征库。
/var/log/rkhunter.log上次扫描的日志,report 从中提取警告。

rkhunter.yml 示例:

/etc/imaxe/rkhunter.yml
check:
  report_warnings_only: true

退出码与日志 #

每次执行都会返回一个退出码,你可以用 echo $? 查看 — 便于在脚本中串联或从监控发出告警:

0OK扫描完成,无警告。
1WARN扫描结束,有待审阅的警告。
2USAGE参数无效或子命令未知。
3ERR执行错误(rkhunter 不可用或内部故障)。

审阅时查看上次扫描的日志:

终端
$ sudo imaxe rkhunter report
$ sudo tail -f /var/log/rkhunter.log

故障排查 #

现象可能原因解决方法
更新软件包后出现 WARN(退出码 1)尚未纳入基线的合法变更。report 审阅;如果你确认无误,用 update-baseline 接受它们。
status 显示「baseline: no presente」(基线不存在)模块刚安装,还没有参照快照。在系统处于可信状态时运行一次 update-baseline
大量关于旧文件或版本的警告rkhunter 的特征库和数据已过期。运行 update-data 并重复 check
出现 ERR(退出码 3)rkhunter 未安装或二进制文件无响应。检查模块的安装情况,并查看 /var/log/rkhunter.log

rkhunter 模块遇到问题了?

把「imaxe <module> status --json」的输出发给我们,我们会尽快回复你。

联系支持