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