无法阻止 DDOS

Orl*_*rlo 4 networking ubuntu iptables ddos

我需要一些帮助来处理 ddos​​。我在我的服务器上遇到 1gb ddos​​ 攻击,我不知道如何阻止它。(1gbs 是服务器的最大速度。)

我有以下 iptables 规则:

 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 iptables -A INPUT -p tcp --dport 22 -j ACCEPT
 iptables -A INPUT -p tcp --dport 80 -j ACCEPT
 iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
 iptables -A INPUT -i lo -j ACCEPT
 iptables -A INPUT -j DROP
Run Code Online (Sandbox Code Playgroud)

但是使用 tcpdump 我可以看到来自端口 53 的数据包

12:14:40.341410 IP 195.137.162.149 > x.x.x.x: ip-proto-17
12:14:40.341411 IP 193.169.188.52.53 > x.x.x.x.23495: 23454- 0/4/6 (234)
12:14:40.341414 IP 195.248.88.120 > x.x.x.x: ip-proto-17
12:14:40.341416 IP 193.19.184.42.53 > x.x.x.x.50529: 26701| 6/0/1 TXT[|domain]
12:14:40.341418 IP 192.41.13.71.53 > x.x.x.x.10634: 23454| 6/0/1 TXT[|domain]
12:14:40.341418 IP 50.97.53.214.53 > x.x.x.x.65437: 23454| 6/0/1 TXT[|domain]
12:14:40.341419 IP 192.3.130.149.53 > x.x.x.x.57519: 24820| 6/0/1 TXT[|domain]
12:14:40.341438 IP 195.182.58.136 > x.x.x.x: ip-proto-17
12:14:40.341441 IP 193.234.216.12 > x.x.x.x: ip-proto-17
12:14:40.341442 IP 195.228.85.145.53 > x.x.x.x.7903: 37969| 6/0/1 TXT[|domain]
12:14:40.341512 IP 192.195.177.60.53 > x.x.x.x.42871: 57501- 0/13/23 (718)
12:14:40.341552 IP 192.210.150.10.53 > x.x.x.x.41447: 25994| 6/0/1 TXT[|domain]
12:14:40.341556 IP 193.28.177.41 > x.x.x.x: ip-proto-17
Run Code Online (Sandbox Code Playgroud)

iptables -xnvL

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination         
  415575 293176304 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state ESTABLISHED
   24101  1323153 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
   19725  1182436 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:8080
       2      104 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
13101233 35329988490 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 488686 packets, 518540789 bytes)
    pkts      bytes target     prot opt in     out     source               destination      
Run Code Online (Sandbox Code Playgroud)

在 nginx 我已经

limit_req_zone  $binary_remote_addr  zone=one:10m   rate=5r/s;
Run Code Online (Sandbox Code Playgroud)

在此屏幕截图中,您可以看到实际数字。我的正常使用不超过 5mb/sec。 在此处输入图片说明

netstat -ntu | awk '{print $5}' | 剪切 -d: -f1 | 排序 | uniq -c | 排序 -n | 尾巴 | grep -v "127.0.0"

 13 87.149.x.x
 14 95.68.x.x
 15 109.186.x.x
 15 84.108.x.x
 15 91.231.x.x
 17 162.17.x.x
 18 82.212.x.x
 82 151.248.x.x
 94 79.180.x.x
Run Code Online (Sandbox Code Playgroud)

Mad*_*ter 7

就我所见,iptables问题是一个红鲱鱼:您的规则丢弃这些数据包很好,因此非常大的数据包计数在您的第五个也是最后一个规则(DROP规则)上。

我从您的问题中推测您不仅希望删除它们,而且根本不想在您的端口上看到它们,而这只能通过与您的提供商交谈来实现。简单地让它们通过源端口 53 阻止所有入站 UDP 流量可能会使服务器停止工作,因为它会破坏 DNS,但是如果您可以重新配置您的服务器以仅使用两个或三个特定的上游 DNS 服务器,则有可能让您的提供商阻止所有其他入站端口 53 流量。

编辑:我对你可怜的提供者的同情。我认为硬件防火墙的问题无关紧要:其中之一不会阻止传输到您的端口的流量,它只会位于您的端口和您的服务器之间并停止消耗您服务器上资源的流量。由于我在上面没有看到任何证据表明它会导致服务器上的任何资源问题,因此我不知道这对您有什么帮助。

对于负责任的提供商来说,同意暂时阻止某些类型的流量到某个端口确实是很正常的,但是如果您的提供商不这样做,那么我认为您无能为力,只能耸耸肩,度过难关,然后在您的合同到期时再看看其他供应商。


Jas*_*son 5

假设您的端口大小小于 1Gbps:

简单的回答。获取硬件防火墙。在实际服务器上不会发生 dDoS,尤其是 Gbps 范围内的 dDoS。

如果所有流量都来自端口 53,请让您的提供商阻止上游端口 53。