iptables通配符?iptables中關于limit和limit-burst的解釋Limit match,今天小編就來聊一聊關于iptables通配符?接下來我們就一起去研究一下吧!
iptables中關于limit和limit-burst的解釋
Limit match
這個匹配操作必須由-m limit明确指定才能使用。有了他的幫助,就能對指定的規則的日志數量加以限制,以免你被信息的洪流淹沒哦。比如,你能事先設定一個限定值,當符合條件的包的數量不超過他時,就記錄;超過了,就不記錄了。我們能控制某條規則在一段時間内的匹配次數(也就是能匹配的包的數量),這樣就能夠減少DoS syn flood攻擊的影響。這是他的主要作用,當然,更有非常多其他作用(注:比如,對于某些不常用的服務能限制連接數量,以免影響其他服務)。limit match也能用英文感歎号取反,如:-m limit ! --limit 5/s表示在數量超過限定值後,所有的包都會被匹配。
limit match的工作方式就像一個單位大門口的保安,當有人要進入時,需要找他辦理通行證。早上上班時,保安手裡有一定數量的通行證,來一個人,就簽發一個,當通行證用完後,再來人就進不去了,但他們不會等,而是到别的地方去(在iptables裡,這相當于一個包不符合某條規則,就會由後面的規則來處理,如果都不符合,就由缺省的策略處理)。但有個規定,每隔一段時間保安就要簽發一個新的通行證。這樣,後面來的人如果恰巧趕上,也就能進去了。如果沒有人來,那通行證就保留下來,以備來的人用。如果一直沒人來,可用的通行證的數量就增加了,但不是無限增大的,最多也就是剛開始時保安手裡有的那個數量。也就是說,剛開始時,通行證的數量是有限的,但每隔一段時間就有新的通行證可用。limit match有兩個參數就對應這種情況,--limit-burst指定剛開始時有多少通行證可用,--limit指定要隔多長時間才能簽發一個新的通行證。要注意的是,我這裡強調的是“簽發一個新的通行證”,這是以iptables的角度考慮的。在你自己寫規則時,就要從這個角度考慮。比如,你指定了--limit 3/minute --limit-burst 5 ,意思是開始時有5個通行證,用完之後每20秒增加一個(這就是從iptables的角度看的,要是以用戶的角度看,說法就是每一分鐘增加三個或每分鐘隻能過三個)。你要是想每20分鐘過一個,隻能寫成--limit 3/hour --limit-burst 5,也就是說你要把時間單位湊成整的。
假設如下的規則:
iptables -A INPUT -p icmp -m limit --limit 6/m --limit-burst 5 -j ACCEPT
iptables -P INPUT DROP
然後從另一部主機上ping這部主機,就會發生如下的現象:
首先我們能看到前四個包的回應都非常正常,然後從第五個包開始,我們每10秒能收到一個正常的回應。這是因為我們設定了單位時間(在這裡是每分鐘)内允許通過的數據包的個數是每分鐘6個,也即每10秒鐘一個;其次我們又設定了事件觸發閥值為5,所以我們的前四個包都是正常的,隻是從第五個包開始,限制規則開始生效,故隻能每10秒收到一個正常回應。
假設我們停止ping,30秒後又開始ping,這時的現象是:
前兩個包是正常的,從第三個包開始丢包,這是因為在這裡我的允許一個包通過的周期是10秒,如果在一個周期内系統沒有收到符合條件的包,系統的觸發值就會恢複1,所以如果我們30秒内沒有符合條件的包通過,系統的觸發值就會恢複到3,如果5個周期内都沒有符合條件的包通過,系統都觸發值就會完全恢複。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!