Always On VPN のトラブルシューティング
この記事では、Always On VPN の展開を確認してトラブルシューティングする手順について説明します。
Always On 仮想プライベート ネットワーク (VPN) セットアップで内部ネットワークにクライアントが接続されていない場合は、次のいずれかの問題が発生している可能性があります。
- VPN 証明書が無効です。
- ネットワーク ポリシー サーバー (NPS) ポリシーが正しくありません。
- クライアント展開スクリプトまたはルーティングとリモート アクセスに関する問題。
VPN 接続のトラブルシューティングとテストの最初の手順は、Always On VPN インフラストラクチャのコア コンポーネントを理解することです。
接続の問題のトラブルシューティングは、いくつかの方法で行うことができます。 クライアント側の問題と一般的なトラブルシューティングの場合、クライアント コンピューター上のアプリケーション ログが非常に重要です。 認証固有の問題の場合は、NPS サーバー上の NPS ログが問題の原因究明に役立ちます。
Always On VPN 接続に関する問題の一般的なトラブルシューティング
Always On VPN クライアントは、接続を確立する前にいくつかの手順を実行します。 その結果、接続がブロックされる場所がいくつかあり、どこに問題があるのかを突き止めるのが難しいこともあります。
問題が発生した場合、何が起こっているかを把握するために実行できる一般的な手順を次に示します。
- whatismyip スキャンを実行して、テンプレート マシンが外部に接続されていないことを確認します。 マシンに自分に属していないパブリック IP アドレスがある場合は、IP をプライベート IP アドレスに変更する必要があります。
- [コントロール パネル]>[ネットワーク]に移動してから、[インターネット]>[ネットワーク接続]に移動し、VPN プロファイルのプロパティを開き、[[全般] タブの値が DNS 経由でパブリックに解決できることを確認します。 解決できない場合は、リモートアクセスサーバーまたは VPN サーバーが IP アドレスに解決できないことが問題の原因である可能性があります。
- 外部インターフェイスに対してインターネット制御メッセージ プロトコル (ICMP) を開き、リモート クライアントから VPN サーバーに ping を送信します。 ping の送信が成功した場合は、ICMP 許可規則を削除できます。 失敗した場合は、VPN サーバーにアクセスできないことが原因で問題が発生している可能性があります。
- VPN サーバー上の内部 NIC と外部 NIC の構成を確認します。 特に、それらが同じサブネット上にあり、外部 NIC がファイアウォール上の正しいインターフェイスに接続していることを確認してください。
- クライアント ファイアウォール、サーバー ファイアウォール、ハードウェア ファイアウォールを調べて、UDP 500 および 4500 ポート アクティビティが許可されていることを確認します。 また、UDP ポート 500 を使用している場合は、IPSEC が無効になっていないか、またはどこかでブロックされていないかを確認してください。 ブロックされている場合は、クライアントから VPN サーバーの外部インターフェイスへのポートが開いていないことが問題の原因です。
- IKE 要求を処理できるサーバー認証証明書がNPS サーバーにあることを確認します。 また、NPS クライアントの設定に正しい VPN サーバー IP があることを確認します。 PEAP でのみ認証を行い、PEAP プロパティでは証明書の認証のみを許可する必要があります。 NPS イベント ログで認証の問題を確認できます。 詳細については、「NPS サーバーをインストールして構成する」を参照してください。
- 接続できるが、インターネットまたはローカル ネットワーク にアクセスできない場合は、DHCP または VPN サーバー IP プールで構成の問題を確認してください。 また、クライアントがそれらのリソースにアクセスできることを確認してください。 VPN サーバーを使用して要求をルーティングできます。
VPN_Profile.ps1 スクリプトの問題に関する一般的なトラブルシューティング
VPN_Profile.ps1 スクリプトを手動で実行する場合の最も一般的な問題は次のとおりです。
- リモート接続ツールを使用する場合は、リモート デスクトップ プロトコル (RDP) やその他のリモート接続方法を使用していないことを確認します。 リモート接続は、サインイン時にサービスがユーザーを検出する機能を妨げる可能性があります。
- 影響を受けるユーザーがローカル コンピューターの管理者である場合は、スクリプトの実行中に管理者特権があることを確認します。
- 他の PowerShell セキュリティ機能を有効にしている場合は、PowerShell 実行ポリシーによってスクリプトがブロックされていないことを確認してください。 スクリプトを実行する前に制約付き言語モードを無効にして、スクリプトの実行が完了した後に再アクティブ化します。
ログ
また、アプリケーション ログと NPS ログで、問題が発生したタイミングと場所を示すイベントを確認することもできます。
アプリケーション ログ
クライアント マシンのアプリケーション ログには、VPN 接続イベントの上位レベルの詳細のほとんどが記録されます。
Always On VPN のトラブルシューティングを行うときは、RasClient ラベルが付いたイベントを探します。 すべてのエラー メッセージは、メッセージの最後にエラー コードを返します。 エラー コードは、Always On VPN に関連する一般的なエラー コードの一部を示します。 エラー コードの完全な一覧については、「ルーティングとリモート アクセスのエラー コード」を参照してください。
NPS ログ
NPS では、NPS アカウンティング ログが作成および格納されます。 既定では、ログは %SYSTEMROOT%\System32\Logfiles\ ログ作成の IN<date という名前のファイルに格納されます>.txt。
既定では、これらのログはコンマ区切りの値形式ですが、見出し行は含みません。 次のコード ブロックには、見出し行が含まれています。
ComputerName,ServiceName,Record-Date,Record-Time,Packet-Type,User-Name,Fully-Qualified-Distinguished-Name,Called-Station-ID,Calling-Station-ID,Callback-Number,Framed-IP-Address,NAS-Identifier,NAS-IP-Address,NAS-Port,Client-Vendor,Client-IP-Address,Client-Friendly-Name,Event-Timestamp,Port-Limit,NAS-Port-Type,Connect-Info,Framed-Protocol,Service-Type,Authentication-Type,Policy-Name,Reason-Code,Class,Session-Timeout,Idle-Timeout,Termination-Action,EAP-Friendly-Name,Acct-Status-Type,Acct-Delay-Time,Acct-Input-Octets,Acct-Output-Octets,Acct-Session-Id,Acct-Authentic,Acct-Session-Time,Acct-Input-Packets,Acct-Output-Packets,Acct-Terminate-Cause,Acct-Multi-Ssn-ID,Acct-Link-Count,Acct-Interim-Interval,Tunnel-Type,Tunnel-Medium-Type,Tunnel-Client-Endpt,Tunnel-Server-Endpt,Acct-Tunnel-Conn,Tunnel-Pvt-Group-ID,Tunnel-Assignment-ID,Tunnel-Preference,MS-Acct-Auth-Type,MS-Acct-EAP-Type,MS-RAS-Version,MS-RAS-Vendor,MS-CHAP-Error,MS-CHAP-Domain,MS-MPPE-Encryption-Types,MS-MPPE-Encryption-Policy,Proxy-Policy-Name,Provider-Type,Provider-Name,Remote-Server-Address,MS-RAS-Client-Name,MS-RAS-Client-Version
この見出し行をログ ファイルの最初の行として貼り付け、ファイルを Microsoft Excel にインポートすると、Excel が列に適切なラベルを付けます。
NPS ログは、ポリシー関連の問題の診断に役立ちます。 NPS ログの詳細については、「NPS データベース形式のログ ファイルを解釈する」を参照してください。
エラー コード
次のセクションでは、最も一般的に発生するエラーを解決する方法について説明します。
エラー 800: リモート接続に接続できませんでした
この問題は、VPN トンネルの試行が失敗したためにサービスがリモート接続できない場合に発生します(多くの場合、VPN サーバーに到達できないため)。 接続がレイヤー 2 トンネリング プロトコル (L2TP) または IPsec トンネルを使用しようとしている場合、このエラーは、IPsec ネゴシエーションに必要なセキュリティ パラメーターが正しく構成されていないことを意味します。
原因: VPN トンネルの種類
この問題は、VPN トンネルの種類が [自動] に設定されていて、すべての VPN トンネルで接続試行が失敗した場合に発生する可能性があります。
解決策: VPN 構成を確認する
VPN 設定によってこの問題が発生するため、次を試して VPN 設定と接続のトラブルシューティングを行う必要があります。
- デプロイに使用するトンネルを把握している場合は、VPN クライアント側で VPN の種類をその特定のトンネルの種類に設定します。
- ユーザー データグラム プロトコル (UDP) ポート 500 と 4500 のインターネット キー交換 (IKE) ポートがブロックされていないことを確認します。
- クライアントとサーバーの両方に IKE 用の正しい証明書があることを確認します。
エラー 809: ローカル コンピューターと VPN サーバー間の接続を確立できません
この問題では、リモート サーバーが応答しないため、ローカル コンピューターと VPN サーバーが接続できません。 これは、ルーター、ファイアウォール、またはコンピューターとリモート サーバーの間のネットワーク アドレス変換 (NAT) などの 1 つ以上のネットワーク デバイスが VPN 接続を許可するように構成されていないことが原因だと考えられます。 問題の原因となっている可能性があるデバイスを特定するには、管理者またはサービス プロバイダーに問い合わせてください。
エラー 809 の原因
この問題は、VPN サーバーまたはファイアウォール上の UDP 500 または 4500 ポートがブロックされている場合に発生する可能性があります。 ブロックは、コンピューターとリモート サーバー (ファイアウォール、NAT、ルーターなど) の間のネットワーク デバイスのいずれかが正しく構成されていない場合に発生する可能性があります。
解決策: ローカル コンピューターとリモート サーバー間のデバイス上のポートを確認する
この問題に対処するには、まず管理者またはサービス プロバイダーに問い合わせて、どのデバイスがブロックされているかを確認する必要があります。 その後、そのデバイスのファイアウォールで UDP 500 ポートと 4500 ポートが許可されていることを確認します。 それでも問題が解決しない場合は、ローカル コンピューターとリモート サーバー間のすべてのデバイスのファイアウォールを確認してください。
エラー 812: Always On VPN に接続できません
この問題は、リモート アクセス サーバー (RAS) または VPN サーバーが Always On VPN に接続できない場合に発生します。 サーバーでユーザー名とパスワードの確認に使用された認証方法が、接続プロファイルで構成されている認証方法と一致しませんでした。
エラー812が発生した場合は、その都度すぐにRASサーバーの管理者に連絡し、発生した状況を伝えることをお勧めします。
イベント ビューアーを使用してトラブルシューティングを行っている場合、この問題はイベント ログ 20276 としてマークされています。 このイベントは、通常、ルーティングとリモート アクセス (RRAS) ベースの VPN サーバー認証プロトコル設定が VPN クライアント コンピューターの設定と一致しない場合に表示されます。
エラー 812 の原因
通常、このエラーは、NPS がクライアントが満たすことのできない認証条件を指定した場合に発生します。 たとえば、NPS が保護された拡張認証プロトコル (PEAP) 接続を確保するために証明書が必要であると指定している場合、クライアントが代わりに EAP-MSCHAPv2 を使用しようとすると認証できません。
解決策: クライアントと NPS サーバーの認証設定を確認する
この問題を解決するには、クライアントと NPS サーバーの認証要件が一致していることを確認します。 そうでない場合は、必要に応じて変更します。
エラー 13806: IKE で有効なコンピューター証明書が見つかりません
この問題は、IKE が有効なマシン証明書を見つけることができない場合に発生します。
エラー 13806 の原因
通常、このエラーは、VPN サーバーに必須のコンピューター証明書またはルート コンピューター証明書がない場合に発生します。
解決策: 関連する証明書ストアに有効な証明書をインストールする
この問題を解決するには、必要な証明書がクライアント コンピューターと VPN サーバーの両方にインストールされていることを確認します。 されていない場合は、ネットワーク セキュリティ管理者に連絡し、関連する証明書ストアに有効な証明書をインストールするよう依頼してください。
エラー 13801: IKE 認証資格情報が無効です
この問題は、サーバーまたはクライアントが IKE 認証資格情報を受け入れられない場合に発生します。
エラー 13801 の原因
このエラーは、次のような原因によって発生する可能性があります。
- RAS サーバーで IKEv2 検証に使用されるコンピューター証明書に、[拡張キー使用法] で有効になっている [サーバー認証] がありません。
- RAS サーバー上のコンピューター証明書の有効期限が切れています。
- クライアント コンピューターに、RAS サーバー証明書を検証するためのルート証明書がありません。
- クライアント コンピューターの VPN サーバー名が、サーバー証明書の subjectName 値と一致しません。
解決策 1: サーバー証明書の設定を確認する
問題が RAS サーバー コンピューター証明書の場合は、[拡張キー使用法] に [サーバー認証] が含まれていることを確認します。
解決策 2: コンピューター証明書がまだ有効であることを確認する
RAS コンピューター証明書の有効期限切れが問題である場合は、まだ有効であることを確認してください。 そうでない場合は、有効な証明書をインストールします。
解決策 3: クライアント コンピューターにルート証明書があることを確認する
問題がルート証明書を持たないクライアント コンピューターに関連している場合は、まず、RRAS サーバーで信頼されたルート証明機関を調べて、使用している証明機関が存在することを確認します。 存在しない場合は、有効なルート証明書をインストールします。
解決策 4: クライアント コンピューターの VPN サーバー名をサーバー証明書と一致させる
まず、VPN クライアントが、VPN サーバー証明書で使用されるのと同じ完全修飾ドメイン名 (FQDN) を使用して接続していることを確認します。 そうでない場合は、サーバー証明書名と一致するようにクライアント名を変更します。
エラー 0x80070040: サーバー証明書の使用状況エントリにサーバー認証がありません
この問題は、サーバー証明書に証明書の使用状況エントリの 1 つとして サーバー認証 がない場合に発生します。
エラー 0x80070040 の原因
このエラーは、RAS サーバーにサーバー認証証明書がインストールされていない場合に発生します。
解決策: コンピューター証明書に必須の証明書の使用状況エントリがあることを確認する
この問題に対処するには、RAS サーバーが IKEv2 検証に使用するコンピューター証明書の使用状況エントリの一覧にサーバー認証が含まれていることを確認します。
エラー 0x800B0109: 証明書チェーンは処理されましたが、ルート証明書で終了しました
完全なエラーの説明は、"証明書チェーンは処理されましたが、信頼プロバイダーが信頼していないルート証明書で終了しました" です。
一般に、VPN クライアント コンピューターは Active Directory (AD) ベースのドメインに参加しています。 ドメイン資格情報を使用して VPN サーバーにログオンする場合、証明書は信頼されたルート証明機関ストアに自動的にインストールされます。 この問題は、コンピューターが AD ドメインに参加していない場合、または別の証明書チェーンを使用している場合に発生する可能性があります。
エラー 0x800B0109 の原因
このエラーは、クライアント コンピューターの信頼されたルート証明機関ストアに適切な信頼されたルート CA 証明書がインストールされていない場合、発生する可能性があります。
解決策: 信頼されたルート証明書をインストールする
この問題を解決するには、クライアント コンピューターの信頼されたルート証明機関ストアに信頼されたルート証明書がインストールされていることを確認します。 インストールされていない場合は、適切なルート証明書をインストールします。
エラー: "まだここにはアクセスできません"
このエラー メッセージは、Microsoft Entra 条件付きアクセス接続の問題に関連付けられています。 この問題が発生すると、条件付きアクセス ポリシーが満たされず、VPN 接続がブロックされますが、ユーザーがダイアログ ウィンドウを閉じた後に接続します。 ユーザーが [OK] を選択すると、別の認証試行が開始されますがそれも成功せず、同じエラー メッセージが表示されます。 クライアントの Microsoft Entra 操作イベント ログには、これらのイベントが記録されます。
Microsoft Entra 条件付きアクセスエラーの原因
この問題が発生する理由はいくつかあります。
ユーザーは、個人証明書ストアに有効なクライアント認証証明書を持っていますが、Microsoft Entra ID から取得されていません。
VPN プロファイル
<TLSExtensions>
セクションがないか、<EKUName>AAD Conditional Access</EKUName><EKUOID>1.3.6.1.4.1.311.87</EKUOID><EKUName>AAD Conditional Access</EKUName><EKUOID>1.3.6.1.4.1.311.87</EKUOID>
エントリが含まれていません。<EKUName>
エントリと<EKUOID>
エントリは、VPN サーバーに証明書を渡す際に、ユーザーの証明書ストアから取得する証明書を VPN クライアントに指示します。<EKUName>
エントリと<EKUOID>
エントリがない場合、VPN クライアントはユーザーの証明書ストアにある有効なクライアント認証証明書のいずれかを使用し、認証は成功します。RADIUS サーバー (NPS) は、 AAD 条件付きアクセス オブジェクト識別子 (OID) を含むクライアント証明書のみを受け入れるように構成されていません。
解決策: PowerShell を使用して証明書の状態を確認する
このループを阻止するには、次の手順を実施します。
Windows PowerShell で、
Get-WmiObject
コマンドレットを実行して VPN プロファイルの構成をダンプします。<TLSExtensions>
、<EKUName>
、および<EKUOID>
変数が存在し、出力に正しい名前と OID が表示されていることを確認します。次のコードは、
Get-WmiObject
コマンドレットの出力例です。PS C:\> Get-WmiObject -Class MDM_VPNv2_01 -Namespace root\cimv2\mdm\dmmap __GENUS : 2 __CLASS : MDM_VPNv2_01 __SUPERCLASS : __DYNASTY : MDM_VPNv2_01 __RELPATH : MDM_VPNv2_01.InstanceID="AlwaysOnVPN",ParentID="./Vendor/MSFT/VPNv2" __PROPERTY_COUNT : 10 __DERIVATION : {} __SERVER : DERS2 __NAMESPACE : root\cimv2\mdm\dmmap __PATH : \\DERS2\root\cimv2\mdm\dmmap:MDM_VPNv2_01.InstanceID="AlwaysOnVPN",ParentID="./Vendor/MSFT/VP Nv2" AlwaysOn : ByPassForLocal : DnsSuffix : EdpModeId : InstanceID : AlwaysOnVPN LockDown : ParentID : ./Vendor/MSFT/VPNv2 ProfileXML : <VPNProfile><RememberCredentials>false</RememberCredentials><DeviceCompliance><Enabled>true</ Enabled><Sso><Enabled>true</Enabled></Sso></DeviceCompliance><NativeProfile><Servers>derras2.corp.deverett.info;derras2.corp.deverett.info</Servers><RoutingPolicyType>ForceTunnel</RoutingPolicyType><NativeProtocolType>Ikev2</NativeProtocolType><Authentication><UserMethod>Eap</UserMethod><MachineMethod>Eap</MachineMethod><Eap><Configuration><EapHostConfigxmlns="https://www.microsoft.com/provisioning/EapHostConfig"><EapMethod><Typexmlns="https://www.microsoft.com/provisioning/EapCommon">25</Type><VendorIdxmlns="https://www.microsoft.com/provisioning/EapCommon">0</VendorId><VendorTypexmlns="https://www.microsoft.com/provisioning/EapCommon">0</VendorType><AuthorIdxmlns="https://www.microsoft.com/provisioning/EapCommon">0</AuthorId></EapMethod><Configxmlns="https://www.microsoft.com/provisioning/EapHostConfig"><Eap xmlns="https://www.microsoft.com/provisioning/BaseEapConnectionPropertiesV1"><Type>25</Type><EapType xmlns="https://www.microsoft.com/provisioning/MsPeapConnectionPropertiesV1"><ServerValidation><DisableUserPromptForServerValidation>true</DisableUserPromptForServerValidation><ServerNames></ServerNames></ServerValidation><FastReconnect>true</FastReconnect><InnerEapOptional>false</InnerEapOptional><Eap xmlns="https://www.microsoft.com/provisioning/BaseEapConnectionPropertiesV1"><Type>13</Type> <EapType xmlns="https://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV1"><CredentialsSource><CertificateStore><SimpleCertSelection>true</SimpleCertSelection></CertificateStore></CredentialsSource><ServerValidation><DisableUserPromptForServerValidation>true</DisableUserPromptForServerValidation><ServerNames></ServerNames><TrustedRootCA>5a 89 fe cb 5b 49 a7 0b 1a 52 63 b7 35 ee d7 1c c2 68 be 4b </TrustedRootCA></ServerValidation><DifferentUsername>false</DifferentUsername><PerformServerValidation xmlns="https://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV2">true</PerformServerValidation><AcceptServerName xmlns="https://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV2">false</AcceptServerName><TLSExtensionsxmlns="https://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV2"><FilteringInfo xml ns="https://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV3"><EKUMapping><EKUMap><EKUName>AAD Conditional Access</EKUName><EKUOID>1.3.6.1.4.1.311.87</EKUOID></EKUMap></EKUMapping><ClientAuthEKUListEnabled="true"><EKUMapInList><EKUName>AAD Conditional Access</EKUName></EKUMapInList></ClientAuthEKUList></FilteringInfo></TLSExtensions></EapType></Eap><EnableQuarantineChecks>false</EnableQuarantineChecks><RequireCryptoBinding>false</RequireCryptoBinding><PeapExtensions><PerformServerValidation xmlns="https://www.microsoft.com/provisioning/MsPeapConnectionPropertiesV2">false</PerformServerValidation><AcceptServerName xmlns="https://www.microsoft.com/provisioning/MsPeapConnectionPropertiesV2">false</AcceptServerName></PeapExtensions></EapType></Eap></Config></EapHostConfig></Configuration></Eap></Authentication></NativeProfile></VPNProfile> RememberCredentials : False TrustedNetworkDetection : PSComputerName : DERS2
次に、
Certutil
コマンドを実行して、ユーザーの証明書ストアに有効な証明書があるかどうかを確認します。C:\>certutil -store -user My My "Personal" ================ Certificate 0 ================ Serial Number: 32000000265259d0069fa6f205000000000026 Issuer: CN=corp-DEDC0-CA, DC=corp, DC=deverett, DC=info NotBefore: 12/8/2017 8:07 PM NotAfter: 12/8/2018 8:07 PM Subject: E=winfed@deverett.info, CN=WinFed, OU=Users, OU=Corp, DC=corp, DC=deverett, DC=info Certificate Template Name (Certificate Type): User Non-root Certificate Template: User Cert Hash(sha1): a50337ab015d5612b7dc4c1e759d201e74cc2a93 Key Container = a890fd7fbbfc072f8fe045e680c501cf_5834bfa9-1c4a-44a8-a128-c2267f712336 Simple container name: te-User-c7bcc4bd-0498-4411-af44-da2257f54387 Provider = Microsoft Enhanced Cryptographic Provider v1.0 Encryption test passed ================ Certificate 1 ================ Serial Number: 367fbdd7e6e4103dec9b91f93959ac56 Issuer: CN=Microsoft VPN root CA gen 1 NotBefore: 12/8/2017 6:24 PM NotAfter: 12/8/2017 7:29 PM Subject: CN=WinFed@deverett.info Non-root Certificate Cert Hash(sha1): 37378a1b06dcef1b4d4753f7d21e4f20b18fbfec Key Container = 31685cae-af6f-48fb-ac37-845c69b4c097 Unique container name: bf4097e20d4480b8d6ebc139c9360f02_5834bfa9-1c4a-44a8-a128-c2267f712336 Provider = Microsoft Software Key Storage Provider Private key is NOT exportable Encryption test passed
注意
発行者 CN=Microsoft VPN root CA gen 1 の証明書がユーザーの個人用ストアに存在するが、ユーザーが [X] を選択して Oops メッセージを閉じることでアクセス権を取得した場合は、CAPI2 イベント ログを収集して、認証に使用された証明書が、Microsoft VPN ルート CA から発行されていない有効なクライアント認証証明書だったことを確認してください。
有効なクライアント認証証明書がユーザーの個人用ストアに存在し、
TLSExtensions
、EKUName
、EKUOID
の値が正しく構成されている場合、ユーザーがダイアログ ボックスを閉じた後、接続は成功しません。
"この拡張認証プロトコルで使用できる証明書が見つかりませんでした" というエラー メッセージが表示されます。
[VPN 接続] タブから証明書を削除できない
この問題は、[VPN 接続] タブで証明書を削除できない場合です。
原因
この問題は、証明書が [プライマリ] に設定されている場合に発生します。
解決策: 証明書の設定を変更する
証明書を削除するには:
- [VPN 接続] タブで、証明書を選択します。
- [プライマリ] で [いいえ] を選択し、[保存] を選択します。
- [VPN 接続] タブで、もう一度証明書を選択します。
- [削除] を選択します。