Konfiguracja serwerów, usług, itp.
papajas
Posty: 4 Rejestracja: 04 lutego 2011, 00:13
Post
autor: papajas » 21 maja 2012, 13:18
Znajomy kiedyś podał mi taką regułę:
Kod: Zaznacz cały
-A INPUT -p tcp -m tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 8 --connlimit-mask 32 -j REJECT --reject-with icmp-port-unreachable
Technicy jednego z operatorów twierdzą że to ta regułka jest przyczyną że jeden z ich klientów nie może połączyć się z serwerem. Dziwna sprawa bo cały świat się łączy, a jeden adres IP nie może.
Czy ktoś może podać mi wskazówkę
odnośnie tej reguły lub jakiś kierunek poszukiwań.
Z góry serdecznie dziękuję i pozdrawiam
.
snejk
Posty: 78 Rejestracja: 03 sierpnia 2010, 00:33
Lokalizacja: /dev/random
Post
autor: snejk » 21 maja 2012, 18:13
Ustawia limit równoczesnych połączeń przychodzących na port 80 z ustawioną flagą SYN (czyli połączenia nowe) dla całej podsieci klasy C.
Czyli możesz mieć 8 połączeń z żądanej klasy. Reszta jest odrzucana do czasu zamknięcia się któregoś z pozostałych.
papajas
Posty: 4 Rejestracja: 04 lutego 2011, 00:13
Post
autor: papajas » 21 maja 2012, 18:36
Czyli jakbym pozbył si
ę:
to rozumiem, że to 8 obowiązywałoby jeden host/i
p? To jakoś mi nie pasuje, bo mam jeszcze tam tak
ą regułkę:
Kod: Zaznacz cały
-I INPUT -p tcp --dport 80 --syn -m connlimit --connlimit-above 20 -j REJECT
Czy one się jakoś nie wykluczają, albo sobie nie przeszkadzają?
Mnie wystarczy reguła prosta, która ewentualnie ograniczy ruch z jednego numeru IP do jakiejś wartości (takie zabezpieczenie przed domorosłymi znawcami sztuki obciążania serwerów
).
Snejk - serdecznie dziękuję za poświęcony czas i wyjaśnienie mi temat
u!
Używaj znaczników code.
fnmirk
snejk
Posty: 78 Rejestracja: 03 sierpnia 2010, 00:33
Lokalizacja: /dev/random
Post
autor: snejk » 21 maja 2012, 18:46
Jak usuniesz:
to już nie musisz dopisywać 32 bo taka wartość jest domyślna (wtedy dopasowywany jest jeden host).
" pisze: To jakoś mi nie pasuje, bo mam jeszcze tam tak
ą regułkę:
Kod: Zaznacz cały
-I INPUT -p tcp --dport 80 --syn -m connlimit --connlimit-above 20 -j REJECT
Czy one się jakoś nie wykluczają, albo sobie nie przeszkadzają?
Sprawdź, która z nich występuje jako pierwsza, i do której z nich faktycznie wpadają jakieś pakiety.
papajas
Posty: 4 Rejestracja: 04 lutego 2011, 00:13
Post
autor: papajas » 21 maja 2012, 19:05
Kod: Zaznacz cały
www://# iptables -L -vn
Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 #conn/32 > 20 tcp dpt:80 flags:0x17/0x02 reject-with icmp-port-unreachable
0 0 REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 flags:0x17/0x02 #conn/32 > 8 reject-with icmp-port-unreachable
0 0 ACCEPT icmp -- * * 0.0.0.0/0 172.16.0.0/16
0 0 ACCEPT tcp -- * * 172.16.0.2 172.16.0.1 tcp spt:3306 dpts:1024:65535 state ESTABLISHED
0 0 ACCEPT all -- lo * 127.0.0.1 0.0.0.0/0
0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
91 8115 ACCEPT all -- eth0 * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- eth0 * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:222
0 0 ACCEPT tcp -- eth0 * xx.xx.xx.xx 0.0.0.0/0 tcp dpt:10000
0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 LOG flags 6 level 4 prefix `ATAK: '
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * * 172.16.0.0/16 0.0.0.0/0
0 0 ACCEPT tcp -- * * 172.16.0.1 172.16.0.2 tcp spts:1024:65535 dpt:3306 state NEW,ESTABLISHED
0 0 ACCEPT all -- * * 127.0.0.1 0.0.0.0/0
86 169K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0
papajas
Posty: 4 Rejestracja: 04 lutego 2011, 00:13
Post
autor: papajas » 23 maja 2012, 12:04
Dziękuję za podpowiedź. Poczytałem trochę o iptables i napisałem taką regułkę, zamiast tamtych dwóch:
Kod: Zaznacz cały
-A INPUT -p tcp -m tcp -m state -m connlimit --dport 80 --state NEW -j REJECT --reject-with tcp-reset --syn --connlimit-above 500