Debian
在轉發的數據包中阻止或丟棄 DNS 請求
我在 minipc 中安裝了一個預設的 Debian 9,它可以進一步轉發數據包。
我希望能夠通過域阻止主機,這意味著如果任何轉發的 DNS 類型的數據包有請求,例如 youtube.com,它應該被丟棄。我知道有一些方法可以將它們放在 iptables 規則中,但不建議使用這種技術。
恐怕設置 dnsmasq 或 bind 不起作用,因為很少有電腦硬編碼了Google的 8.8.8.8 DNS 伺服器(很少有 IoT 設備)。
那麼有沒有辦法:
- 通過我的 dnsmasq/bind 強制 DNS 解析(所以我可以設置黑名單)
- 在沒有 iptables 的情況下丟棄包含“youtube.com”的 DNS 請求數據包
有任何想法嗎?
iptables
單靠DNS數據包內容無法做出決定,只能通過數據標頭上的地址和埠號做出決定。至少,您需要像 iptables-ext-dns 這樣的 iptables 擴展。但在我看來,您可能希望對 DNS 進行透明代理:您可以設置 minipc 以將任何去往埠 53(UDP 或 TCP)的傳出數據包重定向到您選擇的 DNS 伺服器,然後配置該 DNS伺服器來根據需要操縱答案。您將實質上對通過您的 minipc 的所有 DNS 流量執行中間人攻擊。
您還應該知道,有一些新技術旨在對 DNS 流量進行加密保護,例如基於HTTPS 的 DNS(Firefox 62 或更高版本已經支持)或基於TLS 的 DNS。
如果您的客戶端使用這些,目標埠 53 的簡單流量重定向將無法擷取這些請求 - 即使您採取額外步驟來擷取流量,明顯的 DNS-over-whatever 伺服器具有與預期不同的證書將揭示您的操縱。
此外,您應該知道Youtube 不僅可以作為 youtube.com 訪問,還可以作為 youtu.be 訪問,也可能通過其他域訪問。