假設今天用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有兩種方式:
- HTTP2.0: DNS Query → TCP handshake → TLS handshake
- 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:
圖片來源及參考資料:
沒有留言:
張貼留言