STUN/TURN 流量的 iptable 匹配規則

STUN/TURN 流量的 iptable 匹配規則

我正在尋找來自 443 連接埠的 TURN/STUN 封包。根據 TURN RFC,位元組 46 到 49 是 TURN 封包 magic cookie '2112a442'。這裡是wireshark的螢幕截圖,我發現STUN cookie是從46到49

我正在使用-m u32 --u32 "46=0x2112A442" 但無法過濾它們。

這是我完整的 iptable 規則

-A PREROUTING -i eth0 -p tcp --dport 443 -m u32 --u32 "46=0x2112A442" -j REDIRECT --to-port 3478

知道我可能做錯了什麼嗎?

答案1

iptables u32 模組偏移量是指封包減去乙太網路包裝器(減去來源和目標MAC,各6 個位元組,以及乙太類型,2 個位元組)。 ,應為32 。

現在,為了進行健全性檢查,找到服務位元組的類型,我們從 u32 區域知道該類型iptables-extensions 的手冊頁位於偏移量 9 處,我們也知道 UDP 的偏移量為 0x11 (17)。它位於 Wireshark 螢幕截圖的位元組 0x17 (23) 處。從那裡開始計數,我們還得到 32 作為您應該使用的偏移量。

編輯 1:由於協定是 UDP,您還需要調整 iptables 命令的該部分。所以:

sudo iptables -A PREROUTING -i eth0 -p udp --dport 443 -m u32 --u32 "32=0x2112A442" -j REDIRECT --to-port 3478

編輯2:在您的範例wireshark螢幕截圖中,目標連接埠是5004,而不是443。也許這個:

sudo iptables -A PREROUTING -i eth0 -p udp --dport 5004 -m u32 --u32 "32=0x2112A442" -j REDIRECT --to-port 3478

相關內容