Настройка туннеля Always On VPN для пользователя
Функция Always On появилась в VPN-клиенте Windows 10. Always On — это возможность поддерживать VPN-подключение. С Always On активный профиль VPN может подключаться автоматически и оставаться подключенным в зависимости от триггеров, таких как вход пользователя в систему, изменение состояния сети или активный экран устройства.
Вы можете использовать шлюзы с поддержкой Always On, чтобы создавать постоянные пользовательские туннели и туннели устройств к Azure.
Подключения Always On VPN включают один из двух типов туннелей:
Туннель устройства: подключается к указанным серверам VPN до того, как пользователи войдут на устройство. Сценарии подключения перед входом в систему и управление устройствами используют туннель устройства.
Туннель пользователя: подключается только после того, как пользователи войдут в систему. Используя пользовательские туннели, вы можете получить доступ к ресурсам организации через серверы VPN.
Туннели устройств и пользовательские туннели работают независимо от их профилей VPN. Их можно подключать одновременно, и они могут использовать разные методы аутентификации и другие параметры конфигурации VPN, если это необходимо.
В этой статье приводятся сведения о настройке туннеля пользователя Always On VPN. Сведения о настройке туннеля устройства см. в статье Настройка туннеля устройства Always On VPN.
Настройка шлюза
Вы можете настроить VPN-шлюз для использования протокола IKEv2 и аутентификации на основе сертификатов с помощью инструкций из статьи Настройка VPN-подключения типа "точка — сеть".
Настроить пользовательский туннель
Установите сертификаты клиента на клиенте Windows, как показано в этой статье о VPN-клиенте типа "точка — сеть ". Сертификат должен находиться в текущем хранилище пользователя.
Vpn-клиент Always On можно настроить с помощью PowerShell, Configuration Manager или Intune, следуя инструкциям в разделе Настройка клиентских Always On VPN-подключений Windows 10 или более поздней версии.
Пример конфигурации пользовательского туннеля
После настройки шлюза виртуальной сети и установки сертификата клиента в хранилище локального компьютера на клиенте Windows настройте туннель клиентского устройства, используя следующие примеры. Обратите внимание, что эти примеры были проверены в Windows 10.
Скопируйте следующий текст и сохраните его как usercert.ps1:
Param( [string]$xmlFilePath, [string]$ProfileName ) $a = Test-Path $xmlFilePath echo $a $ProfileXML = Get-Content $xmlFilePath echo $XML $ProfileNameEscaped = $ProfileName -replace ' ', '%20' $Version = 201606090004 $ProfileXML = $ProfileXML -replace '<', '<' $ProfileXML = $ProfileXML -replace '>', '>' $ProfileXML = $ProfileXML -replace '"', '"' $nodeCSPURI = './Vendor/MSFT/VPNv2' $namespaceName = "root\cimv2\mdm\dmmap" $className = "MDM_VPNv2_01" $session = New-CimSession try { $newInstance = New-Object Microsoft.Management.Infrastructure.CimInstance $className, $namespaceName $property = [Microsoft.Management.Infrastructure.CimProperty]::Create("ParentID", "$nodeCSPURI", 'String', 'Key') $newInstance.CimInstanceProperties.Add($property) $property = [Microsoft.Management.Infrastructure.CimProperty]::Create("InstanceID", "$ProfileNameEscaped", 'String', 'Key') $newInstance.CimInstanceProperties.Add($property) $property = [Microsoft.Management.Infrastructure.CimProperty]::Create("ProfileXML", "$ProfileXML", 'String', 'Property') $newInstance.CimInstanceProperties.Add($property) $session.CreateInstance($namespaceName, $newInstance) $Message = "Created $ProfileName profile." Write-Host "$Message" } catch [Exception] { $Message = "Unable to create $ProfileName profile: $_" Write-Host "$Message" exit } $Message = "Complete." Write-Host "$Message"
Скопируйте следующий текст и сохраните его как VPNProfile.xml в той же папке, что и usercert.ps1. Измените следующий текст в соответствии со своей средой:
<Servers>azuregateway-1234-56-78dc.cloudapp.net</Servers> <= Can be found in the VpnSettings.xml in the downloaded profile zip file
<Address>192.168.3.5</Address> <= IP of resource in the vnet or the vnet address space
<Address>192.168.3.4</Address> <= IP of resource in the vnet or the vnet address space
<PrefixSize>32</PrefixSize> <= Subnet mask
<VPNProfile> <NativeProfile> <Servers>azuregateway-b115055e-0882-49bc-a9b9-7de45cba12c0-8e6946892333.vpn.azure.com</Servers> <NativeProtocolType>IKEv2</NativeProtocolType> <Authentication> <UserMethod>Eap</UserMethod> <Eap> <Configuration> <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></EapType></Eap></Config></EapHostConfig> </Configuration> </Eap> </Authentication> <RoutingPolicyType>SplitTunnel</RoutingPolicyType> <!-- disable the addition of a class based route for the assigned IP address on the VPN interface --> <DisableClassBasedDefaultRoute>true</DisableClassBasedDefaultRoute> </NativeProfile> <!-- use host routes(/32) to prevent routing conflicts --> <Route> <Address>192.168.3.5</Address> <PrefixSize>32</PrefixSize> </Route> <Route> <Address>192.168.3.4</Address> <PrefixSize>32</PrefixSize> </Route> <!-- traffic filters for the routes specified above so that only this traffic can go over the device tunnel --> <TrafficFilter> <RemoteAddressRanges>192.168.3.4, 192.168.3.5</RemoteAddressRanges> </TrafficFilter> <!-- need to specify always on = true --> <AlwaysOn>true</AlwaysOn> <RememberCredentials>true</RememberCredentials> <!--new node to register client IP address in DNS to enable manage out --> <RegisterDNS>true</RegisterDNS> </VPNProfile>
Откройте сеанс PowerShell от имени администратора.
В PowerShell перейдите в папку с файлами usercert.ps1 и VPNProfile.xml и выполните следующую команду:
C:\> .\usercert.ps1 .\VPNProfile.xml UserTest
В разделе Параметры VPN найдите запись UserTest и нажмите кнопку Подключить.
Если удалось установить подключение, значит пользовательский туннель Always On настроен успешно.
Чтобы удалить профиль
Чтобы удалить профиль, выполните следующие действия:
Выполните следующую команду:
C:\> Remove-VpnConnection UserTest
Отключите соединение и снимите флажок Подключаться автоматически.
Дальнейшие действия
Сведения об устранении проблем с подключением, которые могут возникнуть, см. в статье Проблемы с подключением типа "точка — сеть" в Azure.