Iptables防火墻limit模塊擴展匹配規則詳解
Iptables防火墻limit模塊擴展匹配規則
@[TOC]
limit模塊的作用是針對報文的速率進行限制,限制的單位有秒、分鐘、小時、天等,例如一分鐘內隻接收10個請求報文,多餘的報文則會被丟棄。
limit模塊的常用參數:
--limit rate[/second|/minute|/hour|/day]
:指定限制的平均速率單位,以秒(s)、分(m)、時(h)、天為單位,默認是3小時。--limit-burst
:要匹配的最大初始包的數量,例如1分鐘內限制10個請求報文,那麼首先一次性會接收我們指定初始化包的數量,剩餘請求包按著速率單位來進行接收,默認值為5個報文。
1.限制每分鐘接收10個ICMP數據報文
1.先添加一條規則,限制1分鐘內隻收10個icmp協議的請求報文。
[root@jxl-1 ~]# iptables -t filter -I INPUT -p icmp -m limit –limit 10/minute -j ACCEPT2.然後添加第二條規則,超出10個報文後,其餘的報文全部丟棄。
[root@jxl-1 ~]# iptables -t filter -A INPUT -p icmp -j DROP3.查看添加的防火墻規則
[root@jxl-1 ~]# iptables -L -n -v –line-number
Chain INPUT (policy ACCEPT 1331 packets, 1111K bytes)
num pkts bytes target prot opt in out source destination
1 0 0 ACCEPT icmp — * * 0.0.0.0/0 0.0.0.0/0 limit: avg 10/min burst 5
2 0 0 DROP icmp — * * 0.0.0.0/0 0.0.0.0/0Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destinationChain OUTPUT (policy ACCEPT 1334 packets, 1844K bytes)
num pkts bytes target prot opt in out source destination
查看效果,可以看到前5個數據包都可以正常接收,那是因為limit默認初始包就是5個,因此沒有任何問題,從第六個數據包開始後,每隔6秒才會正常處理一個數據包,因為1分鐘限制10次數據包的接收,那就表示6秒收一個,效果如下圖所示。
也可以理解為是一開始可以快速通過5個數據報文,後面的數據報文是每分鐘通過10個。
2.允許10個數據報文快速通過,然後限制每分鐘接收1個個ICMP數據報文
實現思路和1)中一模一樣,隻不過就是調整一下初始包的數量。
1.先添加一條規則,限制1分鐘內隻收10個icmp協議的請求報文。
[root@jxl-1 ~]# iptables -t filter -I INPUT -p icmp -m limit –limit 1/m –limit-burst 10 -j ACCEPT
2.然後添加第二條規則,超出10個報文後,其餘的報文全部丟棄。
[root@jxl-1 ~]# iptables -t filter -A INPUT -p icmp -j DROP
效果如下,首先發送瞭10個數據包正常接收,剩下的數據包每隔1分鐘接收1個。
3.限速案例,限制網絡傳輸的帶寬不可以超過500k/s
限速如何通過limit模塊來實現呢?其實也很簡單,我們可以計算出1個數據包的大小,然後用500k的大小除以數據包的大小,得出500k能換算出多少個數據包,例如是300個,那麼最後設置1秒鐘接收的數據包的數量為300個,就可以實現每秒的傳輸速率帶寬在500k左右。
一個數據包的大小大概在1500字節。
公式:(限制的帶寬速率*1000)/(單個數據包的大小)
500k的限速,每秒可限制的數據包數量大概為(500*1000/150 = 300個)300個。
[root@jxl-1 ~]# iptables -t filter -I OUTPUT -p tcp -m limit --limit 300/s -j ACCEPT [root@jxl-1 ~]# iptables -t filter -A OUTPUT -p tcp -j DROP
速率帶寬多多少少是由落差的,如果就想限制在500k以內,可以根據測試的結果來調整每秒數據包的效果,如下圖所示,拉取文件的速率為327k/s,此時數據包的數量我是設置的120個。
以上就是Iptables防火墻limit模塊擴展匹配規則詳解的詳細內容,更多關於Iptables防火墻limit模塊的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- Iptables防火墻connlimit與time模塊擴展匹配規則
- 教你如何解決Nginx禁止ip加端口訪問的問題
- Docker容器間通信與外網通信的操作
- 為什麼MySQL分頁用limit會越來越慢
- Mysql排序的特性詳情