Мой сервер в настоящее время подвергается DDOS-атаке с почти 500 тыс. UDP-пакетов в секунду.
UDP заблокирован в iptables, но процессор все еще перегружен.
Любой способ заблокировать UDP на более низком уровне, чтобы не передавать пакет через все цепочки / модули iptables, а отбрасывать его даже раньше?
Самая ранняя возможная точка отбрасывания пакетов - это iptables. raw
таблицу, как показано на диаграмме в https://unix.stackexchange.com/questions/243079/netfilter-iptables-why-not-using-the-raw-table
Вы можете сбрасывать пакеты в PREROUTING
цепочка такая:
iptables -t raw -A PREROUTING -p udp -j DROP
Однако при таком подходе вы также отбрасываете ответы DNS на запросы, инициированные вашим сервером, поскольку обработка raw
таблица появляется до того, как происходит отслеживание соединения.
Вы можете добавить разрешенные хосты UDP следующим образом:
iptables -t raw -A PREROUTING -p udp -s !nnn.nnn.nnn.nnn -j DROP
где nnn.nnn.nnn.nnn
- это IP-адрес хоста, с которого вы хотите получать UDP-трафик.
В зависимости от сервера, отключение UDP-трафика перед отслеживанием соединения может иметь и другие последствия.