使用 RKHunter 扫描 Linux 的入侵
RKHunter(或RootKitHunter)是一个程序,可用于扫描Linux机器以查看是否有任何可能表明安全漏洞的迹象。它将扫描系统上的所有文件,并查找任何可能表明存在安全漏洞的可疑文件或系统文件的意外更改。就像防病毒系统一样,它有一个rootkit定义数据库,用于比较文件以查看它们是否被感染,但也只会检查核心系统文件的更改。
由于该工具还将系统的当前状态与已知的良好状态进行比较,因此在您首次设置系统时安装RKHunter非常重要。RKHunter还与yum和apt等工具集成,因此它会知道您何时安装了任何官方认可的程序,并且在下次扫描您的系统时不会警告您。这减少了产生误报的机会。
要在Centos/Redhat上安装RKHunter,您可以使用yum。
sudoyuminstallrkhunter
要在Ubuntu上安装RKHunter,您可以使用apt。
sudoapt-getinstallrkhunter
要检查程序的最新版本,只需使用--versioncheck标志运行它。您始终需要以sudo身份运行RKHunter,因此此页面上的示例将始终包含该内容。
sudorkhunter--versioncheck
由于RKHunter会将您的系统文件与根工具包定义的数据库进行比较,因此确保此定义列表是最新的很重要。使用--update标志运行RKHunter将更新所有可用的根工具包定义。
sudorkhunter--update
RKHunter不仅会检查root工具包的存在,还会查看系统文件并检查以确保它们没有被更改。在被黑机器上的常见方法是将核心系统程序(如ls或cd)替换为恶意版本,因此检查此类更改是查看您的系统是否遭到破坏的一种非常快速的方法。当然,您首先需要为您的系统文件建立一个数据库,这可以通过--propupd标志来完成。
sudorkhunter--propupd
您现在可以使用--check标志运行手动检查,这将运行RKHunter所做的所有检查,并告诉您什么通过了以及什么产生了警告。使用--skip-keypress标志运行它可以防止RKHunter在每次完成测试批次时要求您按Enter。
sudorkhunter--check--skip-keypress
单独运行--check命令会为您提供一页又一页的输出,其中包含隐藏在该输出中的需要注意的内容。要仅显示警告,您可以包含--report-warnings-only标志。这使您可以检查重要的事情。
sudorkhunter--check--report-warnings-only--skip-keypress
当RKHunter运行时,它会将日志写入大多数系统上的以下位置。日志文件将包含比程序输出更多的信息,并将显示扫描期间发现的所有警告。此日志文件通常位于以下位置。
/var/log/rkhunter/rkhunter.log
显然,每天登录系统运行RKHunter会很累。最好的方法是通过cron运行程序。有几种方法可以通过cron运行RKHunter,但最好的方法通常是使用--cronjob标志直接从cron任务运行RKHunter。如果使用此选项,则不会产生任何输出,并且发现的任何警告都将自动通过电子邮件发送给root用户。该--versioncheck标志是用来做RKHunter检查,这是最新的,如果有可用的更新创建一个警告。我们还希望让RKHunter更新其rootkit定义数据库,这是通过--update完成的旗帜。当通过cron运行程序时,还需要告诉它要显示什么输出。这通常是使用--rwo标志完成的,它代表“仅报告警告”。这是一个典型的crontab条目,它将在每天凌晨5:30运行RKHunter。
305***/usr/local/bin/rkhunter--versioncheck--cronjob--update--rwo
使用--cronjob标志的额外好处是RKHunter将通过电子邮件向管理员用户发送任何警告或问题。
一旦您更新了您的rootkit数据库并运行了您的第一次扫描,您就可以查看配置文件以查看是否需要更改任何内容。这里有几个选项可用,但也许最有用的是MAIL-ON-WARNING设置。当在无人值守的系统扫描过程中发现警告时,RKHunter使用它向管理员发送电子邮件。RKHunter配置文件可以在大多数系统的/etc/rkhunter.conf位置找到。下面显示了添加到MAIL-ON-WARNING设置的电子邮件地址。
MAIL-ON-WARNING="[email protected]"
如果你想检查你的RKHunter配置中没有破坏任何东西,那么你可以运行带有-C标志的命令。这将对配置文件运行语法检查并警告您任何潜在的问题。
sudorkhunter-C
我在这篇文章的开头提到了RKHunter与apt和yum集成。这需要通过在/etc/default/rkhunter的RKHunter设置文件中设置的APT_AUTOGEN标志来完成(不是rkhunter.conf中的主配置文件)。如果此行不存在,则添加它。现在,当您通过apt或yum更新或安装程序时,RKHunter将自动注册此更改而不是将其标记为警告。
APT_AUTOGEN="true"
当然,发出警告后你怎么做是另外一回事,RKHunter只是作为一个警告系统设计的,只能将它发现的潜在问题通知你。我应该指出,在新系统上第一次运行该工具时,您会看到大量警告出现,这就是为什么在第一次安装时运行该工具很重要的原因。如果您收到一封电子邮件,指出在正常操作期间发现了警告,那么您应该查看警告并可能登录并查看发生了什么。您可能需要阅读日志以查看警告包含的内容并检查相关文件。一些警告是非常温和的,并且会变成对某些系统文件的意外更新,但是您永远不应该忽略这些警告并假设一切正常。
就个人而言,如果您确实发现了违规的证据,我不会费心尝试将服务器恢复正常。在我看来,从攻击中恢复的最好和最有效的方法是删除服务器并重新开始。如果您已正确配置您的服务器,那么您应该会在几分钟内启动并运行,而不是将服务器重新组装起来可能需要几个小时。即使您清理了所有东西,也不能保证一切都会干净,因为后门可能已被设计为允许将来轻松访问。也就是说,在擦除服务器之前您需要做的第一件事就是弄清楚漏洞是如何发生的。这可以为防止未来的攻击提供有用的信息。