Linux ベースのクライアントとのクライアントVPN接続のトラブルシューティング - AWS クライアント VPN

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Linux ベースのクライアントとのクライアントVPN接続のトラブルシューティング

次のセクションでは、ログに関する情報と、Linux ベースのクライアントを使用する際に発生する可能性のある問題について説明します。これらのクライアントの最新バージョンを実行していることを確認します。

AWS が提供するクライアント

AWS が提供するクライアントは、ログファイルと設定ファイルをシステム上の次の場所に保存します。

/home/username/.config/AWSVPNClient/

AWS が提供するクライアントデーモンプロセスは、ログファイルをシステム上の次の場所に保存します。

/var/log/aws-vpn-client/username/
問題

VPN 接続が確立された後でも、クライアントVPNエンドポイントに設定されたネームサーバーではなく、デフォルトのシステムネームサーバーにDNSクエリが送られる場合があります。

原因

クライアントは、Linux システムで利用可能なサービスである systemd-resolved とやり取りします。これは、一元的なDNS管理として機能します。これは、クライアントVPNエンドポイントからプッシュされるDNSサーバーを設定するために使用されます。この問題は、systemd-resolved がクライアントVPNエンドポイントによって提供されるDNSサーバーに最も高い優先度を設定していないために発生します。代わりに、ローカルシステムで設定されているサーバーの既存のリストにDNSサーバーを追加します。その結果、元のDNSサーバーが依然として最も優先度が高いため、DNSクエリの解決に使用される可能性があります。

ソリューション
  1. Open VPNconfig ファイルの最初の行に次のディレクティブを追加して、すべてのDNSクエリがVPNトンネルに送信されていることを確認します。

    dhcp-option DOMAIN-ROUTE .
  2. systemd-resolved で提供されるスタブリゾルバーを使用する。これを行うには、システム上で次のコマンドを実行することによって、/etc/resolv.conf から /run/systemd/resolve/stub-resolv.conf へのシンボリックリンクを設定します。

    sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
  3. (オプション) systemd-resolved でDNSクエリをプロキシせず、代わりにクエリを実際のDNSネームサーバーに直接送信する場合は、/run/systemd/resolve/resolv.conf代わりに にシンボリックリンク/etc/resolv.confします。

    sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

    この手順は、DNS応答キャッシュ、インターフェイスごとの設定、DNSSec強制など、systemd-resolved DNS設定をバイパスするために実行できます。このオプションは、 に接続されているときにパブリックDNSレコードをプライベートレコードで上書きする必要がある場合に特に便利ですVPN。例えば、 のレコードVPCを持つプライベートリDNSゾルバーがプライベート IP に解決 www.example.com されている場合があります。このオプションを使用すると、パブリック IP に解決される www.example.com のパブリックレコードを上書きできます。

OpenVPN (コマンドライン)

問題

DNS 解決が機能していないため、接続が正しく機能しません。

原因

DNS サーバーがクライアントVPNエンドポイントで設定されていないか、クライアントソフトウェアによって受け入れられていません。

ソリューション

以下のステップを使用して、DNSサーバーが正しく設定され、動作していることを確認します。

  1. ログにDNSサーバーエントリが存在することを確認します。次の例では、DNSサーバー 192.168.0.2 (クライアントVPNエンドポイントで設定) が最後の行で返されます。

    Mon Apr 15 21:26:55 2019 us=274574 SENT CONTROL [server]: 'PUSH_REQUEST' (status=1) WRRMon Apr 15 21:26:55 2019 us=276082 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1 bypass-dhcp,dhcp-option DNS 192.168.0.2,route-gateway 10.0.0.97,topology subnet,ping 1,ping-restart 20,auth-token,ifconfig 10.0.0.98 255.255.255.224,peer-id 0

    DNS サーバーが指定されていない場合は、クライアントVPN管理者にクライアントVPNエンドポイントの変更を依頼し、クライアントVPNエンドポイントにDNSサーバー (VPCDNSサーバーなど) が指定されていることを確認します。詳細については、「 AWS Client VPN 管理者ガイド」の「クライアントVPNエンドポイント」を参照してください。

  2. 次のコマンドを実行して、resolvconf パッケージがインストールされていることを確認します。

    sudo apt list resolvconf

    出力は、以下を返します。

    Listing... Done resolvconf/bionic-updates,now 1.79ubuntu10.18.04.3 all [installed]

    インストールされていない場合は、次のコマンドを使用してインストールします。

    sudo apt install resolvconf
  3. テキストエディタでクライアントVPN設定ファイル (.ovpn ファイル) を開き、次の行を追加します。

    script-security 2 up /etc/openvpn/update-resolv-conf down /etc/openvpn/update-resolv-conf

    ログをチェックして、resolvconf スクリプトが呼び出されたことを確認します。ログには、次のような行が含まれている必要があります。

    Mon Apr 15 21:33:52 2019 us=795388 /etc/openvpn/update-resolv-conf tun0 1500 1552 10.0.0.98 255.255.255.224 init dhcp-option DNS 192.168.0.2

Network Manager で VPNを開く (GUI)

問題

Network Manager OpenVPN クライアントを使用する場合、接続は次のエラーで失敗します。

Apr 15 17:11:07 OpenVPN 2.4.4 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Sep 5 2018 Apr 15 17:11:07 library versions: OpenSSL 1.1.0g 2 Nov 2017, LZO 2.08 Apr 15 17:11:07 RESOLVE: Cannot resolve host address: cvpn-endpoint-1234.prod.clientvpn.us-east-1.amazonaws.com:443 (Name or service not known) Apr 15 17:11:07 RESOLVE: Cannot resolve host Apr 15 17:11:07 Could not determine IPv4/IPv6 protocol
原因

remote-random-hostname フラグは受け入れられず、クライアントは network-manager-gnome パッケージを使用して接続できません。

ソリューション

AWS Client VPN 管理者ガイド「クライアントVPNエンドポイントDNS名を解決できない」の解決策を参照してください。