如何快速查看您的Linux服务器是否遭到来自某个IP地址的DDoS攻击?

本文介绍了一种确定您的linux服务器是否遭到DDoS攻击以及如何迅速阻止攻击的简易方法。

如何快速查看您的Linux服务器是否遭到来自某个IP地址的DDoS攻击?

【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)。

如何快速查看您的Linux服务器是否遭到来自某个IP地址的DDoS攻击?

图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)。

如何快速查看您的Linux服务器是否遭到来自某个IP地址的DDoS攻击?

图B. netstat的输出显示了连接到我服务器的IP地址

请确保仔细浏览该列表。如果看到一个IP地址含有大量实例(超过100个),这个地址是罪魁祸首的可能性很大。一旦确定了罪魁祸首,您可以使用以下命令禁止这个IP地址:

sudo route add ADDRESS reject 

其中ADDRESS是可疑对象的IP地址。

这时,返回并重新检查线程、连接的IP地址和网络负载,看看是否已缓解了DDoS攻击。如果成功缓解,就要报告这个可疑的IP地址,可能还要完全禁止该地址访问您的网络。

原创文章,作者:zhou, jiajia,如若转载,请注明出处:https://www.yidc.net/archives/16432