SSL-VPN 接続の使用中に問題が発生した場合は、SSL-VPN クライアントのログ、または VPN Gateway コンソールの SSL-VPN 接続ログを確認して、問題のトラブルシューティングを行ってください。
背景情報
このトピックでは、一般的な SSL-VPN 接続の問題とトラブルシューティング手順について説明します。SSL-VPN クライアントのログ、または VPN Gateway コンソールの SSL-VPN 接続ログを確認してください。詳細については、「概要表」セクションをご参照ください。
Linux、Windows、macOS、または Android で SSL-VPN クライアントのログを照会する方法については、このトピックの「SSL-VPN クライアントのログファイルの場所」セクションをご参照ください。
SSL-VPN 接続ログの照会については、「SSL サーバーのログの照会」をご参照ください。
SSL-VPN クライアントのログファイルの場所
デフォルトのログファイルの場所は、クライアントのオペレーティングシステムによって異なります。次の表に、サポートされている各オペレーティングシステムのデフォルトのログファイルディレクトリを示します。
VPN アプリケーションのインストール時にカスタムディレクトリを指定した場合、ログファイルはそのディレクトリにあります。
オペレーティングシステム | デフォルトのログファイルディレクトリ |
OpenVPN がインストールされている Linux クライアント | /var/log/openvpn.log |
OpenVPN がインストールされている Windows クライアント | デフォルトでは、ログファイルは OpenVPN がインストールされているディレクトリの log フォルダーに保存されます。 例: C:\Users\User\OpenVPN\log。 |
Tunnelblick がインストールされている macOS クライアント | /Library/Application Support/Tunnelblick/Logs |
OpenVPN がインストールされている macOS クライアント | /Library/Application Support/OpenVPN/log/connection_name.log |
一般的な SSL-VPN 接続の問題とトラブルシューティング
SSL-VPN 接続ログを取得したら、関連するキーワードを検索して問題を特定します。次の表に、一般的な問題、キーワード、およびトラブルシューティングの手順を示します。
カテゴリ | 原因 | キーワード | 解決策 |
ネットワーク接続の失敗 | ネットワーク通信が異常です。 |
|
|
プロトコルまたはポート番号の不一致 | クライアントと SSL サーバーが異なるプロトコルまたはポートを使用しています。 |
| SSL サーバーでプロトコルとポートを変更してから、クライアントに新しい SSL クライアント証明書をダウンロードしてインストールします。 |
接続超過 | SSL-VPN 接続数が上限を超えています。 |
|
|
証明書の有効期限切れ | SSL クライアント証明書が期限切れです。 |
|
|
証明書の設定エラー | 証明書の設定が無効です。 |
| 現在の SSL クライアント証明書とそのすべての設定を削除してから、新しい証明書をダウンロードしてクライアントにインストールしてください。 |
互換性のない VPN アプリケーションのバージョン | クライアントにインストールされている VPN アプリケーションのバージョンが、Alibaba Cloud の SSL サーバーと互換性がありません。 |
| クライアントから既存の VPN アプリケーションをアンインストールし、SSL サーバーと互換性のあるバージョンをインストールしてください。詳細については、「クライアントを VPC に接続」トピックの「ステップ 4: クライアントの設定」セクションをご参照ください。 |
IP アドレスの不足 | SSL サーバーのクライアント CIDR ブロックに十分な IP アドレスがありません。 |
| クライアント CIDR ブロック内の IP アドレス数が、VPN Gateway でサポートされる SSL-VPN 接続の最大数の少なくとも 4 倍であることを確認してください。詳細については、「SSL サーバーの作成と管理」をご参照ください。 たとえば、クライアント CIDR ブロックとして 192.168.0.0/24 を指定した場合、システムはまず 192.168.0.0/24 からサブネットマスクが 30 のサブネット CIDR ブロック (例:192.168.0.4/30) を分割します。このサブネットは最大 4 つの IP アドレスを提供します。次に、システムは 192.168.0.4/30 からクライアントに IP アドレスを割り当て、他の 3 つの IP アドレスをネットワーク通信の確保に使用します。この場合、1 つのクライアントが 4 つの IP アドレスを消費します。したがって、クライアントに IP アドレスを確実に割り当てられるようにするには、クライアント CIDR ブロック内の IP アドレス数が、関連付けられた VPN Gateway でサポートされる SSL-VPN 接続の最大数の少なくとも 4 倍であることを確認する必要があります。 |
暗号化アルゴリズムの不一致 | SSL サーバーとクライアントが異なる TLS 暗号スイートを使用しており、一致する暗号化アルゴリズムが見つかりません。 |
| クライアントに VPN Gateway が推奨する VPN アプリケーションをインストールしてください。詳細については、「クライアントを VPC に接続」トピックの「ステップ 4: クライアントの設定」セクションをご参照ください。 |
暗号化アルゴリズムの不整合 | SSL サーバーとクライアントの暗号化アルゴリズムの設定に一貫性がありません。 |
| クライアントにインストールされている SSL クライアント証明書の暗号化アルゴリズムが SSL サーバーの暗号化アルゴリズムと一致しているかを確認してください。 暗号化アルゴリズムに一貫性がない場合は、現在の SSL クライアント証明書とすべての設定を削除し、証明書を再ダウンロードして、クライアントに証明書をインストールしてください。
|
パケット ID の競合 | ネットワーク接続が不安定であるか、SSL サーバーの暗号化アルゴリズムが none に設定されています。 |
|
|
時刻同期の問題 | SSL 検証に失敗したか、クライアントと SSL サーバー間の時刻差が 10 分を超えています。 |
|
|
証明書検証の失敗 | SSL 証明書の検証に失敗します。 |
|
|
二要素認証の失敗 | 二要素認証に失敗します。 |
|
|
TAP アダプターの欠落 | クライアントに TAP 仮想イーサネットアダプターがありません。 |
|
|
ovpnagent プログラムの停止 | macOS クライアントの ovpnagent プログラムが実行されていません。 |
|
|
クライアントの頻繁な再接続 | クライアントがサーバーに自動的に再接続します。 |
|
|
ネットワーク ACL 設定の問題 | VPC の vSwitch にバインドされているネットワーク ACL が、VPN クライアントの CIDR ブロックからのインバウンドトラフィックを許可していません。 | SSL-VPN 接続は正常に確立されますが、VPC 内のリソースにアクセスできません。 |
|
セキュリティグループルールの確認
ECS インスタンスのセキュリティグループルールがクライアントからのアクセスを許可していることを確認してください。
セキュリティグループルールには優先度があります。セキュリティグループに同じ優先度で異なるアクション (許可と拒否) を持つ 2 つのルールが含まれている場合、拒否ルールが優先されます。例:
症状: SSL-VPN 接続が確立された後、VPC 内のリソースに ping を実行できません。
原因: セキュリティグループに、どちらも優先度が 1 の 2 つのインバウンド ICMP ルールが含まれています:
すべてのソース (0.0.0.0/0) を拒否
VPN クライアントの CIDR ブロック (10.200.200.0/24) を許可
2 つのルールの優先度が同じ場合、拒否ルールが優先され、ICMP トラフィックがブロックされます。
解決策: 拒否ルールの優先度の値を大きくする (例:1 から 2 に変更する) ことで、許可ルール (優先度 1) が先に照合され、有効になります。
ECS インスタンスのオペレーティングシステムファイアウォールの確認
SSL-VPN 接続が正常に確立されても、ECS インスタンスに ping を実行できない、または ECS インスタンス上のサービスにアクセスできない場合は、ECS インスタンスにログオンして、オペレーティングシステムのファイアウォールが VPN クライアントからのトラフィックをブロックしているかどうかを確認してください。
次のコマンドを実行して、firewalld サービスのステータスを確認してください。
systemctl status firewalldfirewalldがactive (running)状態の場合、ファイアウォールは実行されています。sudo systemctl stop firewalldを実行してファイアウォールを一時的に無効にし、接続性を再度テストしてください。ファイアウォールを無効にした後にトラフィックが復旧した場合、firewalldのルールが VPN トラフィックをブロックしています。VPN クライアントの CIDR ブロックを許可するルールを設定してください。次のコマンドを実行して、iptables ルールを表示してください。
iptables -L出力に、VPN クライアントの CIDR ブロックからのトラフィックをブロックする DROP または REJECT ルールが含まれているかを確認します。そのようなルールが存在する場合は、
sudo iptables -I INPUT -s <VPN クライアントの CIDR ブロック> -j ACCEPTを実行して許可ルールを追加します。次のコマンドを実行して、SELinux のステータスを確認してください。
getenforceEnforcingが返された場合、SELinux は強制モードです。sudo setenforce 0を実行して一時的に Permissive モードに切り替え、再度テストします。トラフィックが復旧した場合、SELinux ポリシーが VPN 通信に影響を与えています。VPN トラフィックを許可するように SELinux ポリシーを調整します。
関連ドキュメント
以下のドキュメントは、SSL-VPN 接続の問題をトラブルシューティングする際に役立ちます。
SSL サーバーの設定を変更する方法については、「SSL サーバーの変更」をご参照ください。
SSL サーバーの接続仕様を変更する方法については、「SSL の同時接続数の変更」をご参照ください。
SSL クライアント証明書を作成する方法については、「SSL クライアント証明書の作成と管理」をご参照ください。
SSL クライアント証明書をダウンロードする方法については、「SSL クライアント証明書のダウンロード」をご参照ください。
「クライアントを VPC に接続」 トピックの「ステップ 4: クライアントの設定」セクション
SSL サーバーのログ情報を表示する方法については、「SSL サーバーのログの表示」をご参照ください。
クライアントの接続情報を表示する方法については、「SSL クライアント接続の表示」をご参照ください。
SSL-VPN 接続の問題をトラブルシューティングする際にクライアントの設定を変更するには、お使いのクライアントのユーザーガイドをご参照ください。