Мне нужна небольшая помощь в работе с 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 и решите проблему, это очень хорошее программное обеспечение, которое выполняет свою работу. Есть много литературы, которую можно прочитать о добавлении дополнительных инструментов или о том, как настроить конфигурацию установки для вашей проблемы.