Always On VPN のトラブルシューティング
この記事では、Always On VPN の展開を確認およびトラブルシューティングする手順について説明します。
Always On Virtual Private Network (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 サーバーの外部インターフェイスにポートが開かないため、問題が発生しています。
- NPS サーバーに IKE 要求をサービスできるサーバー認証証明書があることを確認します。 また、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\.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 のインターネット キー Exchange (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 証明書がインストールされていない場合、このエラーが発生する可能性があります。
解決策: 信頼されたルート証明書をインストールする
この問題を解決するには、クライアント コンピューターに信頼されたルート証明機関ストアに信頼されたルート証明書がインストールされていることを確認します。 インストールされていない場合は、適切なルート証明書をインストールします。
エラー: Oops、まだこれにアクセスできません
このエラー メッセージは、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>
含まれていない。 エントリと<EKUOID>
エントリは<EKUName>
、VPN サーバーに証明書を渡すときに、ユーザーの証明書ストアから取得する証明書を VPN クライアントに伝えます。<EKUName>
と<EKUOID>
エントリがない場合、VPN クライアントは、ユーザーの証明書ストアにある有効なクライアント認証証明書を使用し、認証が成功します。RADIUS サーバー (NPS) は、 AAD 条件付きアクセス オブジェクト識別子 (OID) を含むクライアント証明書のみを受け入れるように構成されていません。
解決策: PowerShell を使用して証明書の状態を判断する
このループをエスケープするには:
Windows PowerShell で、コマンドレットを
Get-WmiObject
実行して VPN プロファイル構成をダンプします。変数
<EKUName>
、<TLSExtensions>
、および 変数が存在し<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 ルート CA Gen 1 の証明書がユーザーの個人用ストアに存在するが、ユーザーが X を選択して Oops メッセージを閉じてアクセスを取得した場合は、CAPI2 イベント ログを収集して、認証に使用される証明書が、Microsoft VPN ルート CA から発行されなかった有効なクライアント認証証明書であることを確認します。
有効なクライアント認証証明書がユーザーの個人用ストアに存在し
TLSExtensions
、、、EKUName
およびEKUOID
の値が正しく構成されている場合、ユーザーがダイアログ ボックスを閉じても接続は成功しません。
"拡張認証プロトコルで使用できる証明書が見つかりませんでした" というエラー メッセージが表示されます。
[VPN 接続] タブから証明書を削除できない
この問題は、[VPN 接続] タブで証明書を削除できない場合です。
原因
この問題は、証明書が [プライマリ] に設定されている場合に発生します。
解決策: 証明書の設定を変更する
証明書を削除するには:
- [ VPN 接続 ] タブで、証明書を選択します。
- [ プライマリ] で [ いいえ] を選択し、[保存] を選択 します。
- [ VPN 接続 ] タブで、証明書をもう一度選択します。
- [削除] を選択します。