Как заблокировать все IP-блоки класса C, когда они отправляют слишком много SYN-пакетов на мой сервер ubuntu 12.04?
Пример того, что я вижу во время атаки SYN-flood:
Каждый другой IP отправляет только 1 пакет SYN, поэтому брандмауэр не блокирует его. Но диапазон 192.132.209.* все вместе отправляет много SYN-пакетов за очень маленький период времени.
Я нашел аналогичное решение. Не то, что я хотел точно, но очень похоже:
/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
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