【51CTO.com快译】如果您的数据中心中有Linux服务器,或者将它们托管在云服务器(比如AWS、谷歌云或Azure)上,不能因为您所部署的操作系统就想当然地认为它们是安全的。即使Linux是市面上最安全的操作系统之一,它也并非尽善尽美。实际上,针对该平台的攻击有所增加,随着Linux日渐普及,攻击会愈演愈烈。
您在做什么?
如果您怀疑其中一台服务器可能遭到了攻击,需要加以检查。怎么检查?我将向您介绍几个命令,可帮助您确定服务器是否遭到来自某个IP地址的分布式拒绝服务(DDoS)的攻击。这种攻击是一种协同的活动,使用一个或多个IP地址,企图破坏网站使其服务器无法访问。
不妨看看如何判断您的Linux服务器是否遭到了攻击。
您需要什么?
您唯一需要的是Linux实例和拥有sudo特权的用户。我将在Ubuntu Server 20.04上进行演示。
如何安装netstat?
我们将使用netstat工具来查明当前连接到您服务器的IP地址。想在Ubuntu上安装netstat,您实际上需要安装net-tools,如下所示:
- sudo apt-get install net-tools -y
如果您使用CentOS或基于Red Hat的安装,netstat应该已安装上去。
如何检查服务器负载?
我们要做的第一件事是检查服务器负载。为此使用的命令将返回逻辑处理器(线程)的数量。在服务器上,这个数字应该相当低,但这取决于您运行的负载。您应该确保这个数字有个基准值,确保一切都OK。如果您怀疑出了情况,再次运行线程检查并进行比较。
要检查逻辑处理器的数量,执行该命令:
- grep processor /proc/cpuinfo | wc -l
如果该数字远高于基准值,表明可能有问题。
比如在我的Pop!_OS桌面上,我有16个线程,但是在托管Nextcloud的Ubuntu服务器上,我只有两个线程。如果这些数字中的任何一个翻倍,表明我可能遭到了DDoS攻击。
如何检查网络负载?
接下来检查网络负载。您可以使用许多工具来执行此操作,不过我选择了nload。想安装nload,执行以下命令:
- sudo apt-get install nload -y
在CentOS上,该命令将是:
- sudo dnf install nload -y
要运行该工具,只需执行以下命令:
- nload
您应该会看到一个很正常的入站和出站网络负载(图A)。
图A. Nload显示我的Nextcloud服务器上入站负载相当低
如果该负载大大超出您的预期,您可能遭到了攻击。
如何查明连接到您服务器的IP地址?
接下来要做的是查明连接到您服务器的IP地址。为此,我们将这样使用netstat:
- netstat -ntu|awk '{print $5}'|cut -d: -f1 -s|sort|uniq -c|sort -nk1 -r
上述命令的输出将列出连接到服务器的每个IP地址以及每个IP地址的实例数。如您所见,有两个IP地址连接到我的服务器(图B)。
图B. netstat的输出显示了连接到我服务器的IP地址
请确保仔细浏览该列表。如果看到一个IP地址含有大量实例(超过100个),这个地址是罪魁祸首的可能性很大。一旦确定了罪魁祸首,您可以使用以下命令禁止这个IP地址:
- sudo route add ADDRESS reject
其中ADDRESS是可疑对象的IP地址。
这时,返回并重新检查线程、连接的IP地址和网络负载,看看是否已缓解了DDoS攻击。如果成功缓解,就要报告这个可疑的IP地址,可能还要完全禁止该地址访问您的网络。
原文标题:How to quickly check to see if your Linux server is under a DDoS attack from a single IP address,作者:Jack Wallen
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】