Limit poctu spojeni

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Úterý Březen 13 18:35:09 CET 2007


On Mon, 12 Mar 2007 kopecek na centrum.cz wrote:
  
> Nasel jsem connlimit modul do iptables, ktery by to mel resit, ale zrejme
> neni podporovan v novych kernelech. Modul (resp primou kompilaci do jadra)
> pro connlimit mam. Pokud si dam help na -m connlimit, tak mi iptables
> vypisou volby, takze to je bez problemu. Neustale mi ale pri pokudu o
> pridani pravidla, iptables pisi No chain/target/match by that name   
  
Program iptables má zejvně svůj userspacový modul pro connlimit.
Ale máte i jaderný modul? Máte ho natažený do jádra?

> Potrebuju jakykoliv zpusob, jak na kernelu 2.6.18(19,20) zajistit limit
> na pocet spojeni z jedne IP.

Není to úplně jako connlimit, ale co použít hashlimit na pakety ve stavu
NEW? Když povolíte např. průměrně 5 nových spojení z jedné IP za sekundu,
tak to bude tomu agresívnímu jedinci trvat skoro tři hodiny, než dosáhne  
50 tisíc. Mezitím mu snad začnou nějaké z nich vyhnívat a dostane se to do
nějakého rovnovážného stavu.


On Tue, 13 Mar 2007, Ing. Pavel PaJaSoft Janoušek wrote:

>       Ehm... a kde byste vzal __stovky__ tisic lokalnich portu?!

TCP spojení je identifikované čtveřicí (lokální IP, lokální port, vzdálené
IP, vzdálený port). Rozhodně není potřeba mít na každé spojení zvláštní   
lokální port -- jak lze ostatně vidět na serverovém konci, kde z jednoho  
portu na jedné IP adrese vede mnoho spojení (jiná otázka je, jestli
použitá implementace TCP dovoluje vícenásobné použití jednoho portu i na
klientské straně).


On Mon, 12 Mar 2007 kopecek na centrum.cz wrote:

> Ano, presne tak, ale neni reseni vyprazdnovat tabulku pomoci "conntrack",
> protoze tim uriznu i to co nechci. Potrebuji neco, cim reknu napr. limit
> je 100 connections na jednu IP a dal uz se o to nestarat...

Tím programem můžete odstřelit i jen jedno konkrétní spojení (pozor ovšem 
na to, aby se vzápětí nevytvořilo znovu). V principu můžete udělat do 
cronu úlohu, co každých X časových jednotek spočítá počet spojení podle IP 
adres a případně provede jejich decimaci.


On Tue, 13 Mar 2007, Dalibor Kouřil wrote:

> Takže řešení je patchovat jádro. Na tom právě sedím a právě vůli tomu
> opouštím Mandrivu, kde patchovat jádro by byla asi sebevražda :(

Když si to člověk stáhne (pokud se někomu nechce kvůli tomu stahovat
patch-o-matic-ng a do něj ještě dotahovat connlimit, tak samotný connlimit
leží na URL <http://people.netfilter.org/ole/pom/connlimit.tar.gz>),
tak lze vidět, že to prakticky nesahá do již existujících souborů.  

Při troše snahy by to nejspíš šlo zkompilovat i zcela samostatně.


--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."




Další informace o konferenci Linux