🐧如何在Linux上检查和阻止DDoS攻击

我最近写了一篇有关如何在Linux上检测和阻止DoS攻击的文章。

🐧如何从单个IP地址快速检查Linux服务器是否受到DoS攻击

DoS代表“拒绝服务”,它是对服务器的一种非常常见的攻击,可能使它们在解决问题之前无法使用。

还有另一种类似的攻击类型,称为分布式拒绝服务(DDoS),它更难检测和阻止。

这种类型的攻击使用与拒绝服务攻击相同的思想,只是它可以将攻击分布在多个服务器上。

它不是来自某个地址的服务器受到攻击,而是来自一组分布式服务器。

我将向您展示如何检查和阻止Linux服务器上的DDoS攻击。

请注意,DDoS保护并不像DoS那样容易。

实际上,使用DDoS,您不仅必须使用netstat命令,而且还非常了解您的网络,并且能够对检测到的连接的性质进行一些假设。

换句话说,防御DDoS攻击并不容易。

你可以 购买Windows 8许可证 而不考虑Linux服务器上的DDos攻击

如何检查子网

netstat -ntu|awk '{print $5}'|cut -d: -f1 -s |cut -f1,2 -d'.'|sed 's/$/.0.0/'|sort|uniq -c|sort -nk1 -r

如果找不到netstat命令,则需要使用以下命令进行安装:

sudo apt-get install net-tools -y

您应该看到来自包含相同前两个八位位组的地址的所有连接的列表,例如192.168.xx

🐧如何在Linux上检查和阻止DDoS攻击如您所见,我从192.168.xx子网到此服务器有13个连接

要从/ 24子网中查找连接,请使用以下命令:

netstat -ntu|awk '{print $5}'|cut -d: -f1 -s |cut -f1,2,3 -d'.'|sed 's/$/.0/'|sort|uniq -c|sort -nk1 -r

上面的命令将显示来自同一子网的所有连接,但显示前三个八位位组(例如192.168.1.x)。

如果您发现来自这些子网中的任何一个的大量连接,则可以缩小搜索范围。

另一个netstat命令将列出连接到服务器的所有IP地址。

该命令:

netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c

您应该看到所有已连接IP地址及其连接数量的列表。

然后,我们使用netstat来计算每个IP地址与您的服务器的连接数。

该命令:

sudo netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

上面的命令实际上将列出所有向服务器发送连接请求的子网的IP地址。

此时,您应该对连接来自何处以及与这些连接相关联的IP地址有一个好主意。

您可以从一个特定的子网进行大量连接。

如果此子网不应该到达具有此流量级别的服务器,则很可能是DDoS攻击的起源。

如何制止攻击

这并不像查找和阻止DoS攻击那么容易。

但是,好消息是,一旦您确定了DDoS攻击的来源,就可以像停止DoS攻击一样将其停止。

只需运行以下命令:

sudo route add ADDRESS reject

其中,ADDRESS是有问题的地址。

在DDoS攻击中,您将必须对使用netstat命令检测到的每个可疑地址运行以上命令。

这可能会花费大量时间,具体取决于要攻击服务器的计算机数量。

如果发现所有攻击均来自同一子网(该子网不应访问服务器),则可以使用iptables阻止整个子网,例如:

sudo iptables -A INPUT -s ADDRESS/SUBNET -j DROP

确保将ADDRESS / SUBNET替换为您认为服务器正在攻击的值。

要考虑的另一个问题是,如果这些攻击来自本地网络中的子网,那么为什么这些计算机会通过攻击对服务器进行轰炸。

如果是这样,您可能会遇到更大的问题。

您可以为这些服务器做的最好的事情之一就是安装fail2ban

🔒如何安装Fail2Ban以保护CentOS / RHEL 8上的SSH

如何在CentOS 7上安装Fail2Ban

该工具将有助于自动防止不必要的登录和攻击。

请记住,缓解DDoS攻击并不像缓解DoS攻击那么容易。

您将需要在团队中花费一些时间来缩小攻击范围,但这不会浪费时间。

Sidebar