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


Настройка туннелей VPN-устройств в клиенте Windows

AlwaysOn VPN позволяет создать выделенный профиль VPN для устройства или компьютера. VPN-подключения AlwaysOn включают два типа туннелей:

  • Device tunnel connects to specified VPN servers before users log on to the device. Сценарии подключения перед входом и управление устройствами используют туннель устройств.

  • User tunnel connects only after a user logs on to the device. Пользовательский туннель позволяет пользователям получать доступ к ресурсам организации через VPN-серверы.

Unlike user tunnel, which only connects after a user logs on to the device or machine, device tunnel allows the VPN to establish connectivity before the user logs on. Both device tunnel and user tunnel operate independently with their VPN profiles, can be connected at the same time, and can use different authentication methods and other VPN configuration settings as appropriate. Пользовательский туннель поддерживает SSTP и IKEv2, а туннель устройств поддерживает IKEv2 только без поддержки резервного размещения SSTP.

Пользовательский туннель поддерживается на присоединенных к домену устройствах, не присоединенных к домену (рабочей группе) или присоединенных к домену устройствах с идентификатором Microsoft Entra, которые позволяют использовать сценарии корпоративного и BYOD. Она доступна во всех выпусках Windows, а функции платформы доступны сторонним сторонам посредством поддержки VPN-подключаемого модуля UWP.

Туннель устройств можно настроить только на присоединенных к домену устройствах с Windows 10 Корпоративная или education версии 1709 или более поздней. Нет поддержки стороннего управления туннельом устройств. Если в системе используется только туннель устройств, можно настроить таблицу политики разрешения имен (NRPT). Если в системе используется пользовательский туннель и туннель устройства, можно использовать таблицу политики разрешения имен (NRPT) только в пользовательском туннелье.

Туннель устройств не поддерживает принудительное туннелирование. Его необходимо настроить как разделенный туннель. |

Prerequisites

Необходимо включить проверку подлинности сертификата компьютера для VPN-подключений и определить корневой центр сертификации для проверки подлинности входящих VPN-подключений.

$VPNRootCertAuthority = "Common Name of trusted root certification authority"
$RootCACert = (Get-ChildItem -Path cert:LocalMachine\root | Where-Object {$_.Subject -Like "*$VPNRootCertAuthority*" })
Set-VpnAuthProtocol -UserAuthProtocolAccepted Certificate, EAP -RootCertificateNameToAccept $RootCACert -PassThru

Функции и требования к туннелям устройств

Конфигурация туннеля VPN-устройств

В приведенном ниже примере XML профиля приведены рекомендации по сценариям, в которых требуются только инициированные клиентом вытягивание через туннель устройства. Фильтры трафика используются для ограничения туннеля устройства только для управления трафиком. Эта конфигурация хорошо подходит для Обновл. Windows, типичных сценариев групповой политики (GP) и обновлений Microsoft Endpoint Configuration Manager, а также vpn-подключения для первого входа без кэшированных учетных данных или сценариев сброса пароля.

Для сценариев отправки, инициированных сервером, таких как удаленное управление Windows (WinRM), удаленный GPUpdate и сценарии удаленного обновления Configuration Manager, необходимо разрешить входящий трафик в туннель устройства, поэтому фильтры трафика нельзя использовать. Если в профиле туннеля устройства включен фильтр трафика, то туннель устройств запрещает входящий трафик. Это ограничение будет удалено в будущих выпусках.

Пример профиля VPNXML

Ниже приведен пример профиля VPNXML.

<VPNProfile>
  <NativeProfile>
<Servers>vpn.contoso.com</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>10.10.0.2</Address>
<PrefixSize>32</PrefixSize>
  </Route>
  <Route>
<Address>10.10.0.3</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>10.10.0.2, 10.10.0.3</RemoteAddressRanges>
  </TrafficFilter>
<!-- 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>

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

 <!-- inside/outside detection -->
  <TrustedNetworkDetection>corp.contoso.com</TrustedNetworkDetection>

Развертывание и тестирование

Вы можете настроить туннели устройств с помощью скрипта Windows PowerShell и моста инструментария управления Windows (WMI). The Always On VPN device tunnel must be configured in the context of the LOCAL SYSTEM account. To accomplish this, it will be necessary to use PsExec, one of the PsTools included in the Sysinternals suite of utilities.

Рекомендации по развертыванию профиля на устройство (.\Device) и профиль на пользователя (.\User) см. в статье "Использование сценариев PowerShell" с поставщиком моста WMI.

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

Get-VpnConnection -AllUserConnection

В выходных данных отображается список профилей VPN на уровне устройства, развернутых на устройстве.

Пример скрипта Windows PowerShell

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

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"

Additional Resources

Ниже приведены дополнительные ресурсы для поддержки развертывания VPN.

Ресурсы конфигурации VPN-клиента

Ниже приведены ресурсы конфигурации VPN-клиента.

Ресурсы шлюза сервера удаленного доступа

Ниже приведены ресурсы шлюза сервера удаленного доступа (RAS).

Important

При использовании Device Tunnel с шлюзом Microsoft RAS необходимо настроить сервер RRAS для поддержки проверки подлинности по сертификату IKEv2, включив разрешение проверки подлинности сертификата компьютера для IKEv2, как описано здесь. Once this setting is enabled, it is strongly recommended that the Set-VpnAuthProtocol PowerShell cmdlet, along with the RootCertificateNameToAccept optional parameter, is used to ensure that RRAS IKEv2 connections are only permitted for VPN client certificates that chain to an explicitly defined internal/private Root Certification Authority. Кроме того, следует изменить хранилище доверенных корневых центров сертификации на сервере RRAS, чтобы убедиться, что он не содержит общедоступных центров сертификации, как описано здесь. Аналогичные методы также могут быть рассмотрены для других VPN-шлюзов.