Поделиться через


Настройка принудительного туннелирования для VPN "точка — сеть" в Виртуальной глобальной сети.

Принудительное туннелирование позволяет отправлять весь трафик (включая интернет-трафик) от удаленных пользователей в Azure. В Виртуальной глобальной сети принудительное туннелирование для удаленных пользователей VPN типа "точка — сеть" означает, что маршрут 0.0.0.0/0 по умолчанию объявляется для удаленных пользователей VPN.

Создание концентратора Виртуальной глобальной сети

В этой статье предполагается, что вы уже развернули виртуальную сеть WAN с одним или несколькими центрами.

Чтобы создать виртуальную глобальную сеть и новый концентратор, выполните действия, описанные в следующих статьях.

Настройка VPN "точка — сеть"

В этой статье также предполагается, что вы уже развернули VPN-шлюз "точка — сеть" в центре Виртуальной глобальной сети. Кроме того, предполагается, что вы создали профили VPN "точка — сеть" для назначения шлюзу.

Сведения о создании VPN-шлюза "точка — сеть" и связанных профилей см. в статье "Создание VPN-шлюза "точка — сеть".

Существует несколько способов настройки принудительного туннелирования и объявления маршрута по умолчанию (0.0.0.0/0) для VPN-клиентов удаленного пользователя, подключенных к Виртуальной глобальной сети.

  • Статический маршрут 0.0.0.0/0 можно указать в defaultRouteTable с помощью подключения виртуальной сети следующего прыжка. Это приведет к принудительной отправке всего интернет-трафика на сетевой виртуальный модуль, развернутый в этой периферийной виртуальной сети. Более подробные инструкции см. в описании альтернативного рабочего процесса в маршруте через NVA.
  • С помощью диспетчера брандмауэра Azure можно настроить Виртуальную глобальную сеть для отправки всего трафика, привязанного к Интернету, через диспетчера брандмауэра Azure, развернутого в центре Виртуальной глобальной сети. Инструкции по настройке и руководство см. в документации по диспетчеру брандмауэра Azure по защите виртуальных центров. Кроме того, это можно настроить с помощью политики маршрутизации интернет-трафика. Дополнительные сведения см. в разделе "Намерения маршрутизации и политики маршрутизации".
  • Диспетчер брандмауэра можно использовать для отправки интернет-трафика через стороннего поставщика безопасности. Дополнительные сведения об этой возможности см. в разделе "Доверенные поставщики безопасности".
  • Вы можете настроить одну из ветвей (VPN типа "сеть — сеть", канал ExpressRoute) для объявления маршрута 0.0.0.0/0 в Виртуальной глобальной сети.

После настройки одного из указанных выше четырех методов убедитесь, что для VPN-шлюза "точка — сеть" включен флаг EnableInternetSecurity. Этот флаг должен иметь значение true, чтобы клиенты были правильно настроены для принудительного туннелирования.

Чтобы включить флаг EnableInternetSecurity, используйте следующую команду PowerShell, заменив соответствующие значения для вашей среды.

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

Скачивание профиля VPN "точка — сеть"

Чтобы скачать профиль VPN "точка — сеть", см. "Глобальные профили и профили центров". Информация в ZIP-файле, скачанном из портал Azure, крайне важна для правильной настройки клиентов.

Настройка принудительного туннелирования для VPN-клиентов Azure (OpenVPN)

Действия по настройке принудительного туннелирования различаются в зависимости от операционной системы устройства конечного пользователя.

Клиенты Windows

Примечание.

Для клиентов Windows принудительное туннелирование с помощью VPN-клиента Azure доступно только с версией программного обеспечения 2:1900:39.0 или более поздней.

  1. Проверьте версию VPN-клиента Azure, совместимую с принудительным туннелированием. Для этого щелкните три точки в нижней части VPN-клиента Azure, а затем щелкните "Справка". Кроме того, для перехода к справке используется клавиша CTRL-H. Номер версии можно найти в верхней части экрана. Убедитесь, что номер версии — 2:1900:39.0 или более поздний.

  2. Откройте ZIP-файл, скачанный из предыдущего раздела. Вы увидите папку с названием AzureVPN. Откройте папку и откройте azurevpnconfig.xml в любом средстве редактирования XML.

  3. В azureconfig.xml есть поле с именем "версия". Если число между тегами версии равно 1, измените номер версии на 2.

    <version>2</version>
    
  4. Импортируйте профиль в VPN-клиент Azure. Дополнительные сведения об импорте профиля см. в инструкциях по импорту VPN-клиента Azure.

  5. Подключение к только что добавленному подключению. Теперь вы выполняете принудительно туннелирование всего трафика в Виртуальной глобальной сети Azure.

Клиенты macOS

Когда клиент macOS узнает маршрут по умолчанию из Azure, принудительное туннелирование автоматически настраивается на клиентском устройстве. Никаких дополнительных действий не требуется. Инструкции по использованию VPN-клиента macOS Azure для подключения к VPN-шлюзу Виртуальной глобальной сети "точка — сеть" см. в Руководстве по настройке macOS.

Настройка принудительного туннелирования для клиентов IKEv2

Для клиентов IKEv2 нельзя напрямую использовать исполняемые профили, скачанные из портала Azure. Чтобы правильно настроить клиент, необходимо запустить сценарий PowerShell или распространить профиль VPN через Intune.

В зависимости от метода проверки подлинности, настроенного в VPN-шлюзе "точка — сеть", используйте другой файл конфигурации EAP. Ниже приведены примеры файлов конфигурации EAP.

IKEv2 с проверкой подлинности сертификата пользователя

Чтобы использовать сертификаты пользователей для проверки подлинности удаленных пользователей, используйте пример скрипта PowerShell ниже. Чтобы правильно импортировать содержимое VPNSettings и XML-файлов EAP в PowerShell, перейдите в соответствующий каталог перед выполнением команды PowerShell get-Content.

# 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 

В следующем примере показан XML-файл EAP для проверки подлинности на основе сертификата пользователя. Замените поле 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 и XML-файлов EAP в PowerShell, перейдите в соответствующий каталог перед выполнением команды PowerShell get-Content.

# 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 

IKEv2 с проверкой подлинности сервера RADIUS с именем пользователя и паролем (EAP-MSCHAPv2)

Чтобы использовать проверку подлинности RADIUS на основе имени пользователя и пароля (EAP-MASCHAPv2) для проверки подлинности удаленных пользователей, используйте приведенный ниже пример сценария PowerShell. Чтобы правильно импортировать содержимое VPNSettings и XML-файлов EAP в PowerShell, перейдите в соответствующий каталог перед выполнением команды PowerShell get-Content.

# 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 

Ниже приведен пример XML-файла EAP.

<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>

IKEv2 с проверкой подлинности сервера RADIUS с помощью сертификатов пользователей (EAP-TLS)

Чтобы использовать проверку подлинности RADIUS на основе сертификатов (EAP-TLS) для проверки подлинности удаленных пользователей, используйте приведенный ниже пример скрипта PowerShell. Обратите внимание, что для импорта содержимого VPNSettings и XML-файлов EAP в 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 

Ниже приведен пример XML-файла EAP. Измените поле 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 CERTIFICATE THUMBPRINT  </IssuerHash>
                        </CAHashList>
                    </FilteringInfo>
                </TLSExtensions>
            </EapType>
        </Eap>
    </Config>
</EapHostConfig>

Следующие шаги

Дополнительные сведения о виртуальной глобальной сети см. в статье, содержащей Часто задаваемые вопросы о ней.