日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

Iptables防火墻limit模塊擴(kuò)展匹配規(guī)則詳解_安全相關(guān)

作者:jiangxl ? 更新時(shí)間: 2022-10-01 編程語(yǔ)言

Iptables防火墻limit模塊擴(kuò)展匹配規(guī)則

@[TOC]

limit模塊的作用是針對(duì)報(bào)文的速率進(jìn)行限制,限制的單位有秒、分鐘、小時(shí)、天等,例如一分鐘內(nèi)只接收10個(gè)請(qǐng)求報(bào)文,多余的報(bào)文則會(huì)被丟棄。

limit模塊的常用參數(shù):

  • --limit rate[/second|/minute|/hour|/day]:指定限制的平均速率單位,以秒(s)、分(m)、時(shí)(h)、天為單位,默認(rèn)是3小時(shí)。
  • --limit-burst:要匹配的最大初始包的數(shù)量,例如1分鐘內(nèi)限制10個(gè)請(qǐng)求報(bào)文,那么首先一次性會(huì)接收我們指定初始化包的數(shù)量,剩余請(qǐng)求包按著速率單位來(lái)進(jìn)行接收,默認(rèn)值為5個(gè)報(bào)文。

1.限制每分鐘接收10個(gè)ICMP數(shù)據(jù)報(bào)文

1.先添加一條規(guī)則,限制1分鐘內(nèi)只收10個(gè)icmp協(xié)議的請(qǐng)求報(bào)文。
[root@jxl-1 ~]# iptables -t filter -I INPUT -p icmp -m limit --limit 10/minute -j ACCEPT

2.然后添加第二條規(guī)則,超出10個(gè)報(bào)文后,其余的報(bào)文全部丟棄。
[root@jxl-1 ~]# iptables -t filter -A INPUT -p icmp -j DROP?

3.查看添加的防火墻規(guī)則
[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/0 ? ? ? ? ??

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num ? pkts bytes target ? ? prot opt in ? ? out ? ? source ? ? ? ? ? ? ? destination ? ? ? ??

Chain OUTPUT (policy ACCEPT 1334 packets, 1844K bytes)
num ? pkts bytes target ? ? prot opt in ? ? out ? ? source ? ? ? ? ? ? ? destination ?

查看效果,可以看到前5個(gè)數(shù)據(jù)包都可以正常接收,那是因?yàn)閘imit默認(rèn)初始包就是5個(gè),因此沒(méi)有任何問(wèn)題,從第六個(gè)數(shù)據(jù)包開(kāi)始后,每隔6秒才會(huì)正常處理一個(gè)數(shù)據(jù)包,因?yàn)?分鐘限制10次數(shù)據(jù)包的接收,那就表示6秒收一個(gè),效果如下圖所示。

也可以理解為是一開(kāi)始可以快速通過(guò)5個(gè)數(shù)據(jù)報(bào)文,后面的數(shù)據(jù)報(bào)文是每分鐘通過(guò)10個(gè)。

2.允許10個(gè)數(shù)據(jù)報(bào)文快速通過(guò),然后限制每分鐘接收1個(gè)個(gè)ICMP數(shù)據(jù)報(bào)文

實(shí)現(xiàn)思路和1)中一模一樣,只不過(guò)就是調(diào)整一下初始包的數(shù)量。

1.先添加一條規(guī)則,限制1分鐘內(nèi)只收10個(gè)icmp協(xié)議的請(qǐng)求報(bào)文。
[root@jxl-1 ~]# iptables -t filter -I INPUT -p icmp -m limit --limit 1/m --limit-burst 10 -j ACCEPT

2.然后添加第二條規(guī)則,超出10個(gè)報(bào)文后,其余的報(bào)文全部丟棄。
[root@jxl-1 ~]# iptables -t filter -A INPUT -p icmp -j DROP?

效果如下,首先發(fā)送了10個(gè)數(shù)據(jù)包正常接收,剩下的數(shù)據(jù)包每隔1分鐘接收1個(gè)。

3.限速案例,限制網(wǎng)絡(luò)傳輸?shù)膸挷豢梢猿^(guò)500k/s

限速如何通過(guò)limit模塊來(lái)實(shí)現(xiàn)呢?其實(shí)也很簡(jiǎn)單,我們可以計(jì)算出1個(gè)數(shù)據(jù)包的大小,然后用500k的大小除以數(shù)據(jù)包的大小,得出500k能換算出多少個(gè)數(shù)據(jù)包,例如是300個(gè),那么最后設(shè)置1秒鐘接收的數(shù)據(jù)包的數(shù)量為300個(gè),就可以實(shí)現(xiàn)每秒的傳輸速率帶寬在500k左右。

一個(gè)數(shù)據(jù)包的大小大概在1500字節(jié)。

公式:(限制的帶寬速率*1000)/(單個(gè)數(shù)據(jù)包的大小)

500k的限速,每秒可限制的數(shù)據(jù)包數(shù)量大概為(500*1000/150 = 300個(gè))300個(gè)。

[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以內(nèi),可以根據(jù)測(cè)試的結(jié)果來(lái)調(diào)整每秒數(shù)據(jù)包的效果,如下圖所示,拉取文件的速率為327k/s,此時(shí)數(shù)據(jù)包的數(shù)量我是設(shè)置的120個(gè)。

原文鏈接:https://juejin.cn/post/7127958301685317669

欄目分類
最近更新