{"id":22,"date":"2006-12-26T11:37:55","date_gmt":"2006-12-26T09:37:55","guid":{"rendered":"http:\/\/antynet.pl\/word\/?p=22"},"modified":"2010-08-24T11:38:22","modified_gmt":"2010-08-24T09:38:22","slug":"netfilter-hashlimit","status":"publish","type":"post","link":"https:\/\/www.antynet.pl\/index.php\/2006\/12\/26\/netfilter-hashlimit\/","title":{"rendered":"Netfilter &#8211; hashlimit"},"content":{"rendered":"<p>HASHLIMIT<\/p>\n<p>1) iptables -A FORWARD -p tcp &#8211;dport 3000 -m hashlimit &#8211;hashlimit 3\/minute &#8211;hashlimit-burst 2 \\<br \/>\n&#8211;hashlimit-name dupa &#8211;hashlimit-mode dstip &#8211;hashlimit-htable-expire 60000 -j ACCEPT<br \/>\n2) iptables -A FORWARD -p tcp &#8211;dport 3000 -j DROP<\/p>\n<p>1) Podobno ma dzia\u0142a\u0107 jak LIMIT tylko rozszerzony o regu\u0142y dstip,srcip,dstport,srcport (nie zachodzi konieczno\u015b\u0107 pisania regu\u0142ki dla ka\u017cdego hosta w sieci),z tego co na razie widz\u0119 to &#8211;hashlimit-burst w rzeczywisto\u015bci zawsze jest wi\u0119kszy o 1 ni\u017c zadeklarowali\u015bmy, poza tym algorytm czasowy dzia\u0142a tak jak w LIMIT z tym wyj\u0105tkiem i\u017c je\u017celi w regule jest parametr np.: 3\/minute to nale\u017cy dopisa\u0107 do regu\u0142y &#8211;hashlimit-htable-expire 40000 co oznacza 40000 milisekund czyli dok\u0142adnie 40 sekund, jezeli tego brak to tablica ipt_hashlimit\/dupa zostaje czyszczona automatycznie po defaultowym czasie 1000 ms i wszystko si\u0119 p&#8230;&#8230;., ten czas wyliczy\u0142em z iloczynu &#8211;hashlimit-burst i przedzia\u0142u czasowego &#8211;hashlimit wynosz\u0105cego 20000 ms, chocia\u017c je\u017celi jednostk\u0105 w &#8211;hashlimit jest sec to mo\u017cna pozostawi\u0107 t\u0119 warto\u015b\u0107 default<\/p>\n<p>&#8211;hashlimit x\/sec,minute,hour,day okre\u015bla przedzia\u0142 czasowy pomi\u0119dzy seriami<br \/>\n&#8211;hashlimit-burst x okre\u015bla ilo\u015b\u0107 pakiet\u00f3w w pierwszej serii tzw.token bucket<br \/>\n&#8211;hashlimit-mode dstip,srcip,dstport,srcport wiadomo ale mo\u017cna wpisywa\u0107 kilka warto\u015b\u0107i po przecinkach<br \/>\n&#8211;hashlimit-htable-size x maksymalna liczba &#8222;bucket&#8221; czyli je\u017celi regu\u0142a jest po\u0142\u0105czona z dstip,dstport to znaczy \u017ce max mo\u017ce by\u0107 otwarte x port\u00f3w w tym samym czasie<br \/>\n&#8211;hashlimit-htable-max max ilo\u015b\u0107 wpis\u00f3w w tablicy o nazwie okre\u015blonej w &#8211;hashlimit-name<br \/>\n&#8211;hashlimit-htable-expire = (&#8211;hashlimit) * (&#8211;hashlimit-burst) czas trwania wpis\u00f3w w tablicy om\u00f3wione wy\u017cej<br \/>\n&#8211;hashlimit-htable-gcinterval x znalaz\u0142em taki opis w iptables tutorial:<br \/>\nHow often should the garbage collection function be run. Generally speaking this value should be lower than the expire value. The value is measured in milliseconds. If it is set too low it will be taking up unnecessary system resources and processing power, but if it is too high it can leave unused token buckets lying around for too long and leaving other connections impossible.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>HASHLIMIT 1) iptables -A FORWARD -p tcp &#8211;dport 3000 -m hashlimit &#8211;hashlimit 3\/minute &#8211;hashlimit-burst 2 \\ &#8211;hashlimit-name dupa &#8211;hashlimit-mode dstip &#8211;hashlimit-htable-expire 60000 -j ACCEPT 2) iptables -A FORWARD -p tcp &#8211;dport 3000 -j DROP 1) Podobno ma dzia\u0142a\u0107 jak LIMIT tylko rozszerzony o regu\u0142y dstip,srcip,dstport,srcport (nie zachodzi konieczno\u015b\u0107 pisania regu\u0142ki dla ka\u017cdego hosta w sieci),z [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[6,4],"tags":[],"class_list":["post-22","post","type-post","status-publish","format-standard","hentry","category-iptables","category-sciaga-admina"],"_links":{"self":[{"href":"https:\/\/www.antynet.pl\/index.php\/wp-json\/wp\/v2\/posts\/22","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.antynet.pl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.antynet.pl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.antynet.pl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.antynet.pl\/index.php\/wp-json\/wp\/v2\/comments?post=22"}],"version-history":[{"count":1,"href":"https:\/\/www.antynet.pl\/index.php\/wp-json\/wp\/v2\/posts\/22\/revisions"}],"predecessor-version":[{"id":23,"href":"https:\/\/www.antynet.pl\/index.php\/wp-json\/wp\/v2\/posts\/22\/revisions\/23"}],"wp:attachment":[{"href":"https:\/\/www.antynet.pl\/index.php\/wp-json\/wp\/v2\/media?parent=22"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.antynet.pl\/index.php\/wp-json\/wp\/v2\/categories?post=22"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.antynet.pl\/index.php\/wp-json\/wp\/v2\/tags?post=22"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}