首先,我对必须处理这样的事情表示哀悼。但是您可以清理它。首先,我只需要解决这个问题:
我怀疑发生了这种情况,因为我没有在密码中使用SSH密钥。
99%的人肯定不是这样。在我20多年的经验中,几乎我亲自处理过的每一个Web服务器漏洞都已经得到解决,并且都来自应用程序级漏洞,而与SSH或SFTP无关。实际上,大多数Web开发人员/管理员永远都不会处理SSH / SFTP级别的漏洞。前端代码中的漏洞是许多恶意软件和对公共Web系统的无端入侵的主要切入点。
在您的情况下,请说明以下内容:
这是Ubuntu 14,我在那里有6个Apache VirtualHost。所有人都活着。
我的网站之一是带有几个插件的WordPress安装。
另一个站点中包含一些Google Maps API代码。
我的猜测是,除非您保持WordPress更新/补丁的最新状态,否则您的WordPress安装很容易受到攻击。不仅是核心WordPress,还有插件。
备份现有的代码库,数据库和配置。
我要做的第一件事就是通过index.php
在这些站点的每个根索引中设置一个表示“需要维护” 的Apache虚拟主机。我还将通过TAR / Gzip归档文件为每个虚拟主机安装一个副本,然后下载该副本以进行潜在的取证。应该对所有Apache虚拟服务器执行此操作,包括MySQL数据库的转储以及相关的配置文件。
检查/tmp/
目录是否有感染迹象;如果需要,将其吹走。
我建议您做的下一件事是转储并/tmp/
在服务器上重新创建目录。原因是Linux网络服务器上的许多恶意软件感染将大量有效负载放在/tmp/
目录中。我在这里对这个答案进行了更深入的探讨,但是归结为下面的内容。
因此,首先,在/tmp/
目录中查找是否有任何不该存在的内容。Linux系统上10种恶意软件中的9种都可以安装在Linux中/tmp/
。
如果您不确定应该/不应该/tmp/
存在的内容,那么可以采取一种简单但极端的方法来清除不良信息。只需在命令行在线运行此命令即可:
rm -rf /tmp && mkdir /tmp && chown root:root /tmp && chmod 1777 /tmp
或者像这样单独运行每个命令:
sudo rm -rf /tmp
sudo mkdir /tmp
sudo chown root:root /tmp
sudo chmod 1777 /tmp
然后重新启动服务器,以查看是否可以清除一切。如果可以的话,恭喜!但是您尚未走出困境,因为无论是什么原因导致原始系统仍然可以渗透到您的系统中,再次感染您只是时间问题。意思是,这可以清理由于系统漏洞引起的混乱,但是您需要找出该漏洞可能是什么并加以加固。
Bash“ shellshock”漏洞检查。
在另一个答案中,我提供了有关如何检查bash
“ shellshock”漏洞的提示。该站点提供了良好的测试工具,以查看您的服务器是否容易受到bash
“ shellshock”漏洞的攻击。老实说,这是我被发现以来必须修补的更常见的安全漏洞之一。因此,很有可能这也可能是服务器上的弱点。至于如何修复bash
发现的漏洞,请参阅以下有关如何升级/修补所有操作系统级别组件的部分。这样做,并且也bash
应该升级/修补。
升级/修补所有操作系统级别的组件。
现在这听起来令人生畏,但现实是Linux系统一直在发布安全补丁。而且,如果您正在使用标准化的Linux安装(例如Ubuntu或CentOS),则可以像这样通过软件包安装程序简单地运行更新/升级。在Ubuntu上,只需执行以下操作:
sudo apt-get update
sudo apt-get upgrade
现在,如果您有一段时间没有更新系统,则可能会看到大量需要处理的补丁程序和更新。不要惊慌!那很正常 只要运行update
和upgrade
等待。之后可能必须重新启动,但是完成后,您的核心操作系统应已完整打补丁并保持最新状态。
评估Apache虚拟服务器代码系统的代码库;WordPress和Google API的东西。
振作起来:这是较丑的部分。您应该下载并评估可能被感染的代码库。希望只有一两个站点受到威胁。每种设置的方式都不一样,但是通常您应该做的是将每个站点加载到开发环境中,升级WordPress核心,升级插件,检查是否一切正常,然后认为代码干净/稳定。
现在,我大大简化了这一步骤。但是现实甚至是在进行补丁和升级之后,您的WordPress核心中仍可能包含恶意软件代码。因此,您可以做的另一件事是从头开始重建每个WordPress网站。保留数据库,模板,并基本上从新的干净WordPress核心重建站点。
是的,这听起来需要做很多工作,但是如果您有许多具有不同代码库的虚拟服务器,则别无选择。
验尸建议。
这并非对所有人都有效,但我会这样说:备份,甚至可能是干净代码库的GitHub存储库,都是清理混乱的方法,而无需进行上面麻烦的最后“评估”步骤。
我要做的是在我工作的任何数据库驱动站点上运行常规的MySQL转储,并且确保GitHub上有一个干净的核心代码库。然后,如果发生恶意软件感染,我可以挖掘MySQL备份,甚至从GitHub重新部署干净的代码,以确保代码库是干净的。而且,如果服务器本身只是过去的信念而已?好吧,只需转储受感染的系统,重建新的Linux系统,部署代码,导入数据库,调整配置并每天调用它即可。
请记住,所有网站中的99%只是一个数据库,代码库和一组配置。如果您有一些干净的方法来“冻结”或备份未感染的代码以及MySQL数据库的备份,那么您要做的就是处理配置问题。与从头开始清理代码相比,这是一个小痛苦。