OpenVPN に接続した後、デフォルトの DNS サーバーが切り替わらない

OpenVPN に接続した後、デフォルトの DNS サーバーが切り替わらない

ラップトップとサーバーの間で OpenVPN 接続を使用しています。今日まで設定は機能していました (単に を実行しただけですapt update && apt upgrade) が、それ以降、OpenVPN に接続した後、DNS 設定が「間違って」います。

OpenVPN サーバーに接続した後、構成DNS Domain: ~.に 2 つの「キャッチオール」DNS ドメイン エントリ ( )がありますsystemd-resolve

出力を削除しましたsystemd-resolve --status:

Link 11 (tun0)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 192.168.X.Y
          DNS Domain: ~.

Link 2 (enp0s25)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 10.16.X.Y
                      10.16.X.Y
          DNS Domain: ~.

したがって、DNS クエリは VPN を介して安全にトンネリングされるのではなく、通常のネットワーク経由で転送される可能性もあります。

これにより DNSLeak が発生し、さらに悪いことに、VPN 内部ホスト名が正しく解決されなくなります (時々)。

DNS Domain: ~.解決済みのエントリを tun0 インターフェイスに追加するオプションしか知りません。しかし、実際のインターフェイスから既存のエントリを削除するにはどうすればよいでしょうか?

私はすでにこの設定を使用して、OpenVPN client.conf の systemd-resolved を更新しています。

# Upate systemd-resolvd
up /etc/openvpn/update-systemd-resolved
down /etc/openvpn/update-systemd-resolved
down-pre
dhcp-option DOMAIN-ROUTE .

これを解決する方法を誰か知っていますか?

// 更新: これは、NetworkManager がルート DNS ドメインをリンクにランダムに関連付け始めるという、以前から知られている問題のようです。これについては、次のサイトで興味深い議論があります。GitHub の問題スクリプトの開発者のリポジトリ内update-systemd-resolved

// おそらくこのコミットNetworkManager によってそれが壊れました。すべてのインターフェースの動作にデフォルトの DNS ルートが導入されたためです。

答え1

OpenVPN サーバーからダウンロードしたクライアント構成ファイル (拡張子 .ovpn のファイル) に次の行を追加します。

dhcp-option DOMAIN-ROUTE .

ご存知のとおり、この行を追加する前に、Ubuntu 18.04では、update-systemd-resolved以下の説明に従ってスクリプトをインストールする必要があります。https://github.com/jonathanio/update-systemd-resolved

それでも動作しない場合は、内部 DNS サーバーも追加する必要がある可能性があります。.ovpn ファイルの最後に追加する行が次のようになっているかどうかを確認します。

script-security 2
dhcp-option DNS 10.1.0.1  # replace this IP with your DNS server IP.
dhcp-option DOMAIN yourinternaldomain.local  # replace this with your internal domain name.
dhcp-option DOMAIN-ROUTE .
up /etc/openvpn/update-systemd-resolved
down /etc/openvpn/update-systemd-resolved
down-pre

UI(gnome)を使用して接続する場合

最後に、UI VPN アイコンを使用して VPN に接続する場合は、変更された .ovpn ファイルを再インポートする必要があります。

それを実行するには、ターミナルで次のコマンドを実行します。

sudo apt install openvpn openvpn-systemd-resolved resolvconf
sudo apt install network-manager-openvpn network-manager-openvpn-gnome

Ubuntu スタート メニューをクリックします:

Ubuntu メニュー

「ネットワーク」という単語を入力し、「ネットワーク」をクリックします。次のようなものが表示されます。

ネットワークセットアップ

+「VPNにサインオンし、「ファイルからインポート」オプションをクリックします。

ovpn ファイルをインポートする

インポートしたら、名前を追加し、ダイアログの右上にある「追加」ボタンをクリックします。

準備万端です!


VPN に接続するには、ネットワーク アイコンをクリックし、その後ロック アイコンをクリックします。

ここに画像の説明を入力してください

関連情報