Virtual WAN ポイント対サイト VPN の強制トンネリングを構成する

強制トンネリングを使用すると、リモート ユーザーから Azure に すべての トラフィック (インターネットにバインドされたトラフィックを含む) を送信できます。 Virtual WAN では、ポイント対サイト VPN リモート ユーザーの強制トンネリングは、0.0.0.0/0 の既定のルートがリモート VPN ユーザーにアドバタイズされることを意味します。

Virtual WAN のハブを作成する

この記事のステップでは、1 つ以上のハブがある仮想 WAN が既にデプロイされていること想定します。

新しい仮想 WAN と新しいハブを作成するには、次の記事の手順に従います。

ポイント対サイト VPN の設定

この記事のステップでは、Virtual WAN ハブにポイント対サイト VPN ゲートウェイが既にデプロイされていることも前提としています。 また、ゲートウェイに割り当てるポイント対サイト VPN プロファイルが作成されていることを前提としています。

ポイント対サイト VPN ゲートウェイと関連プロファイルを作成するには、「ポイント対サイト VPN ゲートウェイの作成」を参照してください。

強制トンネリングを構成し、Virtual WAN に接続されているリモート ユーザー VPN クライアントに既定のルート (0.0.0.0/0) をアドバタイズするには、いくつかの方法があります。

  • ネクスト ホップ Microsoft Azure Virtual Network 接続を使用して、defaultRouteTableで静的な 0.0.0.0/0 ルートを指定できます。 これにより、すべてのインターネットにバインドされたトラフィックが、そのスポーク Microsoft Azure Virtual Network にデプロイされたネットワーク仮想アプライアンスに送信されます。 詳細な手順については、「NVA 経由のルーティング」で説明されている代替ワークフローを検討してください。
  • Azure Firewall Manager を使用して、Virtual WAN ハブにデプロイされた Azure Firewall 経由ですべてのインターネットにバインドされたトラフィックを送信するように Virtual WAN を構成できます。 構成ステップとチュートリアルについては、Azure Firewall Manager のドキュメント「仮想ハブのセキュリティ保護」を参照してください。 または、インターネット トラフィック ルーティング ポリシーを使用して構成することもできます。 詳細については、「 ルーティング 意図とルーティング ポリシー」を参照してください。
  • Firewall Manager を使用して、サードパーティのセキュリティ プロバイダー経由でインターネット トラフィックを送信できます。 この機能の詳細については、「 信頼できるセキュリティ プロバイダー」を参照してください。
  • 0.0.0.0/0/0 ルートを Virtual WAN にアドバタイズするように、いずれかのブランチ (サイト間 VPN、ExpressRoute 回線) を構成できます。

上記の 4 つの方法のいずれかを構成した後、ポイント対サイト VPN ゲートウェイに対して EnableInternetSecurity フラグがオンになっていることを確認します。 クライアントが強制トンネリング用に正しく構成されるようにするには、このフラグを true に設定する必要があります。

EnableInternetSecurity フラグを有効にするには、次の PowerShell コマンドを使用して、環境に適した値を置き換えます。

Update-AzP2sVpnGateway -ResourceGroupName "sampleRG" -Name "p2sgwsamplename" -EnableInternetSecurityFlag

ポイント対サイト VPN プロファイルのダウンロード

ポイント対サイト VPN プロファイルをダウンロードするには、 グローバル プロファイルとハブ プロファイルを参照してください。 クライアントを適切に構成するには、Azure portal からダウンロードした zip ファイル内の情報が重要です。

Azure VPN クライアント (OpenVPN) の強制トンネリングの構成

強制トンネリングを構成するステップは、エンド ユーザー デバイスのオペレーティング システムによって異なります。

Windows クライアント

Note

