Puncte:1

Rata hashlimit iptables nu funcționează conform așteptărilor

drapel in

Am scris următoarea regulă pentru firewall:

iptables -A INPUT -m hashlimit --hashlimit 1/ora --hashlimit-burst 3 --hashlimit-mode srcip,dstport --hashlimit-name ssh -j ACCEPT

Mă așteptam ca explozia să fie reîncărcată cu 1 după o oră, dar de fapt se reîncarcă cu una chiar mai devreme de un minut. Trimit mesaje de la același IP sursă și același port de destinație, așa că mă așteptam să accepte 3 conexiuni și apoi 1 pe oră. Dar se acceptă mai mult (unul la 20-30 de secunde). Daca folosesc --limită 1/oră Pot observa comportamentul așteptat, dar trebuie să folosesc hashlimit deoarece trebuie să filtrez pe srcip și dstport. ce fac greșit? Mulțumesc!

drapel it
Încercați să adăugați `-p tcp --syn --dport 22` la regulă - în acest moment, potriviți totul, deoarece probabil doriți să potriviți doar pachetele TCP SYN destinate portului 22. Dacă aceasta este intenția dvs., aruncați `dstport` în `hashlimit-mode` pentru că este de prisos.
Puncte:0
drapel cn

O problemă este --hashlimit 1/oră ar trebui să fie --hashlimit-până la 1/oră dacă se utilizează -j ACCEPT

vedea man iptables-extensii

Puncte:0
drapel kz

Cred că te confrunți cu intrări care expiră. O exceptare de la pagina de manual:

  --hashlimit-burst suma
         Numărul maxim inițial de pachete pentru a se potrivi: acest număr este reîncărcat de
         unul de fiecare dată când nu se atinge limita specificată mai sus, până la acest număr;
         valoarea implicită este 5. Când este solicitată potrivirea ratei bazată pe octeți, aceasta
         opțiunea specifică cantitatea de octeți care poate depăși rata dată.
         Această opțiune trebuie utilizată cu prudență -- dacă intrarea expiră, explozia
         valoarea este de asemenea resetată.

Și perioada de timp în care orice intrare hash este salvată este specificată cu opțiunea --hashlimit-htable-expire. Nu știu care este valoarea implicită pentru această intrare, dar cred că este mult mai scurtă de o oră, ceea ce ar explica de ce vă puteți conecta mai repede decât suma așteptată.

Ar trebui să vă gândiți să mai reglați aceste valori, permițând, de exemplu, una pe minut - în acest caz, serverul dvs. trebuie să-și amintească doar IP-urile din ultimul minut, și nu valoarea IP-urilor din ultima oră.

Harry avatar
drapel in
Multumesc foarte mult pentru raspuns. Tocmai am încercat să pun `--hashlimit-htable-expire 999999999` astfel încât timpul de expirare să fie de 16 minute, dar încă acceptă o conexiune la fiecare 20-30 de secunde.
Martin avatar
drapel kz
Am testat acest lucru cu ```--hashlimit-above 1/minute --hashlimit-burst 3 --hashlimit-htable-expire 300000``` și a funcționat conform așteptărilor. Deci, fie kernel-ul dvs. are erori, fie nu am nicio idee de ce exemplul dvs. nu funcționează... Vă rugăm să încercați cu 1/minut în loc de 1/oră și vedeți dacă este în continuare același.
Harry avatar
drapel in
Am încercat să folosesc ceea ce ați sugerat, dar încă nu funcționează conform așteptărilor (încă acceptă 1 conexiune la fiecare ~30 de secunde). Oricum ar trebui să limitez conexiunile cu mult mai mult de 1/minut, așa că aș avea nevoie de un număr foarte mare ca valoare de expirare, deoarece este în milisecunde.
Martin avatar
drapel kz
Există vreun motiv pentru care preferați hashlimit pentru a limita? dacă acesta din urmă funcționează conform așteptărilor, aș recomanda să îl folosiți în schimb. Este destul de greu să ne dăm seama de ce nu funcționează, cred că am exclus deja erorile de utilizare - modul în care îl utilizați ar trebui să funcționeze,, Deoarece nu funcționează - folosiți altceva în schimb.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.