Оказывается такой удобный инструмент для борьбы с ДДОС атаками (или вернее со спамботами) как DDoS Deflate (который применяется тогда, когда в iptables отсутствует возможность использовать модуль connlimit), после инсталяции неправильно склонен себя конфигурировать. Это приводит к тому, что защита не работает.
Кстати, весьма важно помнить, что в отличие ограничения одновременных коннектов с 1 айпи адреса средствами iptables, когда попытки установить новые соединения просто не состоятся, при использовании DDoS Deflate айпи адрес, достигший лимита подключений, попадает в бан и все коннекты с ним прекаращаются на зданный интервал (после которого ip разбанивается).
Во-первых, в конфиге надо исправить
##### Количество соединений с 1 айпиадреса (т.к. тех, кто исчерпал лимит - ##### баним на 10 минут, лучше устанавливать не слишком маленькое значение ##### рискуем забанить офис за NAT транслятором (ipv6 ещё не пришол!) NO_OF_CONNECTIONS=64 ##### APF_BAN=0 (Включаем бан через iptables, а не по APF) APF_BAN=0 |
Затем необходимо правильно сконфигурировать крон. Так как я не люблю разные cron-файлы в папке /etc/cron.d/, то рекомендую внести слегка отрадактированную строку на запуск скрипта в свой личный рутовый кронтаб, а файл /etc/cron.d/ddos.cron – удалить:
crontab -e */1 * * * * nice -n -5 /usr/local/ddos/ddos.sh |
здесь мы увеличиваем приоритет процесса DDoS Deflate, чтобы когда система загибается от множества коннектов скрипт отработал и забанил кого надо, а у кого истекло время штрафа – разбанил.