Notice: query (INSERT INTO lemat_stats_browser (day,browser,ilosc,internal) VALUES ('2024-11-21','Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)',1,'2')) failed at /home/lemat/lemat.priv.pl/stats.php:151: Array ( [0] => 22001 [1] => 1406 [2] => Data too long for column 'browser' at row 1 ) in /home/lemat/lemat.priv.pl/panel_adm/dbclass.inc.php on line 15

Warning: Cannot modify header information - headers already sent by (output started at /home/lemat/lemat.priv.pl/panel_adm/dbclass.inc.php:15) in /home/lemat/lemat.priv.pl/stats.php on line 174
ograniczanie połączeń - Lemat, strona prywatna
Lemat, strona prywatna

Ograniczanie ilości połączeń

W sieciach osiedlowych userzy mają p2p. Generuje to baaaardzo dużo połączeń. Można to podejrzeć:

grep -v udp /proc/net/ip_conntrack|cut -c 12-|cut -d" " -f 2,3,4,5,6|sort -k 2,5

Jeżeli połączenie zostanie nieprawidłowo zerwane to moduł conntrack domyślnie trzyma wpis 5 dni - powoduje to niepotrzebny przyrost wpisów w tym pliku i znaczne zamulenie rutera.

Dlatego też warto przekompilować jądro wprowadzając małą poprawkę do pliku (źródło kernela)

./net/ipv4/netfilter/ip_conntrack_proto_tcp.c

należy zainteresować się parametrami

ip_ct_tcp_timeout_close_wait
ip_ct_tcp_timeout_established

oraz podobnymi - po prostu zmniejszyć ich wartości. O ile? Ja mam na przykład

unsigned long ip_ct_tcp_timeout_syn_sent =      2 MINS;
unsigned long ip_ct_tcp_timeout_syn_recv =     60 SECS;
unsigned long ip_ct_tcp_timeout_established =   2 HOURS;
unsigned long ip_ct_tcp_timeout_fin_wait =      2 MINS;
unsigned long ip_ct_tcp_timeout_close_wait =   60 SECS;
unsigned long ip_ct_tcp_timeout_last_ack =     30 SECS;
unsigned long ip_ct_tcp_timeout_time_wait =     2 MINS;
unsigned long ip_ct_tcp_timeout_close =        10 SECS;

oczywiście to, że ja tak mam nie oznacza, że Ty musisz też tak mieć - poeksperymentuj.

Zainteresuj się też modułem connlimit (dawniej iplimit)
dla iptablesów - ogranicz po prostu liczbę połączeń do wysokich portów do powiedzmy 20, to co powyżej - REJECT lub DROP (też organoleptycznie), ja mam akurat DROP, bo REJECT powiadamia aplikację p2p o tym, że połączenia nie da się uzyskać a ona natychmiast generuje następne połączenie. Jak jest DROP to musi poczekać na timeout. 

${IPTABLES} -A FORWARD -p tcp -s ${net} -o ${pub} --dport 1024:65535 -m connlimit --connlimit-above 20 -j DROP

Zablokuj też w forwardzie połączenia z portami 135-139,445 (tcp,udp) te ipki, które wykazują taką aktywność odłączaj - mają wirusa.


Data utworzenia : 2004-10-31

Skomentuj ten tekst

Komentarze:

wtf
2012-11-14 23:14:46
connlimit
Aktualnie uzywam HTB + SFQ i tam limituje caly ruch w zaleznosci od grupy, srednio 4mb/s przypada na usera przy 2k userow.

Czytalem manuala i przyznam ze troche nie zrozumialem jak przy uzyciu connlimit ograniczyc ruch per user oczywiscie nie wpisujac recznie 500+ regul do fw;]

Dodajac do tego --connlimit-mask 32?
Odpowiedź Lemata:
pewnie tak
wtf
2012-11-14 20:52:54
ograniczenie polaczen
Zalozmy wiec ze probuje ograniczyc polaczenia na portach 1024:65535 do 20

no to: iptables -I FORWARD -p tcp -s 192.168.0.0/23 -o eth0 --dport 1024:65535 -m connlimit --connlimit-above 20 -j DROP

teraz tak, czy ta regula ogranicza połączenia do 20 dla calej podsieci? czy tez 20 na ip w tej podsieci? intersuje mnie aby kazdy ip z tej podsieci mogl nawiazac maksymalnie do 20 polaczen na portach które wymieniłem wczesniej.

Znasz może jeszcze inne sposoby na ograniczenie p2p? w mojej sieci generuje to bardzo duzy ruch i obciazenie sprzetu.

Pozdrawiam
Odpowiedź Lemata:
20 połączeń na całą sieć /23. Potrzebny ci jakiś traffic shaper
matijen
2007-01-24 10:47:29
Brak eth0 dziwne
Zapodaje linijkę iptables -A FORWARD -p tcp -s eth0 -o eth1 --dport 1024:65535 -m iplimit --iplimit-above 20 -j DROP i kupa :( dostaje odpowiedź iptables v1.2.7a: host/network `eth0' not found Try `iptables -h' or 'iptables --help' for more information. A przecież necik chodzi i karty też ... co jest ???
Odpowiedź Lemata:
nic dziwnego, po -s daje się zakres sieci a nie interfejs
spider
2006-05-31 17:00:12
ten
po uzyciu opcji connlimit pojawia mi sie : no chain/ target/ match by that name
Odpowiedź Lemata:
pewnie nie masz w ogóle tego modułu lub masz stare jądro i nazywa się on iplimit
edi
2006-05-12 16:43:59
Ograniczanie ilości połączeń
Witam, nawstępie chciałem pogratulować stronki włąścicielowi, osobiście dużo z niej wyniosłem... Pytanie jednak brzmi następująca: czy po wprowadzeniu powyzszych regulek dotyczacych systcla... zostana one zpaisane na zawsze w pamieci "servera" czy tez trzeba je gdzies dopisac aby po uruchomienu.... /pozdrawiam wszystkich
Odpowiedź Lemata:
zapisać gdzieś w /etc/rc.d/
wszystkie opinie »
Protected by spf
[Nospam-PL.NET]
Seti@Home
www.php.net
© Lemat 2004 - ∞