使用 dnsmasq.conf 阻止內部 IP 位址

使用 dnsmasq.conf 阻止內部 IP 位址

人們可以在conf檔案中執行類似的操作來阻止WAN站點:

address=/verystrangesite.com/127.0.0.1

因此,如果使用者嘗試在我的訪客區域網路上嘗試一些不太有趣的事情,他會收到 ERR_CONNECTION_REFUSED。

不幸的是,這不適用於內部網站(路由器、網關、hwfw、ip cam),至少如果它們只能透過 IP 存取的話(不知道如果我有像 my-ip.com 這樣的東西而不是172.16.1.54 )。我嘗試過的看起來像這樣:

address=/172.16.1.2/127.0.0.1

那麼,您知道實現此目的的正確語法嗎?

先感謝您

托比亞斯

答案1

沒有正確的語法來實現這一點。

dnsmasq 只是一個 DNS 伺服器 – 它才不是它位於所有網路流量的中間,僅回應 DNS 查詢並將網域名稱轉換為 IP 位址。你的 dnsmasq 範例沒有堵塞這些站點,它們只是欺騙 DNS 查詢結果(並且僅當客戶端使用您的 DNS 時)。

用戶端嘗試透過 IP 位址直接存取網站不使用DNS 先解析它-可以說,位址已經「預先解析」。因此,有dnsmasq 配置可能會影響此類連線。

相反,要透過 IP 位址封鎖任意主機,請在路由器的防火牆(Linux iptables/nft/ferm,BSD pf)。若要產生「連線被拒絕」錯誤訊息,請新增一條將「拒絕」連線的防火牆規則:

iptables -I FORWARD [...] -d 172.16.1.2 -p tcp -j REJECT --reject-with tcp-reset
iptables -I FORWARD [...] -d 172.16.1.2 ! -p tcp -j REJECT --reject-with icmp-port-unreachable

相關內容