Anatomía de un archivo .ovpn: Desglosando una configuración real de AWS Client VPN
Los archivos .ovpn contienen toda la configuración necesaria para establecer una conexión VPN segura. En esta guía analizaremos línea por línea un archivo real de AWS Client VPN para entender exactamente cómo funciona.
El archivo .ovpn completo
Aquí está el archivo de configuración que analizaremos, evidentemente con datos ficticios.
client
dev tun
proto udp
remote cvpn-endpoint-a1b2c3d4e5f6789a.prod.clientvpn.us-east-1.amazonaws.com 443
remote-random-hostname
resolv-retry infinite
nobind
remote-cert-tls server
cipher AES-256-GCM
verb 3
<ca>
-----BEGIN CERTIFICATE-----
[Múltiples certificados de la cadena de confianza]
-----END CERTIFICATE-----
</ca>
auth-user-pass
auth-federate
auth-retry interact
auth-nocache
reneg-sec 0
verify-x509-name vpn-enterprise.example-corp.com name
Configuración básica del cliente
Parámetros fundamentales
client
dev tun
proto udp
¿Qué significan?
client
: Le dice a OpenVPN que actúe como cliente (no servidor)dev tun
: Crea una interfaz de red virtual tipo "túnel" para enrutar tráfico IPproto udp
: Usa UDP como protocolo de transporte (más rápido que TCP)
Configuración del servidor
remote cvpn-endpoint-a1b2c3d4e5f6789a.prod.clientvpn.us-east-1.amazonaws.com 443
remote-random-hostname
Análisis:
remote [hostname] [puerto]
: Especifica el servidor VPN de AWS Client VPN en el puerto 443- El hostname sigue el patrón de AWS:
cvpn-endpoint-[ID].prod.clientvpn.[región].amazonaws.com
remote-random-hostname
: Resuelve DNS de forma aleatoria para balanceo de carga
Políticas de conexión
resolv-retry infinite
nobind
Explicación:
resolv-retry infinite
: Si falla la resolución DNS, reintenta indefinidamentenobind
: No vincula a un puerto local específico (deja que el sistema elija)
Configuración de seguridad
Cifrado y verificación
remote-cert-tls server
cipher AES-256-GCM
verb 3
Detalles de seguridad:
remote-cert-tls server
: Verifica que el certificado remoto sea válido para servidorcipher AES-256-GCM
: Usa cifrado AES-256 con modo GCM (Galois/Counter Mode)verb 3
: Nivel de logging moderado (0=silencioso, 9=muy detallado)
¿Por qué AES-256-GCM?
- AES-256: Cifrado simétrico de 256 bits (estándar militar)
- GCM: Proporciona autenticación integrada y mejor rendimiento
Cadena de certificados
Estructura de los certificados
El archivo incluye tres certificados en la sección <ca>
:
<ca>
-----BEGIN CERTIFICATE-----
[Certificado 1: Amazon RSA 2048 M02]
-----BEGIN CERTIFICATE-----
[Certificado 2: Amazon Root CA 1]
-----BEGIN CERTIFICATE-----
[Certificado 3: Starfield Services Root CA - G2]
-----END CERTIFICATE-----
</ca>
¿Qué hace cada certificado?
- Amazon RSA 2048 M02: Certificado intermedio que firma el certificado del servidor VPN
- Amazon Root CA 1: Certificado raíz de Amazon que firma el intermedio
- Starfield Services Root CA - G2: Certificado raíz de Starfield (subsidiaria de GoDaddy)
Cadena de confianza
Tu cliente OpenVPN
↓ confía en
Starfield Root CA
↓ firmó
Amazon Root CA 1
↓ firmó
Amazon RSA 2048 M02
↓ firmó
Certificado del servidor VPN
Configuración de autenticación
Métodos de autenticación
auth-user-pass
auth-federate
auth-retry interact
auth-nocache
¿Qué hace cada directiva?
auth-user-pass
: Requiere usuario y contraseñaauth-federate
: Habilita autenticación federada (SAML, Active Directory, etc.)auth-retry interact
: Permite reintroducir credenciales si fallanauth-nocache
: No guarda credenciales en memoria (más seguro)
Flujo de autenticación típico
- OpenVPN se conecta al endpoint
- Solicita credenciales al usuario
- Si
auth-federate
está activo, puede redirigir a un portal SSO - Las credenciales se validan contra el directorio configurado
- Si fallan,
auth-retry interact
permite intentar de nuevo
Configuración avanzada
Renegociación de claves
reneg-sec 0
reneg-sec 0
: Desactiva la renegociación automática de claves- Normalmente OpenVPN renegocia cada hora por seguridad
- En AWS Client VPN se gestiona de forma diferente
Verificación del servidor
verify-x509-name vpn-enterprise.example-corp.com name
- Verifica que el certificado del servidor contenga exactamente este nombre
- Previene ataques man-in-the-middle
- El nombre debe coincidir con el DNS del servidor
¿Cómo funciona la conexión?
Proceso paso a paso
- Resolución DNS: OpenVPN resuelve el hostname del servidor
- Conexión TCP/UDP: Se conecta al puerto 443 usando UDP
- Handshake TLS: Establece túnel TLS usando los certificados CA
- Verificación: Comprueba
verify-x509-name
yremote-cert-tls
- Autenticación: Usuario introduce credenciales (posiblemente federadas)
- Configuración: Servidor envía configuración de red (IPs, rutas, DNS)
- Túnel activo: Interfaz
tun
queda lista para enrutar tráfico
Flujo de datos
Tu aplicación
↓
Interfaz tun (10.x.x.x)
↓ cifrado AES-256-GCM
Túnel OpenVPN
↓ UDP puerto 443
Internet
↓
AWS Client VPN Endpoint
↓
Red privada de AWS
Particularidades de AWS Client VPN
Hostname específico
cvpn-endpoint-a1b2c3d4e5f6789a.prod.clientvpn.us-east-1.amazonaws.com
Estructura:
cvpn-endpoint-
: Prefijo de AWS Client VPNa1b2c3d4e5f6789a
: ID único del endpointprod.clientvpn
: Servicio de producciónus-east-1
: Región de AWSamazonaws.com
: Dominio de AWS
Puerto 443
- AWS Client VPN usa puerto 443 (HTTPS) por defecto
- Facilita traversal de firewalls corporativos
- Muchos firewalls permiten tráfico HTTPS saliente
Autenticación federada
auth-federate
- Permite integración con Active Directory
- Soporte para SAML 2.0
- Compatible con Azure AD, Okta, OneLogin, etc.
Troubleshooting común
Problemas de conexión
Error de timeout:
# Verificar conectividad al endpoint
Test-NetConnection -ComputerName cvpn-endpoint-a1b2c3d4e5f6789a.prod.clientvpn.us-east-1.amazonaws.com -Port 443
Error de certificado:
- Verificar que la fecha del sistema sea correcta
- Los certificados tienen fechas de validez específicas
Error de autenticación:
- Con
auth-federate
, puede abrir navegador web - Verificar credenciales de dominio/SSO
Logs útiles
Con verb 3
verás logs como:
TCP/UDP: Preserving recently used remote address: [IP]:443
Socket Buffers: R=[valor] S=[valor]
TLS: Initial packet from [IP]:443, sid=[session_id]
VERIFY OK: depth=2, CN=Starfield Services Root Certificate Authority - G2
VERIFY OK: depth=1, CN=Amazon Root CA 1
VERIFY OK: depth=0, CN=*.prod.clientvpn.us-east-1.amazonaws.com
Seguridad del archivo
Información sensible
Este archivo NO contiene:
- ❌ Credenciales de usuario
- ❌ Claves privadas
- ❌ Secretos
Sí contiene:
- ✅ Hostname del servidor (información pública)
- ✅ Certificados públicos de CA
- ✅ Configuración de red
Mejores prácticas
- Permisos de archivo:
chmod 600 client.ovpn
- No compartir innecesariamente: Aunque no tiene secretos, revela infraestructura
- Mantener actualizado: Los certificados CA pueden cambiar
Y en conclusión....
Este archivo .ovpn de AWS Client VPN muestra una configuración empresarial moderna con:
- Seguridad robusta: Cifrado AES-256-GCM y verificación estricta de certificados
- Autenticación flexible: Soporte para credenciales locales y federadas
- Optimización para empresa: Puerto 443, UDP para rendimiento
- Cadena de confianza completa: Tres niveles de certificados CA
La configuración está diseñada para ser segura por defecto, con políticas que priorizan la seguridad sobre la conveniencia (como auth-nocache
y verificación estricta de nombres).
Entender cada línea te permite diagnosticar problemas de conectividad y comprender exactamente cómo se establece la conexión segura a la red privada de AWS.
Comentarios
Publicar un comentario