2023年2月22日 星期三

[Linux] iptables無法過濾URL問題

假設今天用iptable drop www.google.com

iptable command: 
iptables -I FOEWARD -m string --string “google.com" --algo bm -j DROP

但卻無法擋住(drop)www.google.com ...

此問題要從DNS Query看起,DNS Query有兩種方式:
  1. HTTP2.0: DNS Query → TCP handshake → TLS handshake
  2. HTTP3.0: DNS Query → QUIC handshake

在DNS message format內,會把www.google.com轉成 |03|www|06|google|03|com (下圖紅框處)
(|03|和|06|表示後面字串的長度)
所以是沒辦法從DNS message format中找到完整的www.google.com

明碼的www.google.com只會出現在TLS封包,也就是只有在HTTP2.0時候才能用iptables drop特定的URL,在HTTP3.0封包內是無法看到明碼的www.google.com

所以iptables的drop URL功能無法有效地用在 HTTP3.0上面.

DNS format:





圖片來源及參考資料:

沒有留言:

張貼留言