Настройка туннеля 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 10 Корпоративная или Windows 10 для образовательных учреждений версии 1809 или выше.
  • Туннель можно настроить только для встроенного решения VPN Windows и только с использованием протокола IKEv2 и проверкой подлинности сертификата компьютера.
  • Для каждого устройства можно настроить только один туннель устройства.
  1. Установите сертификаты клиента на клиенте Windows 10 или более поздней версии, как описано в статье Клиент VPN типа "точка — сеть". Сертификат должен храниться в хранилище Local Machine.
  2. Создайте профиль VPN и настройте туннель устройства в контексте учетной записи LOCAL SYSTEM, выполнив эти инструкции.

Пример конфигурации для туннеля устройства

После настройки шлюза виртуальной сети и установки сертификата клиента в хранилище локального компьютера на клиенте Windows 10 или более поздней версии используйте следующие инструкции для настройки туннеля клиентского устройства:

  1. Скопируйте следующий текст и сохраните его в файле devicecert.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 '<', '&lt;'
    $ProfileXML = $ProfileXML -replace '>', '&gt;'
    $ProfileXML = $ProfileXML -replace '"', '&quot;'
    
    $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"
    
  2. Скопируйте следующий текст и сохраните его в файле VPNProfile.xml в той же папке, где расположен файл devicecert.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
    <VPNProfile>  
      <NativeProfile>  
    <Servers>azuregateway-1234-56-78dc.cloudapp.net</Servers>  
    <NativeProtocolType>IKEv2</NativeProtocolType>  
    <Authentication>  
      <MachineMethod>Certificate</MachineMethod>  
    </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>  
    <!-- need to specify always on = true --> 
      <AlwaysOn>true</AlwaysOn> 
    <!-- new node to specify that this is a device tunnel -->  
     <DeviceTunnel>true</DeviceTunnel>
    <!--new node to register client IP address in DNS to enable manage out -->
    <RegisterDNS>true</RegisterDNS>
    </VPNProfile>
    
  3. Скачайте программу PsExec из Sysinternals и извлеките ее файлы в папку C:\PSTools.

  4. В командной строке с правами администратора запустите PowerShell, выполнив следующую команду:

    Для 32-разрядной версии Windows:

    PsExec.exe -s -i powershell
    

    Для 64-разрядной версии Windows:

    PsExec64.exe -s -i powershell
    

    Снимок экрана: окно командной строки с командой для запуска 64-разрядной версии PowerShell.

  5. В PowerShell перейдите в папку с файлами devicecert.ps1 и VPNProfile.xml, а затем выполните следующую команду:

    .\devicecert.ps1 .\VPNProfile.xml MachineCertTest
    

    Снимок экрана: окно PowerShell, в котором выполнена программа MachineCertTest с помощью скрипта devicesert.

  6. Запустите rasphone.

    Снимок экрана: диалоговое окно

  7. Найдите запись MachineCertTest и щелкните Подключить.

    Снимок экрана: диалоговое окно

  8. Если подключение будет установлено, перезагрузите компьютер. Теперь туннель будет подключен автоматически.

Чтобы удалить профиль

Чтобы удалить профиль, выполните следующую команду:

На снимке экрана показано окно PowerShell, в котором выполняется команда Remove-VpnConnection -Name MachineCertTest.

Дальнейшие действия

Сведения об устранении неполадок см. в статье Проблемы с подключением типа "точка — сеть" в Azure.