Ограничение трафика через iptables |
[исправить] |
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
|
|
|
|
Раздел: Корень / Администратору / Сетевая подсистема, маршрутизация / Пакетные фильтры и фаерволы / Пакетные фильтры в Linux: iptables, ipchains |