在 Linux 系统中,Rootkit 是一种隐藏型恶意软件,它会潜伏在系统中,绕过普通检测手段,甚至获取 root 权限。为了确保系统安全,我们可以使用 RKHunter(Rootkit Hunter) 来扫描系统潜在威胁。本文将详细介绍 Ubuntu 系统上安装、配置 RKHunter,并解决常见误报的完整流程。


1️⃣ 安装 RKHunter

首先,使用 apt 安装 RKHunter 以及 curl(用于联网更新镜像):

sudo apt update
sudo apt -y install rkhunter curl

安装完成后,可以检查版本:

rkhunter --version

RKHunter 默认包含大量检测规则,包括系统文件完整性、隐藏文件、网络端口异常等。


2️⃣ 配置 RKHunter

RKHunter 的配置主要涉及 定期扫描网络更新。我们先修改默认参数:

2.1 /etc/default/rkhunter

编辑此文件以启用每日 cron 任务,并设置报告邮箱:

sudo nano /etc/default/rkhunter

修改内容:

# 是否启用每日扫描任务
CRON_DAILY_RUN="yes"

# 接收扫描报告的邮箱
REPORT_EMAIL="root"

保存并退出。


2.2 /etc/rkhunter.conf

主要配置项如下:

sudo nano /etc/rkhunter.conf
  • 更新镜像:
UPDATE_MIRRORS=1
MIRRORS_MODE=0
  • 禁用自动联网更新(Ubuntu 包默认禁止,安全性高):
WEB_CMD=""
  • 允许自定义 TCP 端口(例如你部署的 frps 服务监听 7000 端口):
ALLOW_TCP_PORTS=7000
  • 如果系统允许 root 登录 SSH,可修改:
ALLOW_SSH_ROOT_USER=Yes

保存并退出。


3️⃣ 更新系统文件属性基线

第一次安装 RKHunter 后,需要建立系统文件属性基线:

sudo rkhunter --propupd

输出示例:

[ Rootkit Hunter version 1.4.6 ]
File updated: searched for 180 files, found 142

这里记录了关键系统文件的当前状态(大小、权限、校验和),方便后续扫描发现异常变更。


4️⃣ 扫描系统

执行非交互扫描,并仅显示警告:

sudo rkhunter --check --skip-keypress --nocolors --report-warnings-only

扫描结果会写入日志 /var/log/rkhunter.log,也可直接查看最近警告:

sudo tail -n 200 /var/log/rkhunter.log

5️⃣ 常见警告及处理方法

RKHunter 扫描时可能出现一些误报,下面是常见示例:

5.1 TCP 端口占用

Warning: Network TCP port 7000 is being used by /root/bin/frps/frps.
Possible rootkit: Possible rogue IRC bot
  • 原因:RKHunter 检测到高端口监听,默认怀疑 IRC 木马。
  • 解决方法:
    • 如果是你自己部署的服务(如 frps 内网穿透),属于误报。
    • 配置允许端口: ALLOW_TCP_PORTS=7000
    • 更新基线: sudo rkhunter --propupd

5.2 系统用户/组变动

Warning: User 'postfix' has been added
Warning: Group 'postfix' has been added
Warning: Changes found in group 'postdrop'
  • 原因:系统安装 postfix 邮件服务或自带服务时自动创建。
  • 解决方法:
    • 属于正常行为,更新基线即可: sudo rkhunter --propupd

5.3 SSH 配置不匹配

Warning: SSH configuration option 'PermitRootLogin': yes
Rkhunter configuration option 'ALLOW_SSH_ROOT_USER': no
  • 原因:rkhunter 配置禁止 root 登录,但 SSH 允许。
  • 解决方法:
    • 如果确实需要 root 登录,修改 rkhunter 配置: ALLOW_SSH_ROOT_USER=Yes
    • 如果不需要 root 登录,建议修改 SSH 配置: PermitRootLogin no sudo systemctl restart ssh

5.4 隐藏文件

Warning: Hidden file found: /etc/.resolv.conf.systemd-resolved.bak
Warning: Hidden file found: /etc/.updated
  • 原因:系统备份或更新文件。
  • 解决方法:
    • 可忽略,或者删除不必要的隐藏文件: sudo rm /etc/.resolv.conf.systemd-resolved.bak sudo rm /etc/.updated sudo rkhunter --propupd

6️⃣ 自动化日常扫描

可以使用 cron 实现每日自动扫描:

  1. 创建脚本 /etc/cron.daily/rkhunter-check
sudo tee /etc/cron.daily/rkhunter-check > /dev/null <<'EOF'
#!/bin/sh
# Daily RKHunter scan
/usr/bin/rkhunter --check --skip-keypress --nocolors --report-warnings-only
EOF
  1. 添加执行权限:
sudo chmod +x /etc/cron.daily/rkhunter-check

每天扫描会生成日志,可通过邮件或定期查看日志了解系统安全状态。


7️⃣ 总结

  • RKHunter 是 Linux 系统中常用的 Rootkit 检测工具。
  • Ubuntu 默认禁用网络更新(WEB_CMD=””),也可手动联网更新镜像。
  • 初次使用需建立基线 (--propupd),扫描时误报可通过配置和删除不必要文件解决。
  • 结合 cron 可以实现每日自动扫描和报告。

通过本文步骤,你可以在 Ubuntu 系统上 安全、稳定地部署 RKHunter,同时减少误报,提高系统安全监控效率。

Leave a Reply

Your email address will not be published. Required fields are marked *