Ddos-атака, проходящая через iptables [duplicate]

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

Я использовал свои собственные "правила iptables" для блокировки всех основных типов DDOS-атак на игровые серверы, потому что эти атаки были специфичными для приложения / игрового сервера. общих DDOS-атак. Мне потребовалось почти 3 года, чтобы изучить эти атаки и отреагировать на эти правила.До сих пор я использовал ограничение скорости для iptables, которое автоматически удаляло IP-адрес, если он составлял 250 просмотров в секунду, поскольку скорость клиента намного ниже, чем эта (максимальная скорость равна 500 кбит / с). Это связано с тем, что злоумышленники обычно отправляют большое количество счетчиков попаданий с пакетами длиной 15:30, поскольку это общая длина пакета, при которой игровой сервер хорошо отвечает. Это работало очень хорошо, пока кто-то сегодня не атаковал что-то другое, чтобы пройти через это правило.

-A INPUT -p udp -m udp --dport 16000:29000 -m recent --set 
-A INPUT -p udp -m udp --dport 16000:29000 -m recent --update --seconds 1 --hitcount 250 -j DROP 

Недавно я наблюдал атаки, которые легко делали входные данные 1-3 МБ / сек, как видно через iftop на мои серверы, и приведенные выше правила не блокировали их, потому что мой игровой сервер отвечал «... .disconnect "пакеты для всех входящих соединений. Это происходит, когда игровой сервер не распознает входную строку или длину пакета. Это было содержимое пакета:

http://paste.ubuntu.com/6000381/

Как вы могли видеть, пакет имел огромную длину. Согласно Wireshark, где я получил пакет, длина пакета составляла 700, а размер / длина данных составляла около 5000 байт. И я уже видел это раньше, что если у вас большая длина данных / размер пакета, вы все равно можете иметь более высокую скорость даже с меньшим количеством совпадений . Это объясняет, возможно, почему у него было входное значение около 3 МБ / с, и он не блокировался через счетчики обращений, потому что он никогда не имел счетчиков обращений больше 250…

Теперь мне нужно что-то, что больше зависело бы от пропускной способности, чем количество пакетов в секунду.Мне нужно правило iptables, которое автоматически блокировало бы ввод> 1 МБ / с, и при необходимости оно может использовать длину пакета. Общий размер / длина данных клиента честного игрового сервера обычно имеет длину пакета и размер данных менее 500 байт, но в некоторых случаях он может быть больше, но никогда не будет занимать пропускную способность более 500 кбит / с. .

Этот вопрос отличается от остальных вопросов, на которые ранее были даны ответы, поскольку он в первую очередь зависит от приложения. Во-вторых, я спрашиваю решение iptables, которое отклоняет любой ввод> 1 МБ / с?

Обновление:

Я провел некоторую теоретическую работу, чтобы объяснить, почему входная полоса пропускания 3 МБ / с не превышает 250 просмотров в секунду и вот рабочий результат:

3 Мб = 3x1024x1024 = 3,145,728 бит / сек = 393216 байт / сек

Следовательно,

Если размер пакета составляет 5000 байт, максимальное количество пакетов в секунду должно быть:

393216/5000 = 78,6 пакетов в секунду

И это означает, что если бы правила iptables работали, размер пакета должен был быть меньше 393216/250 = 1516 байт .

1
задан 25 August 2013 в 18:21
1 ответ

Вы смотрели fail2ban? Это может помочь вам отреагировать на входящие атаки, отбросив исходные IP-адреса на брандмауэре.

0
ответ дан 4 December 2019 в 09:02

Теги

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