被入侵服务器的症状当服务器被没有经验攻击者或者自动攻击程序入侵了的话,他们往往会消耗100的资源。他们可能消耗CPU资源来进行数字货币的采矿或者发送垃圾邮件,也可能消耗带宽来发动DoS攻击。因此出现问题的第一个表现就是服务器“变慢了”。这可能表现在网站的页面打开的很慢,或者电子邮件要花很长时间才能发送出去。那么你应该查看那些东西呢检查1-当前都有谁在登录你首先要查看当前都有谁登录在服务器上。发现攻击者登录到服务器上进行操作并不复杂。其对应的命令是w。运行w会输出如下结果:08:32:55up98days,5:43,2users,loadaverage:0.05,0.03,0.00USERTTYFROMLOGIN@IDLEJCPUPCPUWHATrootpts/0113.174.161.108:260.00s0.03s0.02ssshroot@coopeaa12rootpts/178.31.109.108:260.00s0.01s0.00sw第一个IP是英国IP,而第二个IP是越南IP。这个不是个好兆头。停下来做个深呼吸,不要恐慌之下只是干掉他们的SSH连接。除非你能够防止他们再次进入服务器,否则他们会很快进来并踢掉你,以防你再次回去。
请参阅本文最后的“被入侵之后怎么办”这一章节来看找到了被入侵的证据后应该怎么办。whois命令可以接一个IP地址然后告诉你该IP所注册的组织的所有信息,当然就包括所在国家的信息。检查2-谁曾经登录过Linux服务器会记录下哪些用户,从哪个IP,在什么时候登录的以及登录了多长时间这些信息。使用last命令可以查看这些信息。输出类似这样:rootpts/178.31.109.1ThuNov3008:26stillloggedinrootpts/0113.174.161.1ThuNov3008:26stillloggedinrootpts/178.31.109.1ThuNov3008:24-08:26(00:01)rootpts/0113.174.161.1WedNov2912:34-12:52(00:18)rootpts/014.176.196.1MonNov2713:32-13:53(00:21)这里可以看到英国IP和越南IP交替出现,而且最上面两个IP现在还处于登录状态。如果你看到任何未经授权的IP,那么请参阅最后章节。登录后的历史记录会记录到二进制的/var/log/wtmp文件中(LCTT译注:这里作者应该写错了,根据实际情况修改),因此很容易被删除。
通常攻击者会直接把这个文件删掉,以掩盖他们的攻击行为。因此,若你运行了last命令却只看得见你的当前登录,那么这就是个不妙的信号。如果没有登录历史的话,请一定小心,继续留意入侵的其他线索。检查3-回顾命令历史这个层次的攻击者通常不会注意掩盖命令的历史记录,因此运行history命令会显示出他们曾经做过的所有事情。一定留意有没有用wget或curl命令来下载类似垃圾邮件机器人或者挖矿程序之类的非常规软件。命令历史存储在~/.bash_history文件中,因此有些攻击者会删除该文件以掩盖他们的所作所为。跟登录历史一样,若你运行history命令却没有输出任何东西那就表示历史文件被删掉了。这也是个不妙的信号,你需要很小心地检查一下服务器了。(LCTT译注,如果没有命令历史,也有可能是你的配置错误。)检查4-哪些进程在消耗CPU?你常遇到的这类攻击者通常不怎么会去掩盖他们做的事情。他们会运行一些特别消耗CPU的进程。这就很容易发现这些进程了。只需要运行top然后看最前的那几个进程就行了。这也能显示出那些未登录进来的攻击者。比如,可能有人在用未受保护的邮件脚本来发送垃圾邮件。如果你最上面的进程对不了解,那么你可以Google一下进程名称,或者通过losf和strace来看看它做的事情是什么。使用这些工具,第一步从top中拷贝出进程的PID,然后运行:strace-pPID这会显示出该进程调用的所有系统调用。它产生的内容会很多,但这些信息能告诉你这个进程在做什么。lsof-pPID这个程序会列出