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,也就是說你要把時間單位湊成整的。
Table 1?1. Limit match options
Match
--limit
Example
iptables -A INPUT -m limit --limit 3/hour
Explanation
為limit match設置最大平均匹配速率,也就是單位時間內limit?match能匹配幾個包。他的形式是個數值加一個時間單位,能是/second?/minute?/hour /day?。默認值是每小時3次(用戶角度),即3/hour?,也就是每20分鐘一次(iptables角度)。
Match
--limit-burst
Example
iptables -A INPUT -m limit --limit-burst 5
Explanation
這里定義的是limit match的峰值,就是在單位時間(這個時間由上面的--limit指定)內最多可匹配幾個包(由此可見,--limit-burst的值要比--limit的大)。默認值是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個周期內都沒有符合條件的包通過,系統都觸發值就會完全恢復。
iptables --limit --limit-burst 使用研究
1、限制特定包傳入速度
2、限制特定端口傳入頻率
3、使用--limit限制ping的一個例子
4、用戶自定義使用鏈
5、防范SYN-Flood碎片攻擊
1、限制特定包傳入速度
參數 -m limit --limit?
范例 iptables -A INPUT -m limit --limit 3/hour?
說明 用來比對某段時間內封包的平均流量,上面的例子是用來比對:每小時平均流量是否超過一次 3 個封包。 除了每小時平均?
次外,也可以每秒鐘、每分鐘或每天平均一次,默認值為每小時平均一次,參數如后: /second、 /minute、/day。 除了進行封?
數量的比對外,設定這個參數也會在條件達成時,暫停封包的比對動作,以避免因駭客使用洪水攻擊法,導致服務被阻斷。
2、限制特定包瞬間傳入的峰值
參數 --limit-burst?
范例 iptables -A INPUT -m limit --limit-burst 5?
說明 用來比對瞬間大量封包的數量,上面的例子是用來比對一次同時涌入的封包是否超過 5 個(這是默認值),超過此上限的封?
將被直接丟棄。使用效果同上。
3、使用--limit限制ping的一個例子
限制同時響應的 ping (echo-request) 的連接數
限制每分只接受一個 icmp echo-request 封包(注意:當已接受1個icmp echo-request 封包后,
iptables將重新統計接受之后的一秒內接受的icmp echo-request 封包的個數,此刻為0個,所以它會繼續接受icmp echo-request包,
出現的結果是你在1分鐘時間內將看到很多
Reply from 192.168.0.111: bytes=32 time<1ms TTL=64
Reply from 192.168.0.111: bytes=32 time<1ms TTL=64
Reply from 192.168.0.111: bytes=32 time<1ms TTL=64
Reply from 192.168.0.111: bytes=32 time<1ms TTL=64
Reply from 192.168.0.111: bytes=32 time<1ms TTL=64
Reply from 192.168.0.111: bytes=32 time<1ms TTL=64
Reply from 192.168.0.111: bytes=32 time<1ms TTL=64
Reply from 192.168.0.111: bytes=32 time<1ms TTL=64
響應結果,若你同時開好幾個ping窗口,你會發現任一時刻只有一個會有響應//--limit 1/m 所限制)
#iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/m --limit-burst 1 -j ACCEPT
#iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
--limit 1/s 表示每秒一次; 1/m 則為每分鐘一次
--limit-burst 表示允許觸發 limit 限制的最大次數 (預設 5)
4、用戶自定義使用鏈
上面例子的另一種實現方法:
#iptables -N pinglimit
#iptables -A pinglimit -m limit --limit 1/m --limit-burst 1 -j ACCEPT
#iptables -A pinglimit -j DROP
#iptables -A INPUT -p icmp --icmp-type echo-request -j pinglimit
5、防范 SYN-Flood 碎片攻擊
#iptables -N syn-flood
#iptables -A syn-flood -m limit --limit 100/s --limit-burst 150 -j RETURN
#iptables -A syn-flood -j DROP
#iptables -I INPUT -j syn-flood?
關于iptables的基本介紹能參見:
Linux iptables 應用手冊(-):
http://fanqiang.chinaunix.net/system/linux/2006-06-20/4595.shtml
Linux iptables 應用手冊(二):
http://fanqiang.chinaunix.net/system/linux/2006-06-20/4596.shtml
Linux iptables 應用手冊(三):
http://fanqiang.chinaunix.net/system/linux/2006-06-20/4597.shtml
Linux iptables 應用手冊(四):
http://fanqiang.chinaunix.net/system/linux/2006-06-20/4598.shtml
Linux iptables 應用手冊(五):
http://fanqiang.chinaunix.net/system/linux/2006-06-20/4599.shtml
Linux iptables 應用手冊(六):
http://fanqiang.chinaunix.net/system/linux/2006-06-20/4600.shtml
關于iptables拓展功能.例如:comment (備注匹配) ,string(字符串匹配,能用做內容過濾),iprang(ip范圍匹配),time(時間匹配),ipp2p(點對點匹配),connlimit(同時連接個數匹配),Nth(第n個包匹配),geoip(根據國家地區匹配). ipp2p(點對點匹配), quota(配額匹配)等等,參見:
http://bbs.chinaunix.net/viewthread.php?tid=525493
本文轉自奔跑在路上博客51CTO博客,原文鏈接http://blog.51cto.com/qiangsh/1978835如需轉載請自行聯系原作者
qianghong000
總結
以上是生活随笔為你收集整理的iptables中关于limit和limit-burst的解释的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle分析函数三——SUM,AVG
- 下一篇: QComboBox可以随意设置itemD