Windows クライアントの場合、Azure VPN クライアントでの強制トンネリングは、ソフトウェア バージョン 2:1900:39.0 以降でのみ使用できます。

  1. Azure VPN クライアントのバージョンが強制トンネリングと互換性があるかどうかを検証します。 これを行うには、Azure VPN クライアントの下部にある 3 つのドットをクリックし、[ヘルプ] をクリックします。 または、[ヘルプ] に移動するためのキーボード ショートカットは Ctrl + H です。 バージョン番号は、画面の上部に表示されます。 バージョン番号が 2:1900:39.0 以降であることを確認します。

    NVA プライベート ルーティング ポリシーの構成方法を示すスクリーンショット。

  2. 前のセクションからダウンロードした zip ファイルを開きます。 AzureVPN というフォルダーが表示されます。 フォルダーを開き、お気に入りの XML 編集ツールで azurevpnconfig.xml を開きます。

  3. azureconfig.xml には、バージョン というフィールドがあります。 バージョン タグ間の番号が 1 の場合は、 バージョン 番号を 2 に変更します。

    <version>2</version>
    
  4. Azure VPN クライアントにプロファイルをインポートします。 プロファイルをインポートする方法の詳細については、 Azure VPN クライアントのインポート手順 を参照してください。

  5. 新たに追加された接続先に接続します。 これで、すべてのトラフィックを Azure Virtual WAN に強制的にトンネリングします。

macOS クライアント

macOS クライアントが Azure からの既定のルートを学習すると、強制トンネリングがクライアント デバイスで自動的に構成されます。 実行する追加のステップはありません。 macOS Azure VPN クライアントを使用して Virtual WAN ポイント対サイト VPN ゲートウェイに接続する方法については、macOS 構成ガイドを参照してください。

IKEv2 クライアントの強制トンネリングの構成

IKEv2 クライアントの場合、Azure portal からダウンロードした実行可能プロファイルを直接使用することは できません。 クライアントを適切に構成するには、PowerShell スクリプトを実行するか、Intune 経由で VPN プロファイルを配布する必要があります。

ポイント対サイト VPN ゲートウェイで構成された認証方法に基づいて、別の EAP 構成ファイルを使用します。 EAP 構成ファイルの例を以下に示します。

ユーザー証明書の認証を使用した IKEv2

ユーザー証明書を使用してリモート ユーザーを認証するには、次のサンプル PowerShell スクリプトを使用します。 VpnSettings ファイルと EAP XML ファイルの内容を PowerShell に適切にインポートするには、 Get-Content PowerShell コマンドを実行する前に適切なディレクトリに移動します。

# specify the name of the VPN Connection to be installed on the client
$vpnConnectionName = "SampleConnectionName"

# get the VPN Server FQDN from the profile downloaded from Azure Portal
$downloadedXML = [xml] (Get-Content VpnSettings.xml)
$vpnserverFQDN = $downloadedXML.VpnProfile.VpnServer

# use the appropriate EAP XML file based on the authentication method specified on the Point-to-site VPN gateway
$EAPXML = [xml] (Get-Content EapXML.xml)

# create the VPN Connection
Add-VpnConnection -Name $vpnConnectionName -ServerAddress $vpnserverFQDN -TunnelType Ikev2 -AuthenticationMethod Eap -EapConfigXmlStream $EAPXML

# enabled forced tunneling
Set-VpnConnection -Name $vpnConnectionName -SplitTunneling $false 

次の例は、ユーザー証明書ベースの認証用の EAP XML ファイルを示しています。 IssuerHash フィールドをルート証明書の拇印に置き換えることで、クライアント デバイスが認証のために VPN サーバーに提示する正しい証明書を選択していることを確認します。

<EapHostConfig xmlns="http://www.microsoft.com/provisioning/EapHostConfig">
    <EapMethod>
        <Type xmlns="http://www.microsoft.com/provisioning/EapCommon">13</Type>
        <VendorId xmlns="http://www.microsoft.com/provisioning/EapCommon">0</VendorId>
        <VendorType xmlns="http://www.microsoft.com/provisioning/EapCommon">0</VendorType>
        <AuthorId xmlns="http://www.microsoft.com/provisioning/EapCommon">0</AuthorId>
    </EapMethod>
    <Config xmlns="http://www.microsoft.com/provisioning/EapHostConfig">
        <Eap xmlns="http://www.microsoft.com/provisioning/BaseEapConnectionPropertiesV1">
            <Type>13</Type>
            <EapType xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV1">
                <CredentialsSource>
                    <CertificateStore>
                        <SimpleCertSelection>true</SimpleCertSelection>
                    </CertificateStore>
                </CredentialsSource>
                <ServerValidation>
                    <DisableUserPromptForServerValidation>false</DisableUserPromptForServerValidation>
                    <ServerNames></ServerNames>
                </ServerValidation>
                <DifferentUsername>false</DifferentUsername>
                <PerformServerValidation xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV2">false</PerformServerValidation>
                <AcceptServerName xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV2">false</AcceptServerName>
                <TLSExtensions xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV2">
                    <FilteringInfo xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV3">
                        <CAHashList Enabled="true">
                            <IssuerHash> REPLACE THIS WITH ROOT CERTIFICATE THUMBPRINT </IssuerHash>
                        </CAHashList>
                    </FilteringInfo>
                </TLSExtensions>
            </EapType>
        </Eap>
    </Config>
</EapHostConfig>

マシン証明書認証を使用した IKEv2

マシン証明書を使用してリモート ユーザーを認証するには、次のサンプル PowerShell スクリプトを使用します。 VpnSettings ファイルと EAP XML ファイルの内容を PowerShell に適切にインポートするには、 Get-Content PowerShell コマンドを実行する前に適切なディレクトリに移動します。

# specify the name of the VPN Connection to be installed on the client
$vpnConnectionName = "UserCertVPNConnection"

# get the VPN Server FQDN from the profile downloaded from Azure portal
$downloadedXML = [xml] (Get-Content VpnSettings.xml)
$vpnserverFQDN = $downloadedXML.VpnProfile.VpnServer

# create the VPN Connection
Add-VpnConnection -Name $vpnConnectionName -ServerAddress $vpnserverFQDN -TunnelType Ikev2 -AuthenticationMethod MachineCertificate 

# enabled forced tunneling
Set-VpnConnection -Name $vpnConnectionName -SplitTunneling $false 

ユーザー名とパスワード (EAP-MSCHAPv2) を使用した RADIUS サーバー認証を使用した IKEv2

ユーザー名とパスワードベースの RADIUS 認証 (EAP-MASCHAPv2) を使用してリモート ユーザーを認証するには、次のサンプル PowerShell スクリプトを使用します。 VpnSettings ファイルと EAP XML ファイルの内容を PowerShell に適切にインポートするには、 Get-Content PowerShell コマンドを実行する前に適切なディレクトリに移動します。

# specify the name of the VPN Connection to be installed on the client
$vpnConnectionName = "SampleConnectionName"

# get the VPN Server FQDN from the profile downloaded from Azure portal
$downloadedXML = [xml] (Get-Content VpnSettings.xml)
$vpnserverFQDN = $downloadedXML.VpnProfile.VpnServer

# use the appropriate EAP XML file based on the authentication method specified on the Point-to-site VPN gateway
$EAPXML = [xml] (Get-Content EapXML.xml)

# create the VPN Connection
Add-VpnConnection -Name $vpnConnectionName -ServerAddress $vpnserverFQDN -TunnelType Point-to-sitev2 -AuthenticationMethod Eap -EapConfigXmlStream $EAPXML

# enabled forced tunneling
Set-VpnConnection -Name $vpnConnectionName -SplitTunneling $false 

EAP XML ファイルの例を次に示します。

<EapHostConfig xmlns="http://www.microsoft.com/provisioning/EapHostConfig">
    <EapMethod>
        <Type xmlns="http://www.microsoft.com/provisioning/EapCommon">26</Type>
        <VendorId xmlns="http://www.microsoft.com/provisioning/EapCommon">0</VendorId>
        <VendorType xmlns="http://www.microsoft.com/provisioning/EapCommon">0</VendorType>
        <AuthorId xmlns="http://www.microsoft.com/provisioning/EapCommon">0</AuthorId>
    </EapMethod>
    <Config xmlns="http://www.microsoft.com/provisioning/EapHostConfig">
        <Eap xmlns="http://www.microsoft.com/provisioning/BaseEapConnectionPropertiesV1">
            <Type>26</Type>
            <EapType xmlns="http://www.microsoft.com/provisioning/MsChapV2ConnectionPropertiesV1">
                <UseWinLogonCredentials>false</UseWinLogonCredentials>
            </EapType>
        </Eap>
    </Config>
</EapHostConfig>

ユーザー証明書を使用した RADIUS サーバー認証を使用した IKEv2 (EAP-TLS)

証明書ベースの RADIUS 認証 (EAP-TLS) を使用してリモート ユーザーを認証するには、次のサンプル PowerShell スクリプトを使用します。 VpnSettings ファイルと EAP XML ファイルの内容を PowerShell にインポートするには、Get-Content PowerShell コマンドを実行する前に適切なディレクトリに移動する必要があることに注意してください。

# specify the name of the VPN Connection to be installed on the client
$vpnConnectionName = "SampleConnectionName"

# get the VPN Server FQDN from the profile downloaded from Azure portal
$downloadedXML = [xml] (Get-Content VpnSettings.xml)
$vpnserverFQDN = $downloadedXML.VpnProfile.VpnServer

# use the appropriate EAP XML file based on the authentication method specified on the Point-to-site VPN gateway
$EAPXML = [xml] (Get-Content EapXML.xml)

# create the VPN Connection
Add-VpnConnection -Name $vpnConnectionName -ServerAddress $vpnserverFQDN -TunnelType Ikev2 -AuthenticationMethod Eap -EapConfigXmlStream $EAPXML

# enabled forced tunneling
Set-VpnConnection -Name $vpnConnectionName -SplitTunneling $false 

サンプルの EAP XML ファイルを次に示します。 TrustedRootCA フィールドを証明機関の証明書の拇印に変更し、IssuerHash をルート証明書の拇印に変更します。

<EapHostConfig xmlns="http://www.microsoft.com/provisioning/EapHostConfig">
    <EapMethod>
        <Type xmlns="http://www.microsoft.com/provisioning/EapCommon">13</Type>
        <VendorId xmlns="http://www.microsoft.com/provisioning/EapCommon">0</VendorId>
        <VendorType xmlns="http://www.microsoft.com/provisioning/EapCommon">0</VendorType>
        <AuthorId xmlns="http://www.microsoft.com/provisioning/EapCommon">0</AuthorId>
    </EapMethod>
    <Config xmlns="http://www.microsoft.com/provisioning/EapHostConfig">
        <Eap xmlns="http://www.microsoft.com/provisioning/BaseEapConnectionPropertiesV1">
            <Type>13</Type>
            <EapType xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV1">
                <CredentialsSource>
                    <CertificateStore>
                        <SimpleCertSelection>false</SimpleCertSelection>
                    </CertificateStore>
                </CredentialsSource>
                <ServerValidation>
                    <DisableUserPromptForServerValidation>false</DisableUserPromptForServerValidation>
                    <ServerNames></ServerNames>
                    <TrustedRootCA> CERTIFICATE AUTHORITY THUMBPRINT </TrustedRootCA>
                </ServerValidation>
                <DifferentUsername>true</DifferentUsername>
                <PerformServerValidation xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV2">true</PerformServerValidation>
                <AcceptServerName xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV2">true</AcceptServerName>
                <TLSExtensions xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV2">
                    <FilteringInfo xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV3">
                        <CAHashList Enabled="true">
                            <IssuerHash> ROOT CERTIFCATE THUMBPRINT  </IssuerHash>
                        </CAHashList>
                    </FilteringInfo>
                </TLSExtensions>
            </EapType>
        </Eap>
    </Config>
</EapHostConfig>

次のステップ

Virtual WAN の詳細については、FAQ を参照してください。