NATゲートウェイ(iptables)でDNSサーバーをオーバーライドする方法

NATゲートウェイ(iptables)でDNSサーバーをオーバーライドする方法

openvpn を実行する Ubuntu サーバーがあり、iptables は VPN サーバーを介して着信するすべてのトラフィックをプッシュするために使用されます。 IP テーブルの構成は非常に基本的で、次の一連のコマンドで生成されます。

sudo iptables --flush
sudo iptables --table nat --flush
sudo iptables --delete-chain
sudo iptables --table nat --delete-chain
sudo iptables --table nat --append POSTROUTING --out-interface tun0 -j MASQUERADE
sudo iptables --append FORWARD --in-interface eth0 -j ACCEPT

次の2行を追加して、特定のDNSサーバーを強制的にトラフィックを再構築しようとしました。

sudo iptables --table nat --append PREROUTING -i eth0 -p tcp --sport 53 -j DNAT --to-destination 146.148.119.121:53
sudo iptables --table nat --append PREROUTING -i eth0 -p udp --sport 53 -j DNAT --to-destination 146.148.119.121:53

nslookup www.netflix.comただし、必要に応じて動作しません(および出力が異なりますnslookup www.netflix.com 8.8.8.8)。

これを達成する方法について提案がありますか?

答え1

--sport 53使用しないでください--dport 53

答え2

彼らは皆権威ある答えだと言いますか?

Netflixはロードバランシングを使用しているため、最も近い使用率のないサーバーに接続されます。ただし、ファイアウォールルールは使用されるDNSサービスとは何の関係もなく、通信しているポートのみがブロックまたは許可されています。

名前の検索に使用するDNSサービスがこの/etc/resolve.confファイルにあります。どのネットワークからアドレスを要求しても、名前を見つけるためにインターネットを介してそのホストに移動します。 dhcpcを使用すると、このファイルが更新され、DNSサーバーがIP番号とゲートウェイアドレスと共に送信されます。送信されたスクリプトを使用できないようにするには、スクリプトを編集する必要があります。使用したいファイルがわかっている場合は、ファイルに入れて書き込みビットをオフにして、更新するスクリプトが見つからない場合は変更できないようにしてください。システムログには、ファイルに書き込むときにどのスクリプトが失敗したかが表示されることがあります。古いアドレスを削除するには、テーブルを更新することを忘れないでください。

私はいつも自分のコンピュータと簡単に会話できるように、独自のネーミングサービスを実行します。私のdhcpdはIP、DNSサーバー、ゲートウェイボックスを提供しています。

関連情報