Существует ли правило для iptables для ограничения количества пакетов SYN, которые может отправлять диапазон IP-адресов / 24?

Как заблокировать все IP-блоки класса C, когда они отправляют слишком много SYN-пакетов на мой сервер ubuntu 12.04?

Пример того, что я вижу во время атаки SYN-flood:

Каждый другой IP отправляет только 1 пакет SYN, поэтому брандмауэр не блокирует его. Но диапазон 192.132.209.* все вместе отправляет много SYN-пакетов за очень маленький период времени.

1
задан 29 March 2017 в 12:39

2 ответа

Я нашел аналогичное решение. Не то, что я хотел точно, но очень похоже:

/sbin/iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 20 --connlimit-mask 24 -j REJECT --reject-with tcp-reset

Ограничивает новые подключения tcp (порт 80) до 20 на класс C. Я нашел его здесь: Пример: Ограничения класса C

1
ответ дан 25 May 2018 в 02:30
  • 1
    TheBronx: В случае DoS вы будете сгореться с этим правилом, потому что netfilter должен отвечать на RST-флаг каждому соединению. Есть гораздо лучшие решения, такие как SYNPROXY. – fugitive 29 March 2017 в 13:29

IP-адрес класса C: от 192.0.0.0 до 223.255.255.255.

В этом случае параметр --connlimit-mask должен быть 192.0.0.0/3 в нотации CIDR.

Если вы укажете маска 24, она будет применяться и к классу А и классу B. Вы должны использовать CIDR-нотацию, чтобы точно указать класс.

--connlimit-mask 192.0.0.0/24 
0
ответ дан 25 May 2018 в 02:30

Другие вопросы по тегам:

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