首頁 > 軟體

Iptables防火牆connlimit與time模組擴充套件匹配規則

2022-08-10 18:02:03

Iptables防火牆connlimit模組擴充套件匹配規則

connlimit模組的作用是限制請求報文對特定服務的並行連線數限制的,例如Telnet服務,預設情況下沒有並行連線數的限制,可以允許n個使用者端同時連線,如果應用了connlimit模組,可以對並行連線數進行限制。

connlimit模組常用引數:

  • --connlimit-upto:如果現有連線數小於或等於設定的並行連線數值,那麼就放行。
  • --connlimit-above:如果現有連線數大於設定的並行連線數值,那麼就放行。

案例:每個使用者端主機僅允許同時對本機發起兩個ssh連線。

資料流入的操作,在INPUT鏈的filter表新增相應的規則。

1)編寫具體的防火牆規則

[root@jxl-1 ~]# iptables -t filter -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 2 -j REJECT

2)檢視設定的規則

[root@jxl-1 ~]# iptables -L -n -v --line-number 
Chain INPUT (policy ACCEPT 52358 packets, 43M bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22 #conn src/32 > 2 reject-with icmp-port-unreachable
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
Chain OUTPUT (policy ACCEPT 52598 packets, 68M bytes)
num   pkts bytes target     prot opt in     out     source               destination 

3)測試效果

同時登陸兩個ssh沒問題,第三個時就提示無法連線了。

Iptables防火牆time模組擴充套件匹配規則

time模組的作用是根據時間範圍來匹配報文,例如在上午的8點30到下午18點30關於瀏覽淘寶的報文都拒絕。

time模組的常用引數:

  • --timestart:指定開始時間。
  • --timestop:指定結束時間。
  • --monthdays:指定一個月中的某一天。
  • --weekdays:指定一週中的週期,例如1-7。
  • --kerneltz:使用核心時區的時間。

可以在引數前面加!號表示去反。

time模組預設使用的實際UTC時間,UTC時間比我們正常的時間慢8小時。

案例:在週一到週五的8:00到18:00禁止存取淘寶網站。

此案例也是將防火牆看做了是路由器,在流量流出時定義防火牆規則,也就是在防火牆的OUTPUT鏈定義規則。

1)編寫防火牆規則

在週一到週五的8點到18點時間段,所有發往taobao.com的TCP 80埠的報文都會被拒絕。

[root@jxl-1 ~]# iptables -t filter -I OUTPUT -p tcp -d taobao.com --dport 80 -m time --timestart 00:00 --timestop 10:00 --weekdays 1,2,3,4,5 -j DROP

2)檢視設定的防火牆規則

淘寶網的地址有很多,寫入防火牆後,會將解析出來的多個IP地址都寫入到表中,如下圖所示。

3)測試效果

在週一到週五的早上8點到晚上18點的範圍之間,再想存取淘寶網,則會被攔截。

以上就是Iptables防火牆connlimit與time模組擴充套件匹配規則的詳細內容,更多關於Iptables防火牆connlimit time的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com