首頁 > 軟體

Iptables防火牆tcp-flags模組擴充套件匹配規則詳解

2022-08-10 18:03:25

Iptables防火牆tcp-flags模組擴充套件匹配規則

tcp-flags模組的作用是判斷TCP協定資料包文標誌位的返回值的,在TCP的三次握手中,第一次握手使用者端向伺服器傳送syn=1的資料包文,第二次握手伺服器端向用戶端傳送sync和ack=1的報文,第三次握手使用者端向伺服器端傳送ack=1的報文。

tcp-flags模組就是來判斷傳送報文中指定的標誌位是否等於1,並且該條報文中只包含指定的標誌位,否則就拒絕通行,例如我們指定的標誌位是SYN,那麼該條報文中就只能包含SYNC,如果再包含ACK,那麼就不放行,並且標誌位的值要為1。

**案例:**

只允許其他使用者端傳送TCP請求報文到本機,本機響應可以,但是本機不可向其他主機傳送TCP請求報文。

  • 首先來分析,"只允許其他使用者端傳送TCP請求到本機",根據這句話可以明確是在INPUT鏈新增相應的規則,使用者端發起請求一共需要傳送2次TCP握手,分別是第一次握手和第三次握手,通過tcp-flags模組確保使用者端傳送的報文中標誌位都是正確的,需要在INPUT鏈新增3條規則,第一條規則是匹配使用者端傳送的報文中是否只包含syn標誌位,並且值是否等於1,第二條規則是匹配使用者端傳送的報文中是否只包含ack,並且值是否等於1,如果這兩條規則都滿足,那麼就說明是使用者端向伺服器端傳送的請求,最終的動作是允許,第三條規則是拒絕其他標誌位的TCP連線請求。
  • 然後來分析"本機只可以響應使用者端發起的TCP請求,但是本機不可以向其他使用者端傳送請求",根據這句話可以明確出規則是要新增在OUTPUT鏈的,我們只需要在OUTPUT鏈新增上第二次握手所包含的TCP標誌位的規則,完成響應使用者端的TCP連線請求,最後在新增一條規則,禁止其他的TCP標誌位從OUTPUT鏈發出,也就可以拒絕本機向其他的使用者端發起TCP請求。

tcp-flags模組使用的命令格式:--tcp-flags {標誌位集合} {要判斷哪個標誌位等於1}

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

1.新增允許使用者端向本機發起TCP請求的規則
#syn=1的標誌位規則
[root@jxl-1 ~]# iptables -t filter -I INPUT -p tcp -m tcp --dport 22 --tcp-flags SYN,ACK,FIN,RST SYN -j ACCEPT
#ack=1的標誌位規則
[root@jxl-1 ~]# iptables -t filter -I INPUT -p tcp -m tcp --dport 22 --tcp-flags SYN,ACK,FIN,RST ACK -j ACCEPT
#其餘的報文都拒絕
[root@jxl-1 ~]# iptables -t filter -A INPUT -j DROP
2.新增本機響應使用者端TCP連線請求以及拒絕發起TCP請求的規則
#syn和ack都等於1
[root@jxl-1 ~]# iptables -t filter -I OUTPUT -p tcp --sport 22 -m tcp --tcp-flags SYN,ACK,FIN,RST SYN,ACK -j ACCEPT
#ack-1
[root@jxl-1 ~]# iptables -t filter -I OUTPUT -p tcp --sport 22 -m tcp --tcp-flags SYN,ACK,FIN,RST ACK -j ACCEPT
#其餘的報文全部拒絕
[root@jxl-1 ~]# iptables -t filter -A OUTPUT -j DROP

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

[root@jxl-1 ~]# iptables -L -n -v --line-number
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1       82  6416 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22 flags:0x17/0x10
2        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22 flags:0x17/0x02
3     5169 1958K DROP       all  --  *      *       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 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1       41  4348 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp spt:22 tcp flags:0x17/0x10
2        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp spt:22 tcp flags:0x17/0x12
3      293 65316 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           

3)檢視效果

本機無法發起TCP連線請求。

其他主機可以向本機發起TCP連線。

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


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