Назад | Перейти на главную страницу

Невозможно остановить DDOS

Мне нужна небольшая помощь в работе с ddos. Я испытываю ddos-атаку размером 1 ГБ на моем сервере и не знаю, как ее остановить. (1 ГБ - максимальная скорость сервера.)

У меня следующие правила 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

однако с 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

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      

в nginx у меня есть

limit_req_zone  $binary_remote_addr  zone=one:10m   rate=5r/s;

на этом скриншоте вы можете увидеть реальные цифры. мое обычное использование не более 5 МБ / сек.

netstat -ntu | awk '{print $ 5}' | вырезать -d: -f1 | сортировать | uniq -c | sort -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

Насколько я понимаю, iptables вопрос - отвлекающий маневр: ваши правила отбрасывают эти пакеты нормально, поэтому очень большие пакеты учитываются в вашем пятом и последнем правиле ( DROP правило).

Исходя из вашего вопроса, я предполагаю, что вы хотите не просто сбросить их, но и не видеть их на своем порту вообще, а этого можно достичь, только поговорив со своим провайдером. Простое блокирование всего входящего UDP-трафика с исходным портом 53, вероятно, остановит работу сервера, так как это нарушит работу DNS, но если вы можете перенастроить свой сервер на использование только двух или трех определенных восходящих DNS-серверов, есть некоторый шанс получить вашего провайдера. для блокировки всего остального входящего трафика порта 53.

редактировать: Мои соболезнования по поводу вашего бедного провайдера. Я думаю, что проблема аппаратных брандмауэров не имеет значения: один из них не остановит трафик, доставляемый на ваш порт, он будет находиться только между вашим портом и вашим сервером и остановит трафик, потребляющий ресурсы на вашем сервере. Поскольку я не вижу выше никаких доказательств того, что это вызывает какие-либо проблемы с ресурсами на сервере, я не понимаю, как это вам поможет.

Было бы вполне нормально, если бы ответственный провайдер согласился временно заблокировать определенные виды трафика на порт, но если ваш провайдер этого не сделает, то я не вижу, что вы можете многое сделать, кроме как пожать плечами, выдержать шторм, затем посмотрите на других поставщиков, когда появится ваш контракт на продление.

Предполагая, что размер вашего порта меньше 1 Гбит / с:

Простой ответ. Получите аппаратный брандмауэр. Борьба с dDoS-атаками, особенно в диапазоне Гбит / с, не произойдет на реальном сервере.

Если весь трафик идет с порта 53, попросите вашего провайдера заблокировать порт 53 восходящего потока.

Установите NGINIX и решите проблему, это очень хорошее программное обеспечение, которое выполняет свою работу. Есть много литературы, которую можно прочитать о добавлении дополнительных инструментов или о том, как настроить конфигурацию установки для вашей проблемы.