Rootkit Hunter¶
介绍¶
Rootkit Hunter (rkhunter
) 是一种众所周知的工具,用于检查服务器上的漏洞、Rootkit、后门和可能的本地漏洞利用。它可以在用于任何目的的任何服务器上使用。当进行调整和自动化时,它可以向系统管理员报告任何可疑活动。此过程概述了 Rootkit Hunter 的安装、调整和使用。
rkhunter
只是强化服务器设置的一个可选部分。单独使用它或与其他工具一起使用以最大限度地提高安全性。
先决条件¶
- 熟练使用命令行编辑器(在本例中使用
vi
) - 能够从命令行发出命令、查看日志和其他常规系统管理员职责
- 了解什么会触发对文件系统中更改文件的响应(例如软件包更新)会有所帮助
- 以 root 用户身份或以具有
sudo
权限的普通用户身份运行所有命令
本文档最初是与 Apache 强化 Web 服务器例程一起编写的,但在运行任何软件的服务器上都能同样出色地工作。
一般步骤¶
- 安装
rkhunter
- 配置
rkhunter
- 配置电子邮件并确保它能正常工作
- 手动运行
rkhunter
以生成警告列表以测试您的电子邮件设置(rkhunter --check
) - 运行
rkhunter --propupd
以生成一个干净的rkhunter.dat
文件,rkhunter
将从此刻起使用该文件作为进一步检查的基线。
安装rkhunter
¶
rkhunter
需要 EPEL(企业 Linux 扩展包)存储库。如果您尚未安装该存储库,请安装它
dnf install epel-release
安装rkhunter
dnf install rkhunter
配置rkhunter
¶
您需要设置的唯一配置选项是那些与向管理员发送邮件报告相关的选项。
警告
修改 Linux 中任何配置文件都存在风险。在更改 Linux 中任何配置文件之前,建议备份原始文件。
要更改配置文件,请运行
vi /etc/rkhunter.conf
搜索
#MAIL-ON-WARNING=me@mydomain root@mydomain
删除此处的注释,并将me@mydomain.com
更改为您的电子邮件地址。
将root@mydomain
更改为root@服务器名称
。
您可能还想删除MAIL-CMD
行的注释(并编辑该行以适合您的需求)
MAIL_CMD=mail -s "[rkhunter] Warnings found for ${HOST_NAME}"
您可能还需要设置用于报告的 Postfix 电子邮件以使电子邮件部分正常工作。
运行rkhunter
¶
通过在命令行中键入rkhunter
手动运行它。cron 作业负责在/etc/cron.daily
中自动为您运行rkhunter
。如果您想在不同的时间表上自动执行该过程,请查看自动化 cron 作业指南。
您还需要将脚本移到/etc/cron.daily/
以外的某个位置,例如/usr/local/sbin/
,并从您的自定义 cron 作业中调用它。最简单的方法是保持默认的cron.daily
设置完好无损。
如果您想在开始之前测试rkhunter
,包括所有电子邮件功能,请在命令行中运行rkhunter --check
。如果已安装并正常运行,您应该收到类似于以下内容的输出
[root@sol admin]# rkhunter --check
[Rootkit Hunter version 1.4.6]
Checking system commands...
Performing 'strings' command checks
- Checking 'strings' command [OK]
Performing 'shared libraries' checks
- Checking for preloading variables [None found]
- Checking for preloaded libraries [None found]
- Checking LD_LIBRARY_PATH variable [Not found]
Performing file properties checks
- Checking for prerequisites [Warning]
- /usr/bin/awk [OK]
- /usr/bin/basename [OK]
- /usr/bin/bash [OK]
- /usr/bin/cat [OK]
- /usr/bin/chattr [OK]
- /usr/bin/chmod [OK]
- /usr/bin/chown [OK]
- /usr/bin/cp [OK]
- /usr/bin/curl [OK]
- /usr/bin/cut [OK]
- /usr/bin/date [OK]
- /usr/bin/df [OK]
- /usr/bin/diff [OK]
- /usr/bin/dirname [OK]
- /usr/bin/dmesg [OK]
- /usr/bin/du [OK]
- /usr/bin/echo [OK]
- /usr/bin/ed [OK]
- /usr/bin/egrep [Warning]
- /usr/bin/env [OK]
- /usr/bin/fgrep [Warning]
- /usr/bin/file [OK]
- /usr/bin/find [OK]
- /usr/bin/GET [OK]
- /usr/bin/grep [OK]
- /usr/bin/groups [OK]
- /usr/bin/head [OK]
- /usr/bin/id [OK]
- /usr/bin/ipcs [OK]
- /usr/bin/kill [OK]
- /usr/bin/killall [OK]
- /usr/bin/last [OK]
- /usr/bin/lastlog [OK]
- /usr/bin/ldd [OK]
- /usr/bin/less [OK]
- /usr/bin/locate [OK]
- /usr/bin/logger [OK]
- /usr/bin/login [OK]
- /usr/bin/ls [OK]
- /usr/bin/lsattr [OK]
- /usr/bin/lsof [OK]
- /usr/bin/mail [OK]
- /usr/bin/md5sum [OK]
- /usr/bin/mktemp [OK]
- /usr/bin/more [OK]
- /usr/bin/mount [OK]
- /usr/bin/mv [OK]
- /usr/bin/netstat [OK]
- /usr/bin/newgrp [OK]
- /usr/bin/passwd [OK]
- /usr/bin/perl [OK]
- /usr/bin/pgrep [OK]
- /usr/bin/ping [OK]
- /usr/bin/pkill [OK]
- /usr/bin/ps [OK]
- /usr/bin/pstree [OK]
- /usr/bin/pwd [OK]
- /usr/bin/readlink [OK]
- /usr/bin/rkhunter [OK]
- /usr/bin/rpm [OK]
- /usr/bin/runcon [OK]
- /usr/bin/sed [OK]
- /usr/bin/sestatus [OK]
- /usr/bin/sh [OK]
- /usr/bin/sha1sum [OK]
- /usr/bin/sha224sum [OK]
- /usr/bin/sha256sum [OK]
- /usr/bin/sha384sum [OK]
- /usr/bin/sha512sum [OK]
- /usr/bin/size [OK]
- /usr/bin/sort [OK]
- /usr/bin/ssh [OK]
- /usr/bin/stat [OK]
- /usr/bin/strace [OK]
- /usr/bin/strings [OK]
- /usr/bin/su [OK]
- /usr/bin/sudo [OK]
- /usr/bin/tail [OK]
- /usr/bin/test [OK]
- /usr/bin/top [OK]
- /usr/bin/touch [OK]
- /usr/bin/tr [OK]
- /usr/bin/uname [OK]
- /usr/bin/uniq [OK]
- /usr/bin/users [OK]
- /usr/bin/vmstat [OK]
- /usr/bin/w [OK]
- /usr/bin/watch [OK]
- /usr/bin/wc [OK]
- /usr/bin/wget [OK]
- /usr/bin/whatis [OK]
- /usr/bin/whereis [OK]
- /usr/bin/which [OK]
- /usr/bin/who [OK]
- /usr/bin/whoami [OK]
- /usr/bin/numfmt [OK]
- /usr/bin/gawk [OK]
- /usr/bin/s-nail [OK]
- /usr/bin/whatis.man-db [OK]
- /usr/bin/kmod [OK]
- /usr/bin/systemctl [OK]
- /usr/sbin/adduser [OK]
- /usr/sbin/chroot [OK]
- /usr/sbin/depmod [OK]
- /usr/sbin/fsck [OK]
- /usr/sbin/fuser [OK]
- /usr/sbin/groupadd [OK]
- /usr/sbin/groupdel [OK]
- /usr/sbin/groupmod [OK]
- /usr/sbin/grpck [OK]
- /usr/sbin/ifconfig [OK]
- /usr/sbin/init [OK]
- /usr/sbin/insmod [OK]
- /usr/sbin/ip [OK]
- /usr/sbin/lsmod [OK]
- /usr/sbin/modinfo [OK]
- /usr/sbin/modprobe [OK]
- /usr/sbin/nologin [OK]
- /usr/sbin/ping [OK]
- /usr/sbin/pwck [OK]
- /usr/sbin/rmmod [OK]
- /usr/sbin/route [OK]
- /usr/sbin/rsyslogd [OK]
- /usr/sbin/runlevel [OK]
- /usr/sbin/sestatus [OK]
- /usr/sbin/sshd [OK]
- /usr/sbin/sulogin [OK]
- /usr/sbin/sysctl [OK]
- /usr/sbin/useradd [OK]
- /usr/sbin/userdel [OK]
- /usr/sbin/usermod [OK]
- /usr/sbin/vipw [OK]
- /usr/libexec/gawk [OK]
- /usr/lib/systemd/systemd [OK]
[Press <ENTER> to continue]
如果电子邮件设置存在问题,请先不要完成剩余步骤。在确认电子邮件工作正常,但在允许rkhunter
自动运行之前,请使用"--propupd"标志手动再次运行该命令以创建rkhunter.dat
文件。这确保了对您的环境和配置的识别
rkhunter --propupd
结论¶
rkhunter
是强化服务器策略的一部分,可以帮助监控文件系统并将任何问题报告给管理员。它可能是最容易安装、配置和运行的强化工具之一。
作者: Steven Spencer
贡献者: Ezequiel Bruni, Andrew Thiesen, Ganna Zhyrnova