Не могу остановить DDOS

Мне нужна небольшая помощь в работе с ddos. Я испытываю 1db атаку на мой сервер, и я не знаю, как это остановить. (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}' | cut -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

3 ответа

Решение

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

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

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

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

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

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

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

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

Другие вопросы по тегам