iptables 在某個連接埠上「重寫」請求?

iptables 在某個連接埠上「重寫」請求?

好吧,我的情況基本上是這樣的...我有一個充當路由器的盒子,有 2 個接口,eth0並且eth1.eth1是我的上行鏈路,也就是說,它是盒子取得網路連線的介面。eth0是下行鏈路,即連接其他設備/交換器/無線 AP/您所擁有的設備的介面。

我想以某種方式,使用 iptables,使所有源自 53 連接埠的任何位址的請求都eth0應該發送到運行於 的 DNS 伺服器127.0.0.1,並且當該 DNS 伺服器發送答复時,發送請求的電腦應該回复看起來像是來自他們實際將資料包發送到的地址。

例如,假設有一台電腦已連線並eth0設定為用作8.8.8.8DNS 伺服器。路由機的 DNS 伺服器有一筆example.com指向 的記錄192.0.2.1。機器上有人連接eth0運作dig example.com @8.8.8.8。他們收到的回應看似來自8.8.8.8,但實際上來自路由盒,並且該回應表示 example.com 的 A 記錄是192.0.2.1

我怎樣才能做到這一點?

請注意,這需要適用於任何 DNS 伺服器位址,而不僅僅是8.8.8.8.

答案1

你需要特定的軟體來執行此操作,這被認為是邪惡的。透過對 DNS 流量進行中間人攻擊來破壞網路正是 DNSSec 等產品推出的原因。

如果您想查看,您可能需要檢查「DNS 攔截」和「透明 DNS 代理」的結果。我想到的一些東西是梭子魚防火牆,dnschef也許各種網路過濾套件都提供此功能。

相關內容