可能重复:
我的服务器被黑了 紧急求助
我有一个运行 Ubuntu 的小型虚拟服务器,供我和朋友个人使用。该服务器运行 Postfix 和 Dovecot 来处理电子邮件,运行 Apache、Tomcat 和 sshd 来访问 git 和 subversion。
我的朋友将一个 shell 帐户给了其他人,以便他们能够访问我们的 Subversion 存储库。不幸的是,这个人似乎在密码选择上有点宽松。top
本周我在服务器上运行时,注意到一个伪装成 /usr/sbin/httpd 的 perl 进程消耗了 50% 的 CPU。lsof -i
显示该进程保持与中国某个 IP 地址的连接。所以我猜想用户帐户被 SSH 暴力破解攻击破坏,并被用来发送垃圾邮件或类似活动。
作为第一步,我禁用了所有非我用户的 ssh 访问,希望防止进一步滥用(root ssh 访问已被禁用)。现在我面临的问题是,如何恢复服务器以供使用。
我目前的计划如下:
- 将服务器的内容转储到某个 tar 文件中
- 从干净的映像重新安装服务器
- 采取措施防止服务器再次受到攻击,例如完全禁用基于密码的 ssh 访问并改用公钥
- 从 tar 转储中提取重要数据,确保其干净,然后将其重新部署到服务器上和/或存储在其他地方
这是一种可行的方法吗?我是否遗漏了任何重要步骤?还有其他需要考虑的吗?
一些更具体的问题:
- 有可能只有用户帐户被盗用,而服务器的其余部分正常。在这种情况下,无需重新安装。有没有安全的方法可以判断是否是这种情况?
- 我是否必须通知我的提供商或当局?
- 解决第 4 步的最佳策略是什么——如何区分 Linux 系统中的恶意数据和好数据?
答案1
是的,这正是您要做的。可能只有一个用户帐户被盗用,但您永远无法确定。
你可以通知当局,但根据我的经验,什么也不会发生。
您拥有什么样的数据?对于二进制文件,您永远无法确定,除非您在某个安全的地方拥有相同的文件,并且可以比较它们。对于图像、视频、音乐等,您通常是安全的。对于源代码...您应该检查,但由于您有 git/svn,我会将其与本地(未受损害的)副本进行比较,并验证差异不是恶意的。我仍然会手动检查所有配置等。