Титла: Iptables per ip limit Публикувано от: Nerf в May 28, 2006, 17:47 Здравеите,
от доста време несъм писал тук (не ми се е налагало), но ето че пак съм тук. ![]() Имам един проблем който незнам дали не се далжи на това че тия дни имах доста работа и сега сам малко зациклил(и гледам като електроженист 3-ти разряд). Та.. искам да огранича връзките до мойто smtp от всяко IP(или поне на зомбираните спамерчета). Тоест да могат да пращат примерно максимум до 200 писма на ден. И се чудя как да стане? iptables? това което ми се върти в главата е нещо такова: iptables -A INPUT -p tcp -s X.X.X.0/24 --syn --dport 25 -j REJECT iptables -I INPUT -p tcp -s X.X.X.0/24 --dport 25 -m limit --limit +200/day --limit-burst 1 -j ACCEPT обаче така не се получава....тоест получава се ама малко по различно ...сиреч ограничава 25 порт до 200 канекци ВЪОБЩЕ а на мен ми тря 200 канекци на IP. Пробвах и нещо такава по някое време: iptables -А INPUT -s X.X.X.0/24 -p tcp -m tcp --dport 25 --tcp-flags SYN,RST,ACK SYN -m connlimit --connlimit-above 1 --connlimit-mask 32 -j REJECT --reject-with icmp-port-unreachable ама така просто получавам по една едновремена канекция и така еволюирах до: iptables -I INPUT -s X.X.X.0/26 -p tcp -m tcp --dport 25 --tcp-flags SYN,RST,ACK SYN -m connlimit --connlimit-above 1 --connlimit-mask 32 -m limit --limit 2/min -j REJECT --reject-with icmp-port-unreachable но и това не е което искам (времената и броя на канекците са такива само за теста) Та доста порових из нет-а и стигнах до тук. Благодаря предварително за всеки отговор. ![]() П.С. Примерите по-горе са само част от тестваните правила. Дал съм ги защото смятам, че могат да ви насочат към това което искам да направя. Титла: Iptables per ip limit Публикувано от: VladSun в May 28, 2006, 21:40 Можеш да пробваш комбинация от "limit" match-a И "recent" match-a (или само втория). Вторият работи по таблица от ИП-та. Виж примерите в man iptables.
PS: Може би трябва и да определиш размера на таблиците. (вж. man iptables) Титла: Iptables per ip limit Публикувано от: Nerf в May 28, 2006, 22:16 Ще те помоля за пример защото неуспявам да си съчиня сам.
Титла: Iptables per ip limit Публикувано от: VladSun в May 29, 2006, 01:02
iptables -A INPUT -p tcp -s X.X.X.0/24 --syn --dport 25 -m recent --name bad_smtp --rcheck --seconds 60 -j DROP iptables -N SMTP_CHAIN iptables -A INPUT -p tcp -s X.X.X.0/24 --syn --dport 25 -m recent --name bad_smtp --set -j SMTP_CHAIN iptables -A SMTP_CHAIN -j RETURN PS: Не можах да се сетя за по-елегантен начин за "CONTINUE" target ![]() Титла: Iptables per ip limit Публикувано от: Nerf в May 29, 2006, 01:42 Мерси много
![]() Незнам как до сега все ми е убягвал recent пача при положение че върши такава добра рапота. пак мерси и имаш бира от мен ![]() Титла: Iptables per ip limit Публикувано от: VladSun в May 29, 2006, 02:25 Можеш и така:
iptables -A INPUT -p tcp -s X.X.X.0/24 --syn --dport 25 -m recent --name bad_smtp --rcheck --seconds 60 -j DROP iptables -A INPUT -p tcp -s X.X.X.0/24 --syn --dport 25 -m recent --name bad_smtp --set -j ACCEPT при условие, че пакетите към 25 порт не ги обработваш по-долу в защитната стена. ПС: "Загорка", голяма ![]() Титла: Iptables per ip limit Публикувано от: Nerf в May 29, 2006, 07:55 ![]() |