Мой сервер в настоящее время подвергается DDOS-атаке с почти 500 000 пакетов 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 на запросы по инициативе йо ur сервер, поскольку обработка исходной таблицы
происходит до отслеживания соединения.
Вы можете добавить разрешенные хосты UDP следующим образом:
iptables -t raw -A PREROUTING -p udp -s !nnn.nnn.nnn.nnn -j DROP
где nnn.nnn.nnn.nnn
- это IP-адрес хоста, с которого вы хотите получать трафик UDP.
Также могут быть другие последствия при отключении трафика UDP перед отслеживанием соединения, в зависимости от сервера.