Код:
/sbin/iptables -N FORUMFLOOD
/sbin/iptables -I INPUT -i $INET -d $EXTA/32 -p tcp --dport 80 -m conntrack --ctstate NEW -j FORUMFLOOD
/sbin/iptables -A FORUMFLOOD -m hashlimit --hashlimit-name olegon --hashlimit-mode srcip --hashlimit-upto 240/min --hashlimit-burst 800 -j RETURN
/sbin/iptables -A FORUMFLOOD -j LOG --log-prefix "Flood "
/sbin/iptables -A FORUMFLOOD -p tcp -j DROP
Расшифрую этот очень простой скриптик.
Для удобства администрирования и оптимизации быстродействия цепочек создадим отдельную цепочку FORUMFLOOD.
Определим, что с интерфейса, который смотрит в инет, пакеты, следующие на наш внешний адрес, порт 80, необходимо заруливать в эту цепочку.
В цепочке обозначить, что пакеты, которые не превышают частоту 240/минуту, с кратковременным всплеском до 800 пакетов, трогать не надо. Все остальные пакеты отмечаются в syslog и дропаются. Обратите внимание, что RELATED, ESTABLISHED у меня пропускаются в общем потоке.