Ubuntu 18.04 openvpnへの接続時にDNS解決がありません


40

Gnome Network-managerを介してVPNネットワークに接続すると、DNS解決が失われ、実際には、VPNネットワーク内または外部のリソースにアクセスできません。

Ubuntu 16.04を使用していて、VPNを使用していた場合、「/etc/resolv.conf/」ファイルには接続した(VPN)ネットワークのDNSサーバーが含まれていました。現在、常に次のエントリが含まれています。

nameserver 127.0.0.53
search myprovider.com

私が理解していることから、127.0.0.53によって使用されるDNSスタブのアドレスですsystem-resolved

これは、Ubuntu 16.04でVPNが正常に機能していたため、これがバグだと思われます。VPNサービスを使用しているときにネットワークのDNSサーバーを設定する方法はありますか?

更新:

投稿の最後に構成ファイルを添付してOpenVPNネットワークに接続しようとしましたが、次のエラーが表示されます。

 Authenticate/Decrypt packet error: cipher final failed

サーバーがlzo圧縮を使用していることを確認し、同様に有効にしました。接続はアクティブなままですが、VPNの内部または外部のページに移動できません。

以下にリストされている構成ファイルには、返信に投稿されたソリューションが含まれています。

 client
 dev tun
 proto udp
 remote openvpn.bibsys.no 1194
 remote my-server-2 1194
 resolv-retry infinite
 nobind
 user myuser
 group myuser
 persist-key
 persist-tun
 ca ca-cert.pem
 cert openvpn.crt
 key openvpn.key
 cipher AES-256-CBC
 comp-lzo yes
 script-security 2
 up /etc/openvpn/scripts/update-systemd-resolved
 down /etc/openvpn/scripts/update-systemd-resolved
 down-pre

1
まったく同じに解決することができませんでしたこれと同様の問題をデバッグするときは、私が使用resolvectl statusしてresolvectl help私の具体的なソリューションを把握します。
notbad.jpeg

回答:


27

このブログ投稿で解決策を見つけました。上記の2つのソリューションがありますが、私はDNSがOpenVPNサーバーによって設定されることを意味するため、2番目のソリューションを使用することを好みます(最初のソリューションは、OpenVPNサーバーに接続しているかどうかにかかわらず同じDNSサーバーを使用することを意味します)。

要するに:

  • sudo mkdir -p /etc/openvpn/scripts
  • sudo wget https://raw.githubusercontent.com/jonathanio/update-systemd-resolved/master/update-systemd-resolved -P /etc/openvpn/scripts/
  • sudo chmod +x /etc/openvpn/scripts/update-systemd-resolved

次に、up / downスクリプトを次のように変更して、OpenVPNクライアントファイル(client.ovpnなど)を編集します。

script-security 2
# up /etc/openvpn/update-resolv-conf
# down /etc/openvpn/update-resolv-conf
up /etc/openvpn/scripts/update-systemd-resolved
down /etc/openvpn/scripts/update-systemd-resolved

(元のアップ/ダウン設定をコメントアウトしました)。


gnome openvpnユーティリティを使用している場合、config.ovpnファイルはどこに保存する必要がありますか?
オレスティス

1
config.ovpn「見つかりません」ではなく、接続に使用されるクライアント構成ファイルです。生成するか、OpenVPNプロバイダーから発行されます(呼び出されない場合がありますconfig.ovpn-のように呼び出すことができますclient.ovpn)。
アンディターファー

これは完璧に機能します。
アサヌールハケ

2
私は得るWARNING: Failed running command (--up/--down): external program fork failed
ブロックヘッド

残念ながら、これはtcpを使用しているvpnでは機能しませんでした。vpn以外のサイトは解決されないため、client.pritunl.com /#installの使用を開始しました
Saisurya Kattamuri

48

問題

ubuntu 18.04にはデフォルトでインストールされないため/etc/resolv.conf、ファイルは/etc/openvpn/update-resolv-confスクリプトによって更新されませんresolvconf

実際、そのスクリプトの最初の行の1つは、/sbin/resolvconf実行可能ファイルをチェックします。

[ -x /sbin/resolvconf ] || exit 0

スクリプトがプッシュされたDNSエントリでファイルを更新するapt-getため、resolvconfを介してインストールすることは解決策ではありませんが、tunデバイスはそれを無視するようです。/etc/openvpn/update-resolv-conf/etc/resolv.conf

溶液

  1. Ubuntu 18.04はを使用systemd-resolvedするため、systemd-resolved経由でopenvpnヘルパースクリプトをインストールするだけです。

    sudo apt install openvpn-systemd-resolved
    

    またはこれらのGitHubの指示を使用して

  2. config.ovpn次の行を追加してファイルを更新します。

    script-security 2
    up /etc/openvpn/update-systemd-resolved
    down /etc/openvpn/update-systemd-resolved
    down-pre
    

    それ/etc/openvpn/update-resolv-confは、confに上下するのではなく。

  3. DNSリークを防ぐには、config.ovpnファイルの最後に次の行を追加する必要があります(このsystemdの問題のコメントに従って)。

    dhcp-option DOMAIN-ROUTE .
    

1
Ubuntu 18.04で作業してくれてありがとう。そして、私は指定したい、そのパラメータscript-security 2はアップ/ダウンラインの前にまだ必要です、そうでなければプログラムはエラーで落ちる(OpenVPN 2.4.4)
-lucidyan

それが助けてくれてうれしいです:) 私の場合 script-security 2は必要ではなかったので、答えの最後の文を変更しました。これはおそらく、openvpnクライアントをルートとして(sudoを使用して)実行しているためです
-Qlimax

1
@Qlimaxこれらの設定をgnome openvpnクライアントにインポートする方法を知っていますか?
オレスティス

2
@ore​​stisこのパッケージをインストールするsudo apt-get install network-manager-openvpn-gnome 必要があります。その後、.ovpn構成ファイルをgnomeネットワークマネージャーにインポートできます。askubuntu.com/questions/187511/…UIは時間の経過とともに変化しました。設定
Qlimax

1
これは非常に多くの人にとって驚くべきことです。私はovpn.configを持っています、はい、しかしNetworkManagerはそれを使用していないようです。特にup / downsスクリプトを置き換えるために、ファイルを編集して再インポートしましたか。私はこの不透明なバイナリ/ usr / lib / NetworkManager / nm-openvpn-service-openvpn-helperを使用しているので、ドキュメントが見つかりませんでした。ovpn.configの再インポートが必要な場合は、回答を修正してください。
ハラルド

4

実際、この問題に対するはるかに簡単な解決策があります。問題はDNSトラフィックとUbuntu 18がそれを管理する方法にあります。デフォルトでは、OpenVPNが適切なネットワークを提供するために必要なIP転送は無効になっています。次のコマンドを実行するだけです。

sudo nano /etc/sysctl.conf

このファイルを開いたら、を含む行を探しますnet.ipv4.ip_forward。この行がコメント化されている場合は、行頭の#記号を削除します(コメント化されていない場合は、別の問題があります)。ファイルを保存してから、OpenVPNサーバーインスタンスを再起動します。

この修正では、Ubuntu 18へのアップグレード後にクライアントまたはOpenVPNコードを変更する必要はありません。テストおよび動作確認済みです。

ただし、これには明らかにサーバーを管理できることが必要です。残念ながら、このバグは、18.04で他の誰かが管理しているOpenVPNサーバーに接続するだけの多くの人に存在します...


うまくいかなかった。あなたの場合、これが問題だとどのように判断しましたか?
-hwjp

警告:openvpn クライアントでip_forwardを有効にする必要はありません、決して!セキュリティ上のリスクです。openvpn サーバーでは、使用する構成に応じて必要になる場合があり、これがおそらくこのコメントが表示される理由です。
日比田

2

2018年9月13日、Ubuntu 18.04でテスト済み

コマンドライン経由で必要なものをセットアップするための別の便利なコマンドがあります。しかし、私の場合、コマンドラインとGUIの両方でVPN接続を制御できます。

sudo nmcli connection add type vpn vpn-type openvpn con-name la.vpn.contoso.com ifname --

ifname -- デフォルトでは必須ですが、何にも影響しません

sudo nmcli connection modify la.vpn.contoso.com ipv4.dns 172.16.27.1 sudo nmcli connection modify la.vpn.contoso.com ipv4.dns-search int.contoso.com sudo nmcli connection modify la.vpn.contoso.com ipv4.never-default yes

never-default リモートゲートウェイをデフォルトルートとして使用しないでください

そして、もっと興味のある最後の仕上げ:

nmcli connection modify la.vpn.contoso.com vpn.data 'ca = /tmp/la.vpn.contoso.com/you/ca.crt, key = /tmp/you.key, dev = tun, cert = /tmp/you.crt, cert-pass-flags = 1, comp-lzo = adaptive, remote = la.vpn.contoso.com:1194, connection-type = tls'

その後、GUIでvpnを制御するか、次のコマンドを使用できます。

sudo nmcli --ask connection up la.vpn.contoso.com sudo nmcli connection down la.vpn.contoso.com


0

私も影響を受けています。私の場合、OpenVPNを内部ネームサーバー(VPN内にある)で使用しています。これは、Ubuntu 17.10(/etc/nsswitch.confの「hosts:files dns」を使用)まで機能しました。

/etc/resolv.confは、openvpnスクリプトによって(openvpnクライアント構成ファイルの/ etc / openvpn / update-resolv-confの呼び出しを介して)正しく更新されました。

しかし、VPN内のホストの名前解決はもう機能していませんでした(または少なくとも散発的に...ローカルDNSキャッシュが名前を選択していたと思いますが、かなり長い時間が経ちました)。

問題を解決する、または解決するように思える(それは言うには時期尚早ですが)は、以下のパッケージをインストールすることです:

sudo apt install openvpn-systemd-resolved

数日のうちに、これで問題が解決するかどうかの経験が増えます。

影響を受けている場合は、これを試してコメントを投稿してください!

乾杯、

マイケル。


最終的に、それは解決策ではないようです。私は再び問題を抱えています。私は...何か他のものは、それが仕事作っ推測
マイケルOpdenacker

1
たぶん、あなたはあなたの答えを削除しますか?決定はすでに下で発見されているようです
ルシディアン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.