Iptables防火墻connlimit與time模塊擴展匹配規則

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的資料請關註WalkonNet其它相關文章!

推薦閱讀: