如何判断 Linux 服务器是否被入侵?

2018-01-29 09:17:44 Linux爱好者  点击量: 评论 (0)
本指南中所谓的服务器被入侵或者说被黑了的意思,是指未经授权的人或程序为了自己的目的登录到服务器上去并使用其计算资源,通常会产生

    whois 命令可以接一个 IP 地址然后告诉你该 IP 所注册的组织的所有信息,当然就包括所在国家的信息。

    检查 2 – 谁曾经登录过?

    Linux 服务器会记录下哪些用户,从哪个 IP,在什么时候登录的以及登录了多长时间这些信息。使用 last 命令可以查看这些信息。

    输出类似这样:

    root     pts/1        78.31.109.1      Thu Nov 30 08:26   still logged in

    root     pts/0        113.174.161.1    Thu Nov 30 08:26   still logged in

    root     pts/1        78.31.109.1      Thu Nov 30 08:24 - 08:26  (00:01)

    root     pts/0        113.174.161.1    Wed Nov 29 12:34 - 12:52  (00:18)

    root     pts/0        14.176.196.1     Mon Nov 27 13: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 -p PID

    这会显示出该进程调用的所有系统调用。它产生的内容会很多,但这些信息能告诉你这个进程在做什么。

    lsof  -p PID

    这个程序会列出该进程打开的文件。通过查看它访问的文件可以很好的理解它在做的事情。

    检查 5 – 检查所有的系统进程

    消耗 CPU 不严重的未授权进程可能不会在 top 中显露出来,不过它依然可以通过 ps 列出来。命令 ps auxf 就能显示足够清晰的信息了。

    你需要检查一下每个不认识的进程。经常运行 ps (这是个好习惯)能帮助你发现奇怪的进程。
大云网官方微信售电那点事儿

责任编辑:任我行

免责声明:本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
我要收藏
个赞