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.conf
resolvconf
/etc/resolv.conf
resolvconf
/etc/resolv.conf
システムで1つを使用している場合は、設定ファイルをresolvconf
読み、man 5 interface-order
確認して、/etc/resolvconf/interface-order
VPNインターフェイスがVPN接続が実行されている物理インターフェイスよりも高い優先順位を持っていることを確認してください。
resolve
その構成を表示するためにsystemd-resolved
新しい実行を使用することを示します。resolvectl status
これは通常、古いglibcリゾルバを使用して実行されたDNSクエリを/etc/resolv.conf
再nameserver 127.0.0.53
構築しますsystemd-resolved
。
resolvconf
VPNクライアントが両方または両方を使用しているときにツールまたはメカニズムが存在することを知らない場合、systemd-resolved
結果はめちゃくちゃになります。残念ながら、これらのツールがシステムで使用されている場合は、openvpnサービスがこれらのツールと完全に統合できることを確認する必要があります。
このデーモンは、NetworkManager
ネットワークインタフェースの全体的な制御にも使用できます。デーモンは、resolvconf
および/またはシステムでこれらの他のコンポーネントが使用されていない場合は直接更新できますsystemd-resolved
。/etc/resolv.conf
Linuxディストリビューションの名前とバージョン、現在の設定がわからない場合は、追加のアドバイスを提供することは困難です。
より良い回答が必要な場合は、できるだけ多くの情報を含めるように質問を編集してください。
- Linuxディストリビューションの名前とバージョンは何ですか?
- ネットワーク管理者ですか?
hosts:
あなたの代謝は何を言いますか/etc/nsswitch.conf
?- あなたのOpenVPNサービスは
NetworkManager
統合されているかresolvconf
直接編集されますか/etc/resolv.conf
?