ipt_limit - общее ограничение по срабатываний правила
-m limit --limit {avg}/[second|minute|hour|day] --limit-burst {burst}iplimit - ограничение соединений для одного IP.
Ограничение коннектов к 80 порту от одного IP:
iptables -A INPUT -p tcp --syn --dport http -m iplimit --iplimit-above 4 -j REJECT
Тоже, но для запросов с одной /24 подсети:
iptables -A INPUT -p tcp --syn --dport http -m iplimit --iplimit-mask 8 --iplimit-above 4 -j REJECT
hashlimit - для каждого IP в хэше хранятся параметры соединений;
-m hashlimit --hashlimit {avg} --hashlimit-burst {burst} --hashlimit-mode {режим: dstip, dstport, srcip, srcport} \
--hashlimit-name {name} --hashlimit-htable-max {num} --hashlimit-htable-expire {num} --hashlimit-htable-gcinterval {num}
iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m hashlimit --hashlimit 1/hour \
--hashlimit-burst 2 --hashlimit-mode srcip --hashlimit-name SSH --hashlimit-htable-expire 360000 -j ACCEPT
tbf (http://www.nmalykh.org/work/tbf.tar.gz) - продолжение развития limit и hashlimit c поддержкой
возможности инверсии правил в целом.
iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m tbf ! -- tbf 1/s --tbf-burst
--tbf-mode srcip --tbf-name SMTP -j DROP
URL: http://www.protocols.ru/Papers/iptables-tbf.shtml
Обсуждается: http://www.opennet.dev/tips/info/798.shtml