金钱(警告)
** 状态:** 被贬值
如果您目前正在运行运行 Ubuntu 12.04 的服务器,我们强烈建议升级或迁移到支持的 Ubuntu 版本:
** 原因:** Ubuntu 12.04 已于 2017 年 4 月 28 日到期(EOL)并且不再收到安全补丁或更新。
** 相反,请参阅:** 此指南可能仍然有用作为参考,但可能不会在其他Ubuntu版本上工作. 如果可用,我们强烈建议使用为您正在使用的Ubuntu版本撰写的指南。
介绍
有许多方式,您的服务器可以被远程系统和恶意软件攻击,这是一个持续和积极的过程,以防御潜在的威胁。
一个潜在的担忧是rootkits.rootkits是恶意入侵者秘密安装的软件,允许用户继续访问服务器,一旦安全受到侵犯.这是一个极其危险的问题,因为即使用户最初用来获取访问的输入向量被修复后,他们也可以继续使用他们安装的rootkit进入服务器。
一个可以帮助您保护您的系统免受这些类型的问题的工具是 rkhunter. 该软件会检查您的系统对已知 rootkit 的数据库。
在本指南中,我们将安装和配置rkhunter来保护我们的Ubuntu 12.04 VPS。
安装RKHunter从源头
由于Ubuntu存储库有一个过时的rkhunter版本,其中包含一个未修补的错误,所以我们将从源头安装,以便我们的程序正常运行。
截至本文, 1.4.0 是最新版本,但您可以前往 项目的首页 查看是否有更新的版本:
1cd
2wget http://downloads.sourceforge.net/project/rkhunter/rkhunter/1.4.0/rkhunter-1.4.0.tar.gz
一旦完成下载,提取文件并输入结果的目录:
1tar xzvf rkhunter*
2cd rkhunter*
内部,我们应该看到一个文件
目录,一个安装程序脚本. 我们将使用这个来安装我们的程序. 指定布局,以便在 /usr
目录中安装它,以便它在我们的默认路径:
1sudo ./installer.sh --layout /usr --install
这将安装软件和配置文件。
现在,我们已经安装了rkhunter,但我们仍然需要一些实用程序来使用其所有功能,我们可以从Ubuntu存储库中获得这些:
1sudo apt-get update
2sudo apt-get install binutils libreadline5 libruby1.8 ruby ruby1.8 ssl-cert unhide.rb mailutils
您可以配置此设置,如果您愿意,但为了简化,我们不会配置面向网络的邮件服务器。
如果您正在本地安装,您可以将系统邮件命名为任何东西,否则,请确保使用完全合格的域名。
现在,我们的软件已安装并准备好进行测试和配置。
初步测试运行
在我们开始配置之前,我们将使用默认设置进行几次测试,以获得软件如何运作的想法,并设置一个基线,以指导我们的修改。
我们应该做的第一件事是确保我们的 rkhunter 版本是最新的. 如果你确实从网站上得到最新的 tarball,它不应该做任何事情,但最好无论如何检查:
1sudo rkhunter --versioncheck
1[ Rootkit Hunter version 1.4.0 ]
2
3Checking rkhunter version...
4 This version : 1.4.0
5 Latest version: 1.4.0
接下来,我们需要执行类似的选项来更新我们的数据文件. 这些文件包含 rkhunter 检查的信息,以确定文件或行为是否可疑。
1sudo rkhunter --update
随着我们的数据库文件的更新,我们可以设置我们的基线文件属性,以便 rkhunter 可以通知我们,如果它跟踪的任何重要的配置文件发生变化。
1sudo rkhunter --propupd
1File created: searched for 167 files, found 136
最后,我们已经准备好执行我们的初始运行,这将产生一些警告,这是预期的行为,因为rkhunter配置为通用,Ubuntu在某些地方偏离预期的默认功能。
1sudo rkhunter -c --enable all --disable none
它将运行一个测试部分,然后要求您按入以继续。您可以查看在进行过程中产生的警告,但在日志后将有更详细的信息。
现在,我们应该通过日志检查并查看产生的所有警告:
1sudo nano /var/log/rkhunter.log
搜索文件的单词警告
。你会看到一些不同的警告,这是由我们的文件系统的不同方面造成的。我们将配置rkhunter忽略我们知道是无害的下一部分。
一些更改,如对passwd
文件的更改,只会出现,因为它们已经被我们与apt下载的帮助工具更改了。
检查日志的另一个替代方案是让 rkhunter 只将警告打印到屏幕上,而不是所有检查:
1sudo rkhunter -c --enable all --disable none --rwo
然后您可以复制和粘贴这些信息,以便我们在我们的配置文件中实现更改。
根据已知的价值观配置 RKHunter
现在我们有一些关于 rkhunter 如何查看我们的系统的信息,我们可以告诉它哪些文件和应用程序应该忽略或以不同的方式处理,以避免假阳性。
开始使用 root 特权打开 rkhunter 配置文件:
1sudo nano /etc/rkhunter.conf
设置邮件通知
您可以做的第一件事是设置电子邮件通知,如果您希望在 rkhunter 遇到警告时收到这些通知。
MAIL-ON-WARNING="[email protected]"
如果您设置了本地邮件,则可以将此设置为当您登录为 root 时接收邮件:
1MAIL-ON-WARNING="root@localhost"
请注意,邮件程序在您安装它们时已配置,因此,此功能是否正确取决于您的选择。
相关配置选项指定了发送邮件的程序和选项:
1MAIL_CMD=mail -s "[rkhunter] Warnings found for ${HOST_NAME}"
Whitelist 已知脚本文件
接下来,我们将修复警告,告诉我们系统上的某些二进制包已被脚本取代,有些发行版(包括Ubuntu)使用脚本版本的文件,而不是他们的二进制对象。
我们可以设置一个SCRIPTWHITELIST
参数,告诉rkhunter这些都应该是脚本文件:
1SCRIPTWHITELIST="/usr/sbin/adduser"
2SCRIPTWHITELIST="/usr/bin/ldd"
3SCRIPTWHITELIST="/usr/bin/unhide.rb"
4SCRIPTWHITELIST="/bin/which"
这将防止这些文件在所有后续检查中触发虚假阳性。 请注意,这些白名单是特定测试的特征,所以我们只是标记我们知道这些文件不应该是二进制的。
在 /dev 目录中的文件清单
在/dev
目录中,某些文件会引发对 rkhunter 的警告,这些都是实际上没有指向任何错误的实施细节。
我们需要处理的警告类型有三种: 第一种是对目录中存在可疑文件
的警告,我们将通过在配置中放置此行来特别允许此文件:
1ALLOWDEVFILE="/dev/.udev/rules.d/root.rules"
我们必须处理的下一个警告是,在 /dev
中有一个隐藏的目录. 这也是预期的。
1ALLOWHIDDENDIR="/dev/.udev"
这些是保存在此目录中的基本配置文件,以便实用程序可以访问它们,无论分区方案和安装状态如何。
添加这些行以允许这些文件存在:
1ALLOWHIDDENFILE="/dev/.blkid.tab"
2ALLOWHIDDENFILE="/dev/.blkid.tab.old"
3ALLOWHIDDENFILE="/dev/.initramfs"
允许 root SSH 登录
当您运行 rkhunter 时,它会检查其配置文件中的参数并将其与 SSHD 配置文件中的值进行比较。
此选项指定了 root 用户是否可以使用 SSH 登录。许多安全实践建议禁用 root 登录。
如果您需要通过 SSH 进行 root 登录,您应该将此参数更改为是
以便 rkhunter 可以检查并将此设置标记为有效:
1ALLOW_SSH_ROOT_USER=yes
保存并关闭文件,当你完成。
检查配置
现在我们已经配置了 rkhunter,您需要验证配置并检查,以确保一切都按预期工作。
第一步是检查配置文件本身是否有效,您可以对其进行测试,看看 rkhunter 是否会接受您分配的所有值:
1sudo rkhunter -C
如果这给了您任何输出,您需要再次查看配置以调整参数。
获得配置文件以正常工作顺序后,您可以再次运行测试,以查看是否有任何警告。
1sudo rkhunter -c --enable all --disable none --rwo
这应该产生一个警告,因为我们的 rkhunter 配置本身已经被修改:
1Warning: The file properties have changed:
2 File: /etc/rkhunter.conf
3 Current hash: fa8ad80a18100e669be507e69d0cbb88348fc07d
4 Stored hash : f9015108a2f6d8044126351cf16235c55993ff7a
5 Current inode: 2098189 Stored inode: 2100424
6 Current size: 37607 Stored size: 37359
7 Current file modification time: 1388443781 (30-Dec-2013 17:49:41)
8 Stored file modification time : 1388442019 (30-Dec-2013 17:20:19)
我们应该在修改此文件后再次更新文件属性。
1sudo rkhunter --propupd
完成後,您可以再次執行檢查命令,並確認不會產生任何錯誤。
如果您忘记更新文件属性,您可以选择检查邮件通知,如果您配置了此设置,我们可以通过检查根邮箱来访问邮件:
1sudo mail
您应该看到一个信息,您可以通过第二列的号码访问。
您可以通过键入离开邮件屏幕:
1quit
如果您设置远程电子邮件,您也可以检查它,它可能位于您的垃圾邮件文件夹中,所以如果您没有收到它,请在那里查看。
设置一个Cron工作来自动化检查
现在你已经配置了 rkhunter 并验证了它是否正常运行,自动化系统可能是一个好主意,我们可以设置 rkhunter 每天运行检查,以便我们有有关入侵的最新信息。
这是最有用的,如果你可以让它电子邮件你的常规电子邮件地址,所以你更有可能检查它. 更改在 /etc/rkhunter.conf 文件中的
MAIL-ON-WARNING` 参数到你的常规电子邮件,如果你还没有这样做。
我们想要运行root特权的rkhunter,就像我们一直在做的那样,所以我们应该将其添加到 root 用户的 crontab. 重要的是要记住不要将其添加到系统 crontab,因为这可能会在升级中被取代并删除您的更改。
首先,我们可以通过键入查看 root 用户是否已经有 crontab:
1sudo crontab -l
如果这返回了一个 crontab,那么最好在我们犯了一个错误的情况下备份文件。
1sudo crontab -l > crontab.bak
之后,我们可以通过发出这个命令来编辑 root 用户的 crontab:
1sudo crontab -e
如果这是你第一次运行这个命令,它会要求你选择你想使用的编辑器. 一个安全的选择是纳米,如果你没有任何其他编辑器的偏好。
之后,您将被带入您的编辑器,您的文件将预先填写一些评论,解释如何写crontab。
有很多复杂的方法来编写 cron 规格,可以在许多间隔内运行命令. 为了我们的目的,我们只需要决定每天在何时运行命令。
我們將使用的格式是「分鐘時間 * * * 命令」。 時間應以 24 小時格式寫成(例如,15 為 3pm)。
所以,如果我们想在4点15分执行这个命令,我们可以在文件底部输入:
115 04 * * * /usr/bin/rkhunter --cronjob --update --quiet
--cronjob 选项告诉 rkhunter 不要以彩色格式输出,也不需要互动键。更新选项确保我们的定义是最新的。
cron 实用程序将在 4:15 点运行此命令,如果有任何输出,rkhunter 命令本身将发送电子邮件给我们的用户通知他们,如果没有发现问题,则不会收到电子邮件。
结论
现在你有 rkhunter 安装,配置,并自动化,它应该为你做的工作,在大多数情况下。
还值得注意的是,当您在计算机上进行软件更改时,rkhunter 可能会在下一次运行时报告差异,建议在您更改后,至少运行sudo rkhunter --propupd
以更新 rkhunter 到新的文件属性。
因为这个软件引用已知的良好价值观和系统声明,你已经允许,这是最好的安装和配置后,你已经配置了大多数的软件为你的安装. 这样做之前配置你的软件将导致很多虚假的正面,而等待太长时间可能会导致入侵和不知道如果你是白名单坏的文件。