Configuración de túneles de dispositivo VPN en el cliente de Windows

Se aplica a: Windows Server 2022, Windows Server 2019, Windows 10 y Windows 11

Always On VPN le ofrece la posibilidad de crear un perfil de VPN dedicado para el dispositivo o la máquina. Las conexiones VPN de Always On incluyen dos tipos de túneles:

  • Túnel de dispositivo se conecta a los servidores VPN especificados antes de que los usuarios inicien sesión en el dispositivo. Los túneles de dispositivo se utilizan en escenarios de conectividad previos al inicio de sesión y para administrar dispositivos.

  • Túnel de usuario solo se conecta cuando un usuario inicia sesión en el dispositivo. Los túneles de usuario permiten a los usuarios acceder a los recursos de la organización utilizando servidores VPN.

A diferencia del túnel de usuario, que solo se conecta después de que un usuario inicie sesión en el dispositivo o la máquina, el túnel de dispositivo permite que la VPN establezca conectividad antes de que el usuario inicie sesión. Tanto el túnel de dispositivo como el túnel de usuario funcionan de forma independiente con sus perfiles de VPN, se pueden conectar al mismo tiempo y pueden usar diferentes métodos de autenticación y otras opciones de configuración de VPN según corresponda. El túnel de usuario es compatible con IKEv2 y SSTP, y el túnel de dispositivo solo es compatible con IKEv2 sin soporte para reserva SSTP.

El túnel de usuario se admite en dispositivos unidos a un dominio, no unidos a ningún dominio (grupo de trabajo) o unidos a un Microsoft Entra ID para permitir escenarios empresariales y BYOD. Está disponible en todas las ediciones de Windows y las características de la plataforma están disponibles para terceros mediante compatibilidad con complementos VPN para UWP.

El túnel de dispositivo solo puede configurarse en dispositivos unidos a un dominio que ejecuten Windows 10 Enterprise o Education, versión 1709 o posterior. No hay compatibilidad con el control de terceros del túnel del dispositivo. Si solo se usa un túnel de dispositivo en un sistema, puede configurar una tabla de directiva de resolución de nombres (NRPT). Si se usa un túnel de usuario y un túnel de dispositivo en un sistema, puede usar la tabla de directiva de resolución de nombres (NRPT) solo en el túnel de usuario.

El túnel de dispositivo no es compatible con el túnel forzado. Debe configurarlo como túnel dividido. |

Requisitos previos

Debe habilitar la autenticación de certificados de máquina para las conexiones VPN y definir una entidad de certificación raíz para autenticar las conexiones VPN entrantes.

$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

Device Tunnel Features and Requirements

Configuración del túnel de dispositivo VPN

El XML de perfil de ejemplo siguiente proporciona una buena guía para escenarios en los que solo se requieren extracciones iniciadas por el cliente a través del túnel de dispositivo. Los filtros de tráfico se aprovechan para restringir el túnel de dispositivo solo a la administración del tráfico. Esta configuración funciona bien para escenarios típicos de actualización de directiva de grupo (GP), Windows Update y Microsoft Endpoint Configuration Manager, así como la conectividad VPN para el primer inicio de sesión sin credenciales almacenadas en caché o escenarios de restablecimiento de contraseña.

Para los casos de inserción iniciados por el servidor, como escenarios de actualización de Configuration Manager remotos, Administración remota de Windows (WinRM) y GPUpdate remota, debe permitir el tráfico entrante en el túnel de dispositivo, por lo que no se pueden usar filtros de tráfico. Si en el perfil de túnel de dispositivo activa los filtros de tráfico, el túnel de dispositivo deniega el tráfico entrante. Esta limitación se quitará en futuras versiones.

Ejemplo de profileXML de VPN

A continuación se muestra el ejemplo de profileXML de VPN.

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

En función de las necesidades de cada escenario de implementación concreto, otra característica de VPN que se puede configurar con el túnel del dispositivo es Detección de red de confianza.

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

Implementación y prueba

Puede configurar túneles de dispositivo mediante un script de Windows PowerShell y mediante el puente de Instrumental de administración de Windows (WMI). El túnel de dispositivo Always On VPN debe configurarse en el contexto de la cuenta SISTEMA LOCAL. Para lograrlo, será necesario usar PsExec, una de las PsTools incluidas en el conjunto de utilidades Sysinternals.

Para obtener instrucciones sobre cómo implementar un perfil por dispositivo (.\Device) frente a un perfil de usuario (.\User), consulte Uso del scripting de PowerShell con el proveedor de puentes de WMI.

Ejecute el siguiente comando de Windows PowerShell para comprobar que ha implementado correctamente un perfil de dispositivo:

Get-VpnConnection -AllUserConnection

La salida muestra una lista de los perfiles de VPN para todo el dispositivo que están implementados en el mismo.

Ejemplo de un script de Windows PowerShell

Puede usar el siguiente script de Windows PowerShell para ayudar a crear su propio script para la creación de perfiles.

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"

Recursos adicionales

A continuación se muestran recursos adicionales para ayudar con la implementación de VPN.

Recursos de configuración del cliente VPN

A continuación se muestran los recursos de configuración del cliente VPN.

Recursos de puerta de enlace de Servidor de acceso remoto

A continuación se muestran los recursos de puerta de enlace del Servidor de acceso remoto (RAS).

Importante

Al usar el Túnel de dispositivo con una puerta de enlace RAS de Microsoft, deberá configurar el servidor RRAS para que sea compatible con la autenticación de certificado de máquina IKEv2 activando el método de autenticación Permitir autenticación de certificado de máquina para IKEv2 tal y como se describe aquí. Una vez habilitada esta configuración, se recomienda encarecidamente que el cmdlet Set-VpnAuthProtocol de PowerShell, junto con el parámetro opcional RootCertificateNameToAccept, se use para asegurarse de que las conexiones IKEv2 de RRAS solo se permiten para los certificados de cliente VPN que se encadenan a una entidad de certificación raíz interna o privada definida explícitamente. Como alternativa, el almacén de Entidades de certificación raíz de confianza en el servidor RRAS debería modificarse para asegurarse de que no contiene entidades de certificación públicas como se describe aquí. Es posible que también sea necesario tener en cuenta métodos similares para otras puertas de enlace de VPN.