iptablesを使用したDNS漏洩防止

iptablesを使用したDNS漏洩防止

openvpnサービスを起動してサーバーに接続するときは、次のコマンドを実行します。

sudo iptables -A INPUT -j DROP'
sudo iptables -A OUTPUT -j DROP
sudo iptables -A OUTPUT -o tun0 -j ACCEPT
read -p "PRESS ANY KEY TO STOP" VAR //just for easily reversing the drops when i want without bashing another file
sudo iptables -I INPUT -j ACCEPT
sudo iptables -I OUTPUT -j ACCEPT

VPNをテストするときhttps://ipleak.net/、漏れがありません。しかし、これを試してみました。https://www.dnsleaktest.com/、いくつかの漏れがあります。

Wiresharkを使用してすべての要求と応答をキャプチャし、ポート53のDNS要求とDNS応答を表示しました。 iptablesを使用してポート53に出ることをブロックしようとしましたが、dnsクエリは引き続き発生します。また、resolv confを更新してip6を無効にするために、VPNファイルにセキュリティスクリプト2を追加しました。

iptablesやufwのDNS漏洩を防ぐにはどうすればよいですか?

答え1

VPNを使用して接続されたシステムが、VPNトンネルを介してDNS要求をVPNプロバイダのDNSサーバー(または他の選択したDNSサーバー)に転送するのではなく、DNSクエリにローカルインターネットサービスプロバイダのDNSサーバーを使用するときに発生します。

VPN 以外のネットワーク インターフェイスから発信される DNS 要求を削除すると、ホスト名を使用するネットワーク アクセスが非常に遅くなる可能性があります。これは、各新しい接続の前に必要なDNSクエリがVPNによってバックアップDNSサーバーがシャットダウンされる前にタイムアウトする必要があるためです。試行)または完全に停止します(ローカルDNSリゾルバがまだVPNクライアントから新しいDNSサーバーを受信して​​おらず、ブロックしたISPサーバーのみを再試行する場合)。

単に「漏洩を防ぐ」ことを試みる代わりに、VPN接続を有効にするときにVPNプロバイダのDNSサーバーが単独で構成されていない理由を理解する必要があります。

まず、VPN接続が有効になっている場合は、ISPのDNSサーバーを参照する設定がVPNクライアントで構成されている他のDNSサーバーに置き換えられていることを確認する必要があります。

どこを見るべきかを知るには、まず実行してgrep hosts /etc/nsswitch.conf出力を確認してください。形式は次のとおりです。

hosts:  <some keywords>

これは、ホスト名を解決するために使用されるメカニズムを定義します。

<some keywords>は少なくともfiles(意味/etc/hosts)およびdnsまたはで置き換える必要がありますresolve。他のキーワードがあるかもしれません。

dnsこのツールは各ネットワークインターフェイスに関連付けられているDNS設定を追跡し、設定可能なネットワークインターフェイスの優先順位に従ってアンサンブルを作成し、ネットワークインターフェイスがシャットダウンしたときに適切なDNS設定を復元します。/etc/resolv.confresolvconf/etc/resolv.confresolvconf/etc/resolv.conf

システムで1つを使用している場合は、設定ファイルをresolvconf読み、man 5 interface-order確認して、/etc/resolvconf/interface-orderVPNインターフェイスがVPN接続が実行されている物理インターフェイスよりも高い優先順位を持っていることを確認してください。

resolveその構成を表示するためにsystemd-resolved新しい実行を使用することを示します。resolvectl statusこれは通常、古いglibcリゾルバを使用して実行されたDNSクエリを/etc/resolv.confnameserver 127.0.0.53構築しますsystemd-resolved

resolvconfVPNクライアントが両方または両方を使用しているときにツールまたはメカニズムが存在することを知らない場合、systemd-resolved結果はめちゃくちゃになります。残念ながら、これらのツールがシステムで使用されている場合は、openvpnサービスがこれらのツールと完全に統合できることを確認する必要があります。

このデーモンは、NetworkManagerネットワークインタフェースの全体的な制御にも使用できます。デーモンは、resolvconfおよび/またはシステムでこれらの他のコンポーネントが使用されていない場合は直接更新できますsystemd-resolved/etc/resolv.conf

Linuxディストリビューションの名前とバージョン、現在の設定がわからない場合は、追加のアドバイスを提供することは困難です。

より良い回答が必要な場合は、できるだけ多くの情報を含めるように質問を編集してください。

  • Linuxディストリビューションの名前とバージョンは何ですか?
  • ネットワーク管理者ですか?
  • hosts:あなたの代謝は何を言いますか/etc/nsswitch.conf
  • あなたのOpenVPNサービスはNetworkManager統合されているかresolvconf直接編集されますか/etc/resolv.conf

関連情報