We are in the process of migrating this forum. A new space will be available soon. We are sorry for the inconvenience.

iptables connlimit


no4b
29-01-2014, 16:50
ipset powstał między innymi po to, żeby podnieść wydajność.

desavil
28-01-2014, 21:33
Tak to mam obecnie rozwiązane - jest ok. 700 regułek iptables dla każdego portu osobno.
Tylko pytanie, czy znacząco takie coś wpływa na wydajność?

I dlatego jeżeli jest to możliwe technicznie, najlepiej chciałbym to zrobić w jednej regułce.

no4b
27-01-2014, 22:18
Można:

http://ipset.netfilter.org/

albo http://www.cyberciti.biz/faq/bash-for-loop/

desavil
27-01-2014, 13:09
Witam,

Mam taką regułę iptables:
Kod:
iptables -I INPUT -p tcp --syn --dport 6000:6005 -m connlimit --connlimit-above 50 -j DROP
Jak ona ma się do czegoś takiego:
Kod:
iptables -I INPUT -p tcp --syn --dport 6000 -m connlimit --connlimit-above 50 -j DROP
iptables -I INPUT -p tcp --syn --dport 6001 -m connlimit --connlimit-above 50 -j DROP
iptables -I INPUT -p tcp --syn --dport 6002 -m connlimit --connlimit-above 50 -j DROP
iptables -I INPUT -p tcp --syn --dport 6003 -m connlimit --connlimit-above 50 -j DROP
iptables -I INPUT -p tcp --syn --dport 6004 -m connlimit --connlimit-above 50 -j DROP
iptables -I INPUT -p tcp --syn --dport 6005 -m connlimit --connlimit-above 50 -j DROP
To rozwiązanie (każdy port w osobnej regule) sprawdza się lepiej w moim wypadku, ponieważ jeżeli limit połączeń zostanie przekroczony blokada następuje danego adresu IP tylko na dany port, a nie na wszystkie z zakresu.

Czy takie rozwiązanie mogę uzyskać w jednej regule, ponieważ portów jest kilkaset i raczej chyba byłoby to mało wydajne jak każdy port zostałby osobno wprowadzony.