Iptables ratelimit UDP DOS атаки [duplicate]

На этот вопрос уже есть ответ здесь:

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

Злоумышленники используют несколько IP-адресов для атаки на порты моего игрового сервера, что заставляет мой игровой сервер выдавать 1 мб/с на каждый IP-адрес, технически это отражающие UDP-атаки. Вот как я вижу их защиту,

    iptables -A INPUT -p udp -m state --state NEW -m recent --set --name DDOS --rsource 

    iptables -A INPUT -p udp -m state --state NEW -m recent --update --seconds 1 --hitcount 5 --name DDOS --rsource -j DROP

Технически это блокирует каждого атакующего на UDP портах. Я проверяю, заблокирован ли атакующий, используя "iftop" или "tcpdump", когда я вижу, что выход на IP атакующего становится равным 0, это подтверждает, что защита работает.

На моей машине CentOS 6 под управлением iptables 1.4.7 я использую аналогичный метод для блокировки, и очень странно, что иногда он работает, а в следующий час нет. После множества попыток я перезапустил свою систему и iptables, защита работала нормально и атакующий был заблокирован. Сегодня я вошел в систему, и он снова атакует меня, и хотя я перезапустил iptables, он не блокируется. Я не хочу перезапускать систему снова и снова, чтобы заставить ее работать, так в чем может быть проблема?

Также некоторые люди говорят, что UDP не имеет состояния, но чем бы это ни было технически - я всегда использовал эту команду и она работала раньше для меня, почему не сейчас или почему частично сейчас?

0
задан 18 February 2015 в 08:21
1 ответ

UDP действительно не имеет состояния, хотя iptables , похоже, имеет особую обработку.

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

Лучшее решение здесь - ограничить количество 'getstatus' пакеты, которые видит ваш сервер. Атаки отражения DDoS основываются на этом, и сопоставление на основе содержимого пакета довольно простое. Это также имеет то преимущество, что не влияет на ваших законных клиентов (которые должны отправлять только несколько запросов getstatus).

1
ответ дан 4 December 2019 в 21:54

Теги

Похожие вопросы