Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam
próbuję ograniczyć ruch icmp do 1/s dla ipka
# Generated by iptables-save v1.4.14 on Fri Feb 26 14:38:15 2016 *mangle :PREROUTING ACCEPT [20980:2621600] :INPUT ACCEPT [20979:2621572] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [17608:9785058] :POSTROUTING ACCEPT [17608:9785058] COMMIT # Completed on Fri Feb 26 14:38:15 2016 # Generated by iptables-save v1.4.14 on Fri Feb 26 14:38:15 2016 *nat :PREROUTING ACCEPT [9855:693081] :INPUT ACCEPT [9809:690215] :OUTPUT ACCEPT [5702:404030] :POSTROUTING ACCEPT [5702:404030] -A POSTROUTING -s 10.255.0.0/16 -o eth0 -j MASQUERADE COMMIT # Completed on Fri Feb 26 14:38:15 2016 # Generated by iptables-save v1.4.14 on Fri Feb 26 14:38:15 2016 *filter :INPUT DROP [26:1507] :FORWARD DROP [0:0] :OUTPUT ACCEPT [17015:9504188] :fail2ban-ssh - [0:0] -A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh -A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP -A INPUT -f -j DROP -A INPUT -m state --state INVALID -j DROP -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p udp -m udp --dport 53 -m set --match-set mynetworks src -m hashlimit --hashlimit-upto 100/sec --hashlimit-burst 200 --hashlimit-mode srcip --hashlimit-name DNS -j ACCEPT -A INPUT -p tcp -m set --match-set goodports dst -j ACCEPT -A INPUT -p udp -m set --match-set goodports dst -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p esp -j ACCEPT -A INPUT -p icmp -m length --length 28:1500 -m hashlimit --hashlimit-upto 1/sec --hashlimit-burst 1 --hashlimit-mode srcip --hashlimit-name ICMP -j ACCEPT -A fail2ban-ssh -j RETURN COMMIT # Completed on Fri Feb 26 14:38:15 2016
niestety, teoretycznie hashlimit powinien mi ograniczyć do 1/sekunde a tak się nie dzieje.
gdzie robię błąd?
----
Qrde, ICMP łapie się w ESTABLISHED?
wprowadziłem tą regółkę właśnie przed to i działa, ładnie limituje
----
Dobra, już doczytałem. szkoda, że nie można usunąć wątku.
Ostatnio edytowany przez Nicram (2016-02-26 15:23:38)
Offline
Po co hashlimit do ICMP?
Pierwszy lepszy goowniarz potrafi wysłać pakiety ICMP z 1000 fałszywych adresów równocześnie.
A jak znajdzie się jakiś niezabezpieczony broadcast, to wysyła je spoofując Twój adres IP, a tym dostajesz tysiące odpowiedzi na pinga, którego w ogóle nie wysłałeś.
IMHO lepiej dać limit pakietów ICMP globalnie modułem limit, haslimit do tego potrzebny jak łysemu grzebień.
Hashlimit się używa do TCP, gdzie system śledzi stan połączenia.
ICMP trzeba traktować tak, żeby ani na rurce, ani w tablicach w pamięci ram (conntrack, haslimit, recent) nie stanowił problemu.
PS:
Qrde, ICMP łapie się w ESTABLISHED?[/quote]
ESTABLISHED ZAWSZE daję się jako OSTATNIĄ regułę.
W tablicy conntrack masz wszystkie połączenia realizowane [url=https://pl.wikipedia.org/wiki/Protok%C3%B3%C5%82_internetowy]protokołem IP[/url]... :D
Pozdro
;-)Ostatnio edytowany przez Jacekalex (2016-02-26 18:57:34)
W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem para bellum ;) | Pozdrawiam :)
Offline
[quote=Jacekalex]Po co hashlimit do ICMP?
Pierwszy lepszy goowniarz potrafi wysłać pakiety ICMP z 1000 fałszywych adresów równocześnie.
A jak znajdzie się jakiś niezabezpieczony broadcast, to wysyła je spoofując Twój adres IP, a tym dostajesz tysiące odpowiedzi na pinga, którego w ogóle nie wysłałeś.
IMHO lepiej dać limit pakietów ICMP globalnie modułem limit, haslimit do tego potrzebny jak łysemu grzebień.
ICMP trzeba traktować tak, żeby ani na rurce, ani w tablicach w pamięci ram (conntrack, haslimit, recent) nie stanowił problemu.[/quote]
oo, dzięki za sugestię
[quote=Jacekalex]Hashlimit się używa do TCP, gdzie system śledzi stan połączenia.
Pozdro[/quote]
Tylko do tcp? w wielu fw co przejrzałem też jest stosowany do udp i w moim przypadku użyłem do dnsa. to źle? serwer ten służy tylko jako cachujący dla userów
Offline
[quote=Nicram].....
Tylko do tcp? w wielu fw co przejrzałem też jest stosowany do udp i w moim przypadku użyłem do dnsa. to źle? serwer ten służy tylko jako cachujący dla userów[/quote]
Do UDP ok, chociaż UDP jest protokołem bezpołączeniowym, to jednak FW śledzi połączenia UDP, żeby wiedzieć, które połączenia przepuszczać, a które nie.
Przy czym i tak do Binda dałbym normalny limit np 10 czy 20/s, (podobnie do każdego UDP, i globalnie dla całego systemu).
W każdym razie taką ilość, żeby serwer DNS i cały system tego praktycznie "nie odczuł".
Tymczasem ICMP to protokół do diagnozowania sieci i śledzić go nie ma sensu.
natomiast w dużej ilości może zmasakrować serwer, i dlatego trzeba na niego uważać.
Serwer chyba zajmuje się serwowaniem usług (na których czasem się zarabia),
a nie pomocą w diagnozowaniu sieci?
Ostatnio edytowany przez Jacekalex (2016-02-26 19:07:54)
Offline
[quote=Jacekalex]Tymczasem ICMP to protokół do diagnozowania sieci i śledzić go nie ma sensu.
natomiast w dużej ilości może zmasakrować serwer, i dlatego trzeba na niego uważać.
Serwer chyba zajmuje się serwowaniem usług (na których czasem się zarabia),
a nie pomocą w diagnozowaniu sieci?[/quote]
czyli do samego icmp lepiej użyć?
iptables -A INPUT -m icmp -p icmp --icmp-type echo-request -m state --state NEW -m limit --limit 1/s --limit-burst 1 -j ACCEPT
Offline
Kod:
iptables -A INPUT -m icmp -p icmp --icmp-type echo-request -m state --state NEW -m limit --limit 1/s --limit-burst 1 -j ACCEPT[/quote]
Po cholerę do tego conntrack mieszasz?Kod:
iptables -A INPUT -p icmp -m limit --limit 10/s -j ACCEPTnie wystarczy?
PS.
Moduł state wylatuje z FW, zamiast tego używa się:Kod:
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPTSzykuj się też na [url=http://netfilter.org/projects/nftables/]nftables[/url]
- za jakiś czas wejdzie do powszechnego użytku zamiast iptables, ebtables i arptables.
PozdroOstatnio edytowany przez Jacekalex (2016-02-26 19:15:08)
W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem para bellum ;) | Pozdrawiam :)
Offline
OK, dzięki
zrobiłem teraz tak, czy lepiej?
# Generated by iptables-save v1.4.14 on Fri Feb 26 19:31:12 2016 *mangle :PREROUTING ACCEPT [8021:1031917] :INPUT ACCEPT [8021:1031917] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [6303:3984801] :POSTROUTING ACCEPT [6303:3984801] COMMIT # Completed on Fri Feb 26 19:31:12 2016 # Generated by iptables-save v1.4.14 on Fri Feb 26 19:31:12 2016 *nat :PREROUTING ACCEPT [3023:206198] :INPUT ACCEPT [2975:202956] :OUTPUT ACCEPT [1857:132086] :POSTROUTING ACCEPT [1857:132086] -A POSTROUTING -s 10.255.0.0/16 -o eth0 -j MASQUERADE COMMIT # Completed on Fri Feb 26 19:31:12 2016 # Generated by iptables-save v1.4.14 on Fri Feb 26 19:31:12 2016 *filter :INPUT DROP [9:621] :FORWARD DROP [0:0] :OUTPUT ACCEPT [5555:3490104] :fail2ban-ssh - [0:0] -A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh -A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP -A INPUT -f -j DROP -A INPUT -m state --state INVALID -j DROP -A INPUT -p icmp -m limit --limit 10/sec -j ACCEPT -A INPUT -p icmp -j DROP -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p udp -m udp --dport 53 -m set --match-set mynetworks src -m hashlimit --hashlimit-upto 20/sec --hashlimit-burst 60 --hashlimit-mode srcip --hashlimit-name DNS -j ACCEPT -A INPUT -p tcp -m set --match-set goodports dst -j ACCEPT -A INPUT -p udp -m set --match-set goodports dst -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p esp -j ACCEPT -A fail2ban-ssh -j RETURN COMMIT # Completed on Fri Feb 26 19:31:12 2016
Ostatnio edytowany przez Nicram (2016-02-26 19:33:20)
Offline
[quote=morfik]Co jest złego z łapaniem ICMP w ESTABLISHED,RELATED i limitowaniem tylko nowych zapytań?[/quote]
DDoS na ICMP?
Offline
Każde połączenie śledzone w conntrack to jest 1,5 kB w RAM.
Podobnie w hashlimit czy recent.
Miliard pakietów ICMP, każdy z innego - spoofowanego adresu, to ile będzie w RAM?
Serwerki do "stress-testów" i różne chmury można wynajmować za grosze na godziny, a możliwości mają coraz większe...
Offline
OK, dzięki
zrobiłem teraz tak, czy lepiej?[/quote]
Nie wiem, po kiego czorta Tobie fail2ban do SSH.
Nie lepiej sprawę [url=https://forum.dug.net.pl/viewtopic.php?pid=269383]ipsetem[/url] załatwić?
PS.
Jeśli np:Kod:
net.netfilter.nf_conntrack_max = 65536 net.netfilter.nf_conntrack_icmp_timeout = 30to ile pakietów ICMP na sekundę trzeba mu wysłać, żeby zapchać tablicę conntrack i praktycznie wyłączyć sieć na serwerze?
Z całą pewnością nie miliard (starczy nawet komórka z netem LTE na kartę), dlatego lepiej nie używać [b]conntrack --ctstate[/b] do ICMP.
Filtrowanie protokołów bezpołączeniowych przez conntrack nieźle się sprawdza w przypadku bezpiecznego desktopa, ale na serwerze, który udostępnia usługi w necie i wpuszcza takie pakiety, nie ma w ogóle co liczyć na ten mechanizm.
Jeśli ktoś chce dokładnie limitować liczbę wpisów dla np icmp w ip_conntrack, to polecam moduł [b]connlimit[/b] z opcją [b]--connlimit-mask=0[/b].Ostatnio edytowany przez Jacekalex (2016-02-26 20:37:51)
W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem para bellum ;) | Pozdrawiam :)
Offline
[quote=Jacekalex]
OK, dzięki
zrobiłem teraz tak, czy lepiej?[/quote]
Nie wiem, po kiego czorta Tobie fail2ban do SSH.
Nie lepiej sprawę [url=https://forum.dug.net.pl/viewtopic.php?pid=269383]ipsetem[/url] załatwić?[/quote]
fail2ban banuje po podaniu x blednych haseł. nie rozważałem by wykorzystać do tego ipseta
Offline
[quote=Nicram][quote=Jacekalex]
OK, dzięki
zrobiłem teraz tak, czy lepiej?[/quote]
Nie wiem, po kiego czorta Tobie fail2ban do SSH.
Nie lepiej sprawę [url=https://forum.dug.net.pl/viewtopic.php?pid=269383]ipsetem[/url] załatwić?[/quote]
fail2ban banuje po podaniu x blednych haseł. nie rozważałem by wykorzystać do tego ipseta[/quote]
Po X błędnych haseł to SSH ma zamknąć połączenie, a hashlimit zakomunikować, że "zapraszamy za godzinkę".
Fail2ban Tobie jest potrzebny, jak łysemu grzebień.
W ogóle nie czaję, po cholerę do ICMP próbowałeś pchać haslimit, co sensu nie ma żadnego, za to do SSH, gdzie hashlimit sprawdza się cudownie (po to właśnie powstał), wolisz Fail2bana.
Nie próbuję tego zrozumieć, nie jestem psychoanalitykiem. ;)
W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem para bellum ;) | Pozdrawiam :)
Offline
[quote=Jacekalex]Po X błędnych haseł to SSH ma zamknąć połączenie, a hashlimit zakomunikować, że "zapraszamy za godzinkę".
Fail2ban Tobie jest potrzebny, jak łysemu grzebień.
W ogóle nie czaję, po cholerę do ICMP próbowałeś pchać haslimit, co sensu nie ma żadnego, za to do SSH, gdzie hashlimit sprawdza się cudownie (po to właśnie powstał), wolisz Fail2bana.
Nie próbuję tego zrozumieć, nie jestem psychoanalitykiem. ;)[/quote]
tu nie ma co próbować zrozumieć. dawno nie bawiłem się iptables, zawsze był mi potrzebny do podstawowych opcji: zablokuj, odblokuj :)
po prostu skopiowałem regółkę z jakiegoś tutoriala. nie wiem jak który moduł dokładnie działa, czy wrzuca do pamięci i nie znam "good practices", ale dzięki takim osobom jak Ty, to poznaje i ciesze się, że w ogóle są chętni by podpowiedzieć co nie co.
ps. właśnie "studiuję" Twój wpis z podanego linku z ipsetem i muszę przyznać, że jest tam logika
--
hmm, zrobiłem sobie testowo analogicznie, tak samo jak w Ty i odrazu wpada mi do bana a do tego nie ma timeouta :/
# Generated by iptables-save v1.4.21 on Fri Feb 26 21:05:23 2016 *raw :PREROUTING ACCEPT [607:44924] :OUTPUT ACCEPT [617:46644] -A PREROUTING -m set --match-set wypad src -j SET --add-set wypad src --exist --timeout 86400 -A PREROUTING ! -i lo -p tcp -m multiport --dports 22 -j SET --add-set wypad src --timeout 3600 -A PREROUTING -m set --match-set wypad src -j DROP COMMIT # Completed on Fri Feb 26 21:05:23 2016 # Generated by iptables-save v1.4.21 on Fri Feb 26 21:05:23 2016 *filter :INPUT ACCEPT [8100:627593] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [7831:626125] COMMIT # Completed on Fri Feb 26 21:05:23 2016 ipset list wypad Name: wypad Type: hash:net Revision: 6 Header: family inet hashsize 1024 maxelem 65536 Size in memory: 448 References: 0 Members: 192.168.57.1
Ostatnio edytowany przez Nicram (2016-02-26 21:21:06)
Offline
Ten wpis z ipsetem na porcie 22 zastosuj w sytuacji, kiedy SSH wystawiasz na porcie losowym, np 3893 - chroniony hashlimitem.
Do tego ustaw serwer SSH, żeby zamykał połączenie po jednym lub max dwóch źle wpisanych hasłach, obuduj hashlimitem, i nie ma szansy, żeby ktoś ten serwer zajechał.
Jeśli pacjentom udostępniasz powłokę SSH, to możesz w nim w ogóle wyłączyć logowanie na roota, a dla roota osobno wystawić np [b]Dropdbear[/b] na porcie wylosowanym w totolotku, chronionym hashlimitem i obsługującym logowanie wyłącznie kluczami SSH2.
Z haslimitem uważaj, on do jedno połączenie TCP do SSH czy SMTP widzi jako dwa.
Tu masz moje regułki do haslimita:
https://forums.gentoo.org/viewtopic-p-7081326.html?#7081326
Ostatnio edytowany przez Jacekalex (2016-02-26 21:09:31)
Offline
[quote=Jacekalex]Ten wpis z ipsetem na porcie 22 zastosuj w sytuacji, kiedy SSH wystawiasz na porcie losowym, np 3893 - chroniony hashlimitem.[/quote]
Qrde, chyba z powodu choroby mam problem ze zrozumieniem tego Twojego zdania :/
to ssh ma słuchać na dwóch portach? na 22 ipseta a na losowym hashlimit? bo nie kumam
[quote=Jacekalex]Jeśli pacjentom udostępniasz powłokę SSH, to możesz w nim w ogóle wyłączyć logowanie na roota, a dla roota osobno wystawić np [b]Dropdbear[/b] na porcie wylosowanym w totolotku, chronionym hashlimitem i obsługującym logowanie wyłącznie kluczami SSH2.[/quote]
standardowo mam wyłączoną możliwość logowania dla roota.
Offline
SSH nie musi słuchać na dwóch portach, bo i tak chodzi na jednym konfigu.
Możesz osobno wystawić Dropbera - taki lekki serwerek SSH2, osobno dla roota.
Dropberar jest w repo, używa się go np w OpenWRT i DDWRT, obrabia też standardowe klucze SSH.
Sytuacja o tyle sympatyczna, że jak jeden serwer SSH zdechnie albo jest niedostępny, to zawsze jest drugi, zapasowy.
Hashlimit i connlimit używam na porcie (lub zakresie portów), na którym działa(ją) usługa(i).
Ipset w tamtym wątku o autoban to jest taka zabawka-pułapka na skanery portów, morderczo skuteczna.
Ostatnio edytowany przez Jacekalex (2016-02-26 21:58:38)
Offline
Aaa, już teraz kumam :-)
Tylko z tym ipsetem próbuje ale już pierwsza linijka wrzuca mi do hash a ostatnia blokuje. No i nie widać timeouta :-(
Offline
To jeszcze wyłącznie PasswordAuthentication w sshd configu i wrzuć klucz publiczny, szkoda czasu na bujanie się z firewallem żeby zabezpieczyć SSH,model powinien być taki że ufassz swojemu SSH na tyle że okazujesz mu odznakę i jesteś panem na hoście względnie jeśli jesteś strachliwy to dorzuć tam vpna i zamknij port SSH na świat czy tam wszystkie te które wg ciebie są wrażliwe
Jeśli pletę bzdury niech mnie ktoś poprawi
Pozdro
Offline
[quote=Jacekalex]PS.
Jeśli np:
net.netfilter.nf_conntrack_max = 65536 net.netfilter.nf_conntrack_icmp_timeout = 30
to ile pakietów ICMP na sekundę trzeba mu wysłać, żeby zapchać tablicę conntrack i praktycznie wyłączyć sieć na serwerze?
Z całą pewnością nie miliard (starczy nawet komórka z netem LTE na kartę), dlatego lepiej nie używać [b]conntrack --ctstate[/b] do ICMP.
Filtrowanie protokołów bezpołączeniowych przez conntrack nieźle się sprawdza w przypadku bezpiecznego desktopa, ale na serwerze, który udostępnia usługi w necie i wpuszcza takie pakiety, nie ma w ogóle co liczyć na ten mechanizm.
Jeśli ktoś chce dokładnie limitować liczbę wpisów dla np icmp w ip_conntrack, to polecam moduł [b]connlimit[/b] z opcją [b]--connlimit-mask=0[/b].[/quote]
O ile dopuszczasz możliwość pingowania serwera. Ja mam u siebie zrobione tak, że tylko zaufane maszyny mogą pingować. xD Ale nawet jeśli, by to zostawić i zezwolić wszystkim, to coś mi nie chce ten conntrack zostawić tych ICMP w spokoju. xD
Mam niby takie regułki jako pierwsze w INPUT:
-A INPUT -p icmp -m limit --limit 20/sec -j icmp-in -A INPUT -p icmp -j DROP -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
Tam w icmp-in mam te reguły, które zezwalają tym zaufanym hostom pingować. Loguję się na jednego z tych hostów i pinguję tę maszynę. W conntracku pojawia się wpis z ICMP. Wszystkie pakiety ping są złapane przed tą regułą z ESTABLISHED,RELATED w INPUT, w OUTPUT nie ma reguł. Zatem WTF? xD U was nie pojawiają się wpisy w conntracku?
Offline
Ja do monitorowania serwerków w ogóle nie używam ICMP, tylko jabbera, albo ejabber na serwerze, w domenie, albo jakiś lekki robocik np w Perlu (20 -50 linijek kodu).
Dużo to skuteczniejsze od durnego ICMP, serwerek może tą drogą np wezwać pomoc, jak zaczyna się dziać coś naprawdę niedobrego, a np Pidgin grzecznie zameldować, kiedy serwerek się wyloguje z jabbera. :D
To jest taki przykładowy robocik:
#!/usr/bin/perl use utf8; use AnyEvent; use AnyEvent::XMPP::IM::Connection; use AnyEvent::XMPP::IM::Presence; use AnyEvent::XMPP::Util qw/split_jid/; my $j = AnyEvent->condvar; # Enter your credentials here my $cl = AnyEvent::XMPP::IM::Connection->new ( jid => 'robocik@domena.tld', password => 'HASEŁKO', ); # Callback functions. Their are plenty more but here I have only included some as an example # Also, remember that the Connection object ($con in my case), is # always the first argument in the call backs. This is according to the documentation. $cl->reg_cb ( session_ready => sub { my ($con, $acc) = @_; print "session ready\n"; # Sends a message to the user specified when the session starts and is ready my $immsg = AnyEvent::XMPP::IM::Message->new (to => 'pacjent@domena.tml', body => 'Hey man, I am a bot!'); $immsg->send ($con); }, connect => sub { print "Connected \n"; }, message => sub { my ($con, $msg) = @_; if ($msg->any_body ne ""){ my ($user, $host, $res) = split_jid ($msg->from); my $username = join("", $user,'@',$host); print "Message from " . $username . ":\n"; print "Message: " . $msg->any_body . "\n"; print "\n"; } }, stream_pre_authentication => sub { print "Pre-authentication \n"; }, disconnect => sub { my ($con, $h, $p, $reason) = @_; warn "Disconnected from $h:$p: $reason\n"; $j->broadcast; }, error => sub { my ($cl, $err) = @_; print "ERROR: " . $err->string . "\n"; }, roster_update => sub { my ($con, $roster, $contacts) = @_; for my $contact ($roster->get_contacts) { print "Roster Update: " . $contact->jid . "\n"; } }, presence_update => sub { my ($con, $roster, $contacts, $old_presence, $new_presence) = @_; for my $cont ($contacts) { if($pres = $cont->get_priority_presence ne undef){ # When user is online print "contact: " . $cont->jid . "\n"; print "Presence: " . $pres . "\n"; print "Status: " . $new_presence->show . "\n"; print "Status Message: " . $new_presence->status . "\n"; if ($cont->is_on_roster ne undef){ print "Is On Roster: " . $cont->is_on_roster() . "\n"; } } else { # When user has logged off print $cont->jid . "\n"; print "Status offline \n"; } } }, message_error => sub { print "error"; } ); $cl->connect(); $j->wait;
Do utrzymania robocika przy życiu niezależnie od okoliczności polecam daemontools.
Pozdro
Ostatnio edytowany przez Jacekalex (2016-02-26 21:57:06)
Offline
[quote=Nicram]Aaa, już teraz kumam :-)
Tylko z tym ipsetem próbuje ale już pierwsza linijka wrzuca mi do hash a ostatnia blokuje. No i nie widać timeouta :-([/quote]
U mnie też na jaju 4.4 nie pokazuje timeouta, nie wiem dlaczego, bo jeszcze niedawno pokazywał.
Jak ten stan się utrzyma na jaju 4.5, to będzie trzeba w tej sprawie trochę narozrabiać. :D
Ostatnio edytowany przez Jacekalex (2016-02-26 22:00:23)
Offline
[quote=Jacekalex][quote=Nicram]Aaa, już teraz kumam :-)
Tylko z tym ipsetem próbuje ale już pierwsza linijka wrzuca mi do hash a ostatnia blokuje. No i nie widać timeouta :-([/quote]
U mnie też na jaju 4.4 nie pokazuje timeouta, nie wiem dlaczego, bo jeszcze niedawno pokazywał.
Jak ten stan się utrzyma na jaju 4.5, to będzie trzeba w tej sprawie trochę narozrabiać. :D[/quote]
pokazuje, tylko przy tworzeniu ipseta trzeba podać timeout.
możecie podrzucić jak te regółki powinny działać? bo robię
iptables -t raw -A PREROUTING -m set --match-set wypad src -j SET --add-set wypad src --exist --timeout 86400 iptables -t raw -A PREROUTING ! -i lo -p tcp -m multiport --dports 22 -j SET --add-set wypad src --timeout 3600
jak odpalę tą drugą regółkę to wrzucany jest ip odrazu do ipseta a wtedy pierwsza robi update timeoutu. jak teraz zrobię dropa dla tego ipseta to odrazu mnie wywala :/
Offline
iptables -t raw -S | grep wypad -A PREROUTING -m set --match-set wypad src -j SET --add-set wypad src --exist --timeout 86400 -A PREROUTING ! -i lo -p tcp -m multiport --dports 22,113,445,1433,1512,2175,2176,3306,5432 -j SET --add-set wypad src --timeout 3600 -A PREROUTING -m set --match-set wypad src -j DROP
Musisz tylko pamiętać, że w tej wersji - jak zawołasz o połączenie na port pułapki - np 22 albo 3306, to przez godzinę albo cały dzień na żadnym porcie się nie połączysz.
Dlatego testuj to w domu, a na serwer wrzuć gotową i sprawdzoną wersję.
Zasada działania była i jest taka, na pierwszej próbie połączenia pacjent dostaje bana na 3600 sekund, jak w tym czasie spróbuje, to ma już bana na 86400 sekund.
Tak to działało do niedawna, ale teraz coś się zmieniło w ipsecie, już pokazuje timeouty (jak w poleceniu tworzenia dałem [b]timeout 3600[/b]), ale nikt jeszcze nie dostał 86400, więc nie wiem, czy bierze 3600 z domyślnej wartości, czy z regułki nr 2 w przykładzie.
Jutro będę znał więcej szczegółów. :D
Ostatnio edytowany przez Jacekalex (2016-02-26 22:52:14)
Offline
Time (s) | Query |
---|---|
0.00013 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00062 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.145.167.58' WHERE u.id=1 |
0.00135 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.145.167.58', 1732433937) |
0.00032 | SELECT * FROM punbb_online WHERE logged<1732433637 |
0.00006 | SELECT topic_id FROM punbb_posts WHERE id=298117 |
0.00004 | SELECT id FROM punbb_posts WHERE topic_id=28321 ORDER BY posted |
0.00034 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=28321 AND t.moved_to IS NULL |
0.00046 | SELECT search_for, replace_with FROM punbb_censoring |
0.00125 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=28321 ORDER BY p.id LIMIT 0,25 |
0.00996 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=28321 |
Total query time: 0.01457 s |