Solucionar problemas de VPN de Always On
En este artículo se proporcionan instrucciones para comprobar y solucionar problemas de implementación de VPN AlwaysOn.
Si la configuración de la red privada virtual (VPN) de AlwaysOn no conecta clientes a la red interna, es posible que haya encontrado uno de los siguientes problemas:
- El certificado VPN no es válido.
- Las directivas del servidor de directivas de red (NPS) son incorrectas.
- Problemas con scripts de implementación de cliente o enrutamiento y acceso remoto.
El primer paso para solucionar problemas y probar la conexión VPN es comprender los componentes principales de la infraestructura de VPN AlwaysOn.
Puede solucionar los problemas de conexión de varias maneras. En el caso de problemas del lado cliente y solución de problemas generales, los registros de la aplicación en los equipos cliente son valiosos. Para problemas específicos de la autenticación, el registro de NPS ubicado en el servidor NPS puede ayudarle a determinar el origen del problema.
Solución general de problemas de conexión VPN AlwaysOn
Los clientes de VPN AlwaysOn atraviesan varios pasos antes de establecer una conexión. Como resultado, hay varios lugares en los que se pueden bloquear las conexiones y, a veces, es difícil averiguar dónde está el problema.
Si tiene problemas, estos son algunos pasos generales que puede seguir para averiguar lo que sucede:
- Ejecute un examen whatismyip para asegurarse de que la máquina de plantillas no está conectada externamente. Si la máquina tiene una dirección IP pública que no le pertenece, debe cambiar la dirección IP a una privada.
- Vaya a Panel de control>Red e Internet>Conexiones de red, abra las propiedades del perfil de VPN y compruebe que el valor de la pestaña General puede resolverse públicamente a través de DNS. Si no es así, es probable que la causa del problema sea que el servidor de acceso remoto o de VPN no se puedan resolver en una dirección IP.
- Abra el Protocolo de mensajes de control de Internet (ICMP) en la interfaz externa y haga ping al servidor VPN desde el cliente remoto. Si el ping se realiza correctamente, puede quitar la regla de permiso ICMP. Si no es así, es probable que la causa del problema sea que no se puede acceder al servidor VPN.
- Compruebe la configuración de las NIC internas y externas en el servidor VPN. En concreto, asegúrese de que están en la misma subred y de que la NIC externa se conecta a la interfaz correcta en el firewall.
- Compruebe el firewall de cliente, el firewall del servidor y los firewalls de hardware para asegurarse de que permiten la actividad de puerto UDP 500 y 4500. Además, si usa el puerto UDP 500, asegúrese de que IPSEC no está deshabilitado ni bloqueado en ningún lugar. Si no es así, los puertos que no se abren desde el cliente a la interfaz externa del servidor VPN están causando el problema.
- Compruebe que el servidor NPS tenga un certificado de autenticación de servidor que pueda atender las solicitudes de IKE. Además, asegúrese de que el cliente NPS tiene la dirección IP del servidor VPN correcta en su configuración. Solo debe autenticarse con PEAP y las propiedades PEAP solo deben permitir la autenticación de certificados. Puede comprobar si hay problemas de autenticación en el registro de eventos NPS. Para más información, vea Instalación y configuración del servidor NPS.
- Si puede conectarse pero no tiene acceso a internet o a la red local, compruebe si hay problemas de configuración en los grupos de direcciones IP del servidor DHCP o VPN. Además, asegúrese de que los clientes puedan acceder a esos recursos. Puede usar el servidor VPN para enrutar las solicitudes.
Solución general de problemas de script VPN_Profile.ps1
Los problemas más comunes al ejecutar manualmente el script VPN_Profile.ps1 incluyen:
- Si usa una herramienta de conexión remota, asegúrese de no usar el Protocolo de escritorio remoto (RDP) ni otros métodos de conexión remota. Las conexiones remotas pueden interferir con la capacidad del servicio para detectarle al iniciar sesión.
- Si el usuario afectado es un administrador en su equipo local, asegúrese de que tiene privilegios de administrador mientras ejecuta el script.
- Si ha habilitado otras características de seguridad de PowerShell, asegúrese de que la directiva de ejecución de PowerShell no bloquee el script. Deshabilite el modo de lenguaje restringido antes de ejecutar el script y vuelva a activarlo después de que el script haya terminado de ejecutarse.
Registros
También puede comprobar los registros de la aplicación y los registros NPS para ver los eventos que pueden indicar cuándo y dónde se está produciendo un problema.
Registros de aplicaciones
Los registros de aplicación en las máquinas cliente registran detalles de nivel superior de los eventos de conexión VPN.
Cuando esté solucionando problemas de VPN AlwaysOn, busque eventos con la etiqueta RasClient. Todos los mensajes de error devuelven el código de error al final del mensaje. Los códigos de error enumeran algunos de los códigos de error más comunes relacionados con VPN AlwaysOn. Para obtener una lista completa de códigos de error, consulte Códigos de error de enrutamiento y acceso remoto.
Registros de NPS
NPS crea y almacena los registros de contabilidad de NPS. De forma predeterminada, los registros se almacenan en %SYSTEMROOT%\System32\Logfiles\ en un archivo denominado IN<date of log creation>.txt.
De manera predeterminada, estos registros están en formato de valores separados por comas, pero no incluyen una fila de encabezado. El siguiente bloque de código contiene la fila de encabezado:
ComputerName,ServiceName,Record-Date,Record-Time,Packet-Type,User-Name,Fully-Qualified-Distinguished-Name,Called-Station-ID,Calling-Station-ID,Callback-Number,Framed-IP-Address,NAS-Identifier,NAS-IP-Address,NAS-Port,Client-Vendor,Client-IP-Address,Client-Friendly-Name,Event-Timestamp,Port-Limit,NAS-Port-Type,Connect-Info,Framed-Protocol,Service-Type,Authentication-Type,Policy-Name,Reason-Code,Class,Session-Timeout,Idle-Timeout,Termination-Action,EAP-Friendly-Name,Acct-Status-Type,Acct-Delay-Time,Acct-Input-Octets,Acct-Output-Octets,Acct-Session-Id,Acct-Authentic,Acct-Session-Time,Acct-Input-Packets,Acct-Output-Packets,Acct-Terminate-Cause,Acct-Multi-Ssn-ID,Acct-Link-Count,Acct-Interim-Interval,Tunnel-Type,Tunnel-Medium-Type,Tunnel-Client-Endpt,Tunnel-Server-Endpt,Acct-Tunnel-Conn,Tunnel-Pvt-Group-ID,Tunnel-Assignment-ID,Tunnel-Preference,MS-Acct-Auth-Type,MS-Acct-EAP-Type,MS-RAS-Version,MS-RAS-Vendor,MS-CHAP-Error,MS-CHAP-Domain,MS-MPPE-Encryption-Types,MS-MPPE-Encryption-Policy,Proxy-Policy-Name,Provider-Type,Provider-Name,Remote-Server-Address,MS-RAS-Client-Name,MS-RAS-Client-Version
Si pega esta fila de encabezado como primera línea del archivo de registro, importe el archivo en Microsoft Excel y, a continuación, Excel etiqueta correctamente las columnas.
Los registros NPS pueden ayudarle a diagnosticar problemas relacionados con la directiva. Para más información sobre los registros de NPS, consulte Interpretación de archivos de registro en formato de base de datos de NPS.
Códigos de error
En las secciones siguientes se describe cómo resolver los errores más comunes.
Error 800: la conexión remota no se pudo conectar
Este problema se produce cuando el servicio no puede realizar una conexión remota porque se produjo un error en los túneles VPN intentados, a menudo porque el servidor VPN no es accesible. Si la conexión intenta usar un protocolo de tunelización de capa 2 (L2TP) o un túnel IPsec, este error significa que los parámetros de seguridad necesarios para la negociación de IPsec no están configurados correctamente.
Causa: Tipo de túnel VPN
Puede encontrar este problema cuando el tipo de túnel VPN está establecido en Automático y el intento de conexión no se realiza correctamente en todos los túneles VPN.
Solución: comprobación de la configuración de VPN
Dado que la configuración de VPN causa este problema, debe solucionar los problemas de configuración de VPN y la conexión intentando lo siguiente:
- Si sabe qué túnel usar para la implementación, establezca el tipo de VPN en ese tipo de túnel determinado en el lado del cliente VPN.
- Asegúrese de que los puertos de Intercambio de claves de Internet (IKE) en los puertos del Protocolo de datagramas de usuario (UDP) 500 y 4500 no están bloqueados.
- Asegúrese de que tanto el cliente como el servidor tienen certificados correctos para IKE.
Error 809: no se puede establecer una conexión entre la máquina local y el servidor VPN
En este problema, el servidor remoto no responde, lo que impide que la máquina local y el servidor VPN se conecten. Esto podría deberse a que uno o varios dispositivos de red, como enrutadores, firewalls o la traducción de direcciones de red (NAT) entre el equipo y el servidor remoto no están configurados para permitir conexiones VPN. Póngase en contacto con el administrador o el proveedor de servicios para determinar qué dispositivo puede provocar el problema.
Causa del error 809
Puede encontrar este problema cuando se bloquean los puertos UDP 500 o 4500 en el servidor VPN o el firewall. El bloqueo puede ocurrir cuando uno de los dispositivos de red entre el equipo y el servidor remoto, como el firewall, NAT o enrutadores, no están configurados correctamente.
Solución: compruebe los puertos de los dispositivos entre la máquina local y el servidor remoto
Para solucionar este problema, primero debe ponerse en contacto con el administrador o el proveedor de servicios para averiguar qué dispositivo está bloqueado. Después, asegúrese de que los firewalls de ese dispositivo permiten los puertos UDP 500 y 4500. Si esto no soluciona el problema, compruebe los firewalls en todos los dispositivos entre la máquina local y el servidor remoto.
Error 812: no se puede conectar a VPN AlwaysOn
Este problema se produce cuando el servidor de acceso remoto (RAS) o el servidor VPN no se pueden conectar a VPN AlwaysOn. El método de autenticación que usó el servidor para comprobar el nombre de usuario y la contraseña no coincidía con el método de autenticación configurado en el perfil de la conexión.
Siempre que encuentre el error 812, se recomienda que se ponga en contacto con el administrador del servidor RAS inmediatamente para informarles de lo que ha ocurrido.
Si usa el Visor de eventos para solucionar problemas, puede encontrar este problema marcado como registro de eventos 20276. Este evento suele aparecer cuando una configuración de protocolo de autenticación de servidor VPN basada en enrutamiento y acceso remoto (RRAS) no coincide con la configuración del equipo cliente de VPN.
Causa del error 812
Normalmente se produce este error cuando NPS especificó una condición de autenticación que el cliente no puede cumplir. Por ejemplo, si el NPS especifica que necesita un certificado para proteger la conexión del Protocolo de autenticación extensible protegida (PEAP), no se puede autenticar si el cliente intenta usar EAP-MSCHAPv2 en su lugar.
Solución: compruebe la configuración de autenticación del servidor NPS y del cliente
Para resolver este problema, asegúrese de que los requisitos de autenticación para el cliente y el servidor NPS coinciden. Si no es así, cámbielas en consecuencia.
Error 13806: IKE no encuentra un certificado de máquina válido
Este problema se produce cuando IKE no encuentra un certificado de máquina válido.
Causa del error 13806
Normalmente se produce este error cuando el servidor VPN no tiene el certificado de máquina o de máquina raíz necesario.
Solución: instalar un certificado válido en el almacén de certificados correspondiente
Para resolver este problema, asegúrese de que los certificados necesarios están instalados en el equipo cliente y en el servidor VPN. Si no es así, póngase en contacto con el administrador de seguridad de red y pídale que instale certificados válidos en el almacén de certificados correspondiente.
Error 13801: las credenciales de autenticación de IKE no son válidas
Este problema se produce cuando el servidor o el cliente no pueden aceptar las credenciales de autenticación de IKE.
Causa del error 13801
Este error puede producirse debido a lo siguiente:
- El certificado de máquina usado para la validación de IKEv2 en el servidor RAS no tiene la opción Autenticación de servidor habilitada en Uso mejorado de clave.
- El certificado de máquina del servidor RAS ha expirado.
- La máquina cliente no tiene el certificado raíz para validar el certificado de servidor RAS.
- El nombre del servidor VPN del equipo cliente no coincide con el valor subjectName en el certificado de servidor.
Solución 1: comprobar la configuración del certificado de servidor
Si el problema es el certificado de máquina del servidor RAS, asegúrese de que el certificado incluye Autenticación del servidor en Uso mejorado de claves.
Solución 2: asegúrese de que el certificado de máquina sigue siendo válido
Si el problema es que el certificado de máquina RAS expiró, asegúrese de que sigue siendo válido. Si no es así, instale un certificado válido.
Solución 3: asegúrese de que la máquina cliente tiene un certificado raíz
Si el problema está relacionado con que el equipo cliente no tiene un certificado raíz, compruebe primero las entidades de certificación raíz de confianza en el servidor RRAS para asegurarse de que la entidad de certificación que usa está ahí. Si no está ahí, instale un certificado raíz válido.
Solución 4: hacer que el nombre del servidor VPN del equipo cliente coincida con el certificado de servidor
En primer lugar, asegúrese de que el cliente VPN se conecta mediante el mismo nombre de dominio completo (FQDN) que usa el certificado de servidor VPN. Si no es así, cambie el nombre del cliente para que coincida con el nombre del certificado de servidor.
Error 0x80070040: el certificado de servidor no tiene autenticación de servidor en sus entradas de uso
Este problema se produce cuando el certificado de servidor no tiene autenticación de servidor como una de sus entradas de uso de certificados.
Causa del error 0x80070040
Este error se produce cuando el servidor RAS no tiene instalado un certificado de autenticación de servidor.
Solución: asegúrese de que el certificado de máquina tenga la entrada de uso de certificados necesaria
Para solucionar este problema, asegúrese de que el certificado de máquina que usa el servidor RAS para la validación de IKEv2 incluye la Autenticación del servidor en su lista de entradas de uso de certificados.
Error 0x800B0109: una cadena de certificados procesada pero terminada en un certificado raíz
La descripción completa del error es: "Cadena de certificados procesada pero terminada en un certificado raíz en el que el proveedor de confianza no confía".
Por lo general, la máquina cliente VPN está unida a un dominio basado en Active Directory (AD). Si usa credenciales de dominio para iniciar sesión en el servidor VPN, el servicio instala automáticamente el certificado en el almacén de entidades de certificación raíz de confianza. Es posible que encuentre este problema si el equipo no está unido a un dominio de AD o usa una cadena de certificados alternativa.
Causa del error 0x800B0109
Puede producirse este error si el equipo cliente no tiene instalado un certificado de entidad de certificación raíz de confianza adecuado en su almacén de entidades de certificación raíz de confianza.
Solución: instalar el certificado raíz de confianza
Para resolver este problema, asegúrese de que la máquina cliente tiene instalado un certificado raíz de confianza en su almacén de entidades de certificación raíz de confianza. Si no es así, instale un certificado raíz adecuado.
Error: No puede acceder todavía
Este mensaje de error está asociado a problemas de conexión de acceso condicional de Microsoft Entra. Cuando aparece este problema, la directiva de acceso condicional no se cumple, lo que bloquea la conexión VPN. Sin embargo, se conecta después de que el usuario cierre la ventana de diálogo. Si el usuario selecciona Aceptar, inicia otro intento de autenticación que tampoco se realiza correctamente y devuelve un mensaje de error idéntico. El registro de eventos operativos de Microsoft Entra del cliente registra estos eventos.
Causa del error de acceso condicional de Microsoft Entra
Hay algunas razones por las que este problema puede ocurrir:
El usuario tiene un certificado de autenticación de cliente en su almacén de certificados personales que es válido, pero que no procede de Microsoft Entra ID.
Falta la sección de perfil
<TLSExtensions>
de VPN o no contiene las entradas<EKUName>AAD Conditional Access</EKUName><EKUOID>1.3.6.1.4.1.311.87</EKUOID><EKUName>AAD Conditional Access</EKUName><EKUOID>1.3.6.1.4.1.311.87</EKUOID>
. Las entradas<EKUName>
y<EKUOID>
indican al cliente VPN qué certificado recuperar del almacén de certificados del usuario al pasar el certificado al servidor VPN. Sin las entradas<EKUName>
y<EKUOID>
, el cliente VPN usa cualquier certificado de autenticación de cliente válido que se encuentre en el almacén de certificados del usuario y la autenticación se realiza correctamente.El servidor RADIUS (NPS) no se ha configurado para aceptar solo certificados de cliente que contengan el identificador de objeto (OID) Acceso condicional de AAD.
Solución: uso de PowerShell para determinar el estado del certificado
Para escapar de este bucle:
En Windows PowerShell, ejecute el cmdlet
Get-WmiObject
para volcar la configuración del perfil de VPN.Compruebe que existen las variables
<TLSExtensions>
,<EKUName>
y<EKUOID>
y su salida muestra el nombre y el OID correctos.El código siguiente es una salida de ejemplo del
Get-WmiObject
cmdlet.PS C:\> Get-WmiObject -Class MDM_VPNv2_01 -Namespace root\cimv2\mdm\dmmap __GENUS : 2 __CLASS : MDM_VPNv2_01 __SUPERCLASS : __DYNASTY : MDM_VPNv2_01 __RELPATH : MDM_VPNv2_01.InstanceID="AlwaysOnVPN",ParentID="./Vendor/MSFT/VPNv2" __PROPERTY_COUNT : 10 __DERIVATION : {} __SERVER : DERS2 __NAMESPACE : root\cimv2\mdm\dmmap __PATH : \\DERS2\root\cimv2\mdm\dmmap:MDM_VPNv2_01.InstanceID="AlwaysOnVPN",ParentID="./Vendor/MSFT/VP Nv2" AlwaysOn : ByPassForLocal : DnsSuffix : EdpModeId : InstanceID : AlwaysOnVPN LockDown : ParentID : ./Vendor/MSFT/VPNv2 ProfileXML : <VPNProfile><RememberCredentials>false</RememberCredentials><DeviceCompliance><Enabled>true</ Enabled><Sso><Enabled>true</Enabled></Sso></DeviceCompliance><NativeProfile><Servers>derras2.corp.deverett.info;derras2.corp.deverett.info</Servers><RoutingPolicyType>ForceTunnel</RoutingPolicyType><NativeProtocolType>Ikev2</NativeProtocolType><Authentication><UserMethod>Eap</UserMethod><MachineMethod>Eap</MachineMethod><Eap><Configuration><EapHostConfigxmlns="https://www.microsoft.com/provisioning/EapHostConfig"><EapMethod><Typexmlns="https://www.microsoft.com/provisioning/EapCommon">25</Type><VendorIdxmlns="https://www.microsoft.com/provisioning/EapCommon">0</VendorId><VendorTypexmlns="https://www.microsoft.com/provisioning/EapCommon">0</VendorType><AuthorIdxmlns="https://www.microsoft.com/provisioning/EapCommon">0</AuthorId></EapMethod><Configxmlns="https://www.microsoft.com/provisioning/EapHostConfig"><Eap xmlns="https://www.microsoft.com/provisioning/BaseEapConnectionPropertiesV1"><Type>25</Type><EapType xmlns="https://www.microsoft.com/provisioning/MsPeapConnectionPropertiesV1"><ServerValidation><DisableUserPromptForServerValidation>true</DisableUserPromptForServerValidation><ServerNames></ServerNames></ServerValidation><FastReconnect>true</FastReconnect><InnerEapOptional>false</InnerEapOptional><Eap xmlns="https://www.microsoft.com/provisioning/BaseEapConnectionPropertiesV1"><Type>13</Type> <EapType xmlns="https://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV1"><CredentialsSource><CertificateStore><SimpleCertSelection>true</SimpleCertSelection></CertificateStore></CredentialsSource><ServerValidation><DisableUserPromptForServerValidation>true</DisableUserPromptForServerValidation><ServerNames></ServerNames><TrustedRootCA>5a 89 fe cb 5b 49 a7 0b 1a 52 63 b7 35 ee d7 1c c2 68 be 4b </TrustedRootCA></ServerValidation><DifferentUsername>false</DifferentUsername><PerformServerValidation xmlns="https://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV2">true</PerformServerValidation><AcceptServerName xmlns="https://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV2">false</AcceptServerName><TLSExtensionsxmlns="https://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV2"><FilteringInfo xml ns="https://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV3"><EKUMapping><EKUMap><EKUName>AAD Conditional Access</EKUName><EKUOID>1.3.6.1.4.1.311.87</EKUOID></EKUMap></EKUMapping><ClientAuthEKUListEnabled="true"><EKUMapInList><EKUName>AAD Conditional Access</EKUName></EKUMapInList></ClientAuthEKUList></FilteringInfo></TLSExtensions></EapType></Eap><EnableQuarantineChecks>false</EnableQuarantineChecks><RequireCryptoBinding>false</RequireCryptoBinding><PeapExtensions><PerformServerValidation xmlns="https://www.microsoft.com/provisioning/MsPeapConnectionPropertiesV2">false</PerformServerValidation><AcceptServerName xmlns="https://www.microsoft.com/provisioning/MsPeapConnectionPropertiesV2">false</AcceptServerName></PeapExtensions></EapType></Eap></Config></EapHostConfig></Configuration></Eap></Authentication></NativeProfile></VPNProfile> RememberCredentials : False TrustedNetworkDetection : PSComputerName : DERS2
A continuación, ejecute el comando
Certutil
para determinar si hay certificados válidos en el almacén de certificados del usuario:C:\>certutil -store -user My My "Personal" ================ Certificate 0 ================ Serial Number: 32000000265259d0069fa6f205000000000026 Issuer: CN=corp-DEDC0-CA, DC=corp, DC=deverett, DC=info NotBefore: 12/8/2017 8:07 PM NotAfter: 12/8/2018 8:07 PM Subject: E=winfed@deverett.info, CN=WinFed, OU=Users, OU=Corp, DC=corp, DC=deverett, DC=info Certificate Template Name (Certificate Type): User Non-root Certificate Template: User Cert Hash(sha1): a50337ab015d5612b7dc4c1e759d201e74cc2a93 Key Container = a890fd7fbbfc072f8fe045e680c501cf_5834bfa9-1c4a-44a8-a128-c2267f712336 Simple container name: te-User-c7bcc4bd-0498-4411-af44-da2257f54387 Provider = Microsoft Enhanced Cryptographic Provider v1.0 Encryption test passed ================ Certificate 1 ================ Serial Number: 367fbdd7e6e4103dec9b91f93959ac56 Issuer: CN=Microsoft VPN root CA gen 1 NotBefore: 12/8/2017 6:24 PM NotAfter: 12/8/2017 7:29 PM Subject: CN=WinFed@deverett.info Non-root Certificate Cert Hash(sha1): 37378a1b06dcef1b4d4753f7d21e4f20b18fbfec Key Container = 31685cae-af6f-48fb-ac37-845c69b4c097 Unique container name: bf4097e20d4480b8d6ebc139c9360f02_5834bfa9-1c4a-44a8-a128-c2267f712336 Provider = Microsoft Software Key Storage Provider Private key is NOT exportable Encryption test passed
Nota
Si hay un certificado del emisor CN=Microsoft VPN root CA gen 1 en el almacén personal del usuario, pero el usuario ha obtenido acceso al seleccionar X para cerrar el mensaje de error, recopile los registros de eventos CAPI2 para comprobar que el certificado utilizado para autenticarse era un certificado de autenticación de cliente válido que no se emitió desde la CA raíz de Microsoft VPN.
Si existe un certificado de autenticación de cliente válido en el almacén personal del usuario y los
TLSExtensions
valores ,EKUName
yEKUOID
se configuran correctamente, la conexión no debe realizarse correctamente después de que el usuario cierre el cuadro de diálogo.
Debería aparecer un mensaje de error que indica que "No se encontró un certificado que se puede usar con el protocolo de autenticación extensible".
No se puede eliminar el certificado de la pestaña de conectividad VPN
Este problema se da cuando no se pueden eliminar certificados en la pestaña conectividad VPN.
Causa
Este problema se produce cuando el certificado se establece en Principal.
Solución: cambiar la configuración del certificado
Para eliminar certificados:
- En la pestaña Conectividad VPN, seleccione el certificado.
- En Principal, seleccione No y, a continuación, seleccione Guardar.
- En la pestaña Conectividad VPN, seleccione el certificado de nuevo.
- Seleccione Eliminar.