RRAS y NPS: solución definitiva cuando la VPN PPTP no conecta desde Internet (migración a L2TP‑IPsec)

Si los usuarios pueden conectarse sin problemas a la VPN cuando están dentro de la red local, pero la sesión se cae de inmediato al intentar desde Internet, casi siempre el culpable es el cortafuegos perimetral y, en concreto, la falta de reenvío del protocolo GRE que necesita PPTP. A continuación encontrarás un análisis detallado de la causa, las acciones correctivas y una alternativa moderna y segura con L2TP‑IPsec.

Índice

Resumen de la pregunta

  • Servidor Windows Server con RRAS (Routing & Remote Access Service) y NPS (Network Policy Server).
  • VPN montada inicialmente con PPTP.
  • Conexiones internas estables; conexiones externas se interrumpen con el mensaje: “The network connection between your computer and the VPN server was interrupted…”.
  • En el firewall se reenvían los puertos UDP 1812/1813/1645/1646 (RADIUS) y, por error, también UDP 1701/500/4500.
  • La duda: “¿qué puerto o configuración falta para que la VPN funcione desde Internet?”

Causa principal

PPTP usa dos componentes: la sesión de control TCP 1723 y el túnel de datos encapsulado con el GRE (protocolo IP 47). La mayoría de firewalls domésticos y varios gateways empresariales solo gestionan reglas basadas en puertos (TCP/UDP); por tanto, aunque se abra TCP 1723, el tráfico GRE nunca alcanza al servidor y la sesión cae tras el intento de autenticación.

Solución paso a paso

PasoAcciónComentario
1Comprobar requisitos reales de PPTPPPTP necesita TCP 1723 (control) + GRE 47 (datos). El reenvío solo por puertos no cubre GRE.
2Habilitar GRE o exponer el servidor como DMZEn la interfaz del firewall busca “PPTP Pass‑Through”, “GRE Forwarding” o “Default/DMZ host”. Al activarlo, ambas partes (TCP 1723 y GRE 47) alcanzan al servidor y la VPN se mantiene conectada.
3 (mejor práctica)Migrar a L2TP‑IPsecSi el firewall (por ejemplo un gateway Linux con iptables) no maneja NAT de GRE, abandona PPTP. Abre/reenvía UDP 500 (IKE), UDP 4500 (NAT‑T) y UDP 1701 (L2TP). Configura un certificado o clave pre‑compartida en RRAS y en los clientes. Resultado: conexión estable y cifrado robusto.
4Revisar puertos RADIUSLos puertos UDP 1812/1813 se necesitan solo si los clientes externos contactan directamente al NPS. Si NPS está local al RRAS y no atiende solicitudes RADIUS desde la WAN, no los abras hacia Internet.

Secuencia típica de éxito luego de las correcciones

  1. Cliente inicia PPTP y negocia la sesión TCP 1723.
  2. Servidor responde; el cliente cambia a GRE 47 para el tráfico PPP.
  3. Se negocian protocolos de autenticación (MS‑CHAP v2, EAP, etc.).
  4. Cliente recibe dirección IP interna, rutas y DNS del servidor.
  5. Tráfico de usuario fluye a través del túnel sin cortes.

Puertos y protocolos implicados

Un vistazo rápido a lo que debe o no abrirse:

VPN / ServicioProtocoloPuerto / N.º IPPropósito
PPTP (control)TCP1723Establece y mantiene la sesión de control PPP.
PPTP (datos)IP47 (GRE)Encapsula los paquetes PPP (datos reales).
L2TPUDP1701Túnel L2 (Layer 2) sin cifrar.
IPsec IKE v1/v2UDP500Negociación de seguridad SA.
IPsec NAT‑TUDP4500Encapsulación de ESP a través de NAT.
RADIUS autenticaciónUDP1812 / 1645Sólo si los clientes contactan al NPS.
RADIUS contabilidadUDP1813 / 1646Opcional para informes de uso.

Cómo habilitar GRE o PPTP Pass‑Through en firewalls comunes

pfSense (CE y Plus)

  1. Ve a Firewall → NAT → Outbound.
  2. Elige “Hybrid Outbound NAT”.
  3. Añade una regla GRE (protocolo 47) con la IP interna del RRAS.
  4. Aplica y prueba la conexión.

MikroTik RouterOS

/ip firewall nat
add chain=dstnat protocol=tcp dst-port=1723 action=dst-nat to-addresses=192.168.1.10
add chain=dstnat protocol=gre action=dst-nat to-addresses=192.168.1.10

Cisco ASA

access-list outsideaccessin extended permit tcp any host 203.0.113.10 eq 1723
access-list outsideaccessin extended permit gre any host 203.0.113.10

Firewall de Windows (en la NIC externa del RRAS)

  1. Habilita las reglas predefinidas:
    Routing and Remote Access (GRE‑in)
    Routing and Remote Access (PPTP‑in)
  2. En la pestaña Ámbito limita la regla si solo quieres permitir ciertas IP origen.

Alternativa recomendada: L2TP‑IPsec

PPTP fue declarado en desuso por Microsoft desde Windows 10 2004 y no se considera seguro porque:

  • MS‑CHAP v2 tiene vulnerabilidades de diccionario.
  • GRE carece de integridad y cifrado.
  • No es compatible con EAP-TLS.

En cambio, L2TP‑IPsec o IKEv2 ofrecen:

  • Cifrado AES 256, autenticación mutua con certificados o PSK.
  • Compatibilidad con NAT gracias a UDP 4500 (NAT‑T).
  • Mejor soporte en dispositivos móviles (Android/iOS).

Pasos resumidos para migrar

  1. En RRAS, habilita “L2TP con IPsec”.
  2. En NPS, crea o ajusta directivas de acceso remoto para EAP‑MSCHAP v2 o EAP‑TLS.
  3. Genera un certificado de servidor (puede ser autofirmado) y expórtalo con su clave.
  4. Importa el certificado en Local Machine → Personal → Certificates.
  5. Asegúrate de que el certificado raíz esté en “Trusted Root Certification Authorities” en los clientes.
  6. En el firewall, abre/reenvía UDP 500, UDP 4500 y UDP 1701.
  7. Configura el perfil VPN en los clientes especificando “L2TP con IPsec” y la clave pre‑compartida o el certificado raíz.

Buenas prácticas adicionales

  • Registrar eventos: revisa Event Viewer → Custom Views → Server Roles → Network Policy and Access Services para errores de autenticación y negociación.
  • Auditoría de firewall: mantén un log aceptable durante al menos 24 h para identificar bloqueos intermitentes.
  • Segmentación de red: coloca el servidor RRAS en una zona DMZ interna y filtra el acceso solo a puertos necesarios hacia LAN.
  • Bloqueo de fuerza bruta: establece límites de intentos fallidos y habilita account lockout o Smart Lockout en Azure/Active Directory si aplica.
  • Actualizaciones KB: instala parches de seguridad de RRAS y NPS, especialmente los que corrigen CVE de spoofing en IKE y vulnerabilidades RADIUS.

Verificación paso a paso (PowerShell)

Comprobación de puertos expuestos

Test-NetConnection -ComputerName vpn.midominio.com -Port 1723

Comprobación de protocolo GRE

GRE no usa puertos; usa IP 47, por lo que no es detectable con Test-NetConnection. Sin embargo, puedes monitorizar con Wireshark en el servidor:

ip proto 47 and host <IP pública cliente>

Diagnóstico de negociación L2TP‑IPsec

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\RasMan\Parameters" -Name "NegotiateDH2048_AES256" -Value 1 -Type DWORD

Con ello activas IKE fuerte (DH 2048 y AES 256) en servidores antiguos.

Ejemplo de registro de éxito

Date       : 2025-08-01 09:17:42
Source     : RemoteAccess
Event ID   : 20276
Message    : CoId={8E6A...} The user <USUARIO> has successfully connected on port VPN2-127.

Conclusión

Cuando una VPN PPTP funciona dentro de la LAN pero no desde Internet, casi siempre falta reenviar el protocolo GRE. La solución es sencilla: habilitar “PPTP Pass‑Through” o, mejor aún, migrar a L2TP‑IPsec para saltar las limitaciones técnicas y de seguridad de PPTP. Tras abrir UDP 500/4500/1701 y configurar certificados o PSK, la conexión queda estable y segura para usuarios remotos.

Índice