Guía de Implementación de OpenVPN en AWS con LDAP y Certificado SSL (Let's Encrypt) - Chuda
15875
wp-singular,post-template-default,single,single-post,postid-15875,single-format-standard,wp-theme-bridge,wp-child-theme-bridge-child,bridge-core-3.3,qode-page-transition-enabled,ajax_fade,page_not_loaded,,qode-child-theme-ver-1.0.0,qode-theme-ver-30.8,qode-theme-bridge,disabled_footer_top,qode_header_in_grid,wpb-js-composer js-comp-ver-8.5,vc_responsive

Guía de Implementación de OpenVPN en AWS con LDAP y Certificado SSL (Let’s Encrypt)

Guía de Implementación de OpenVPN en AWS con LDAP y Certificado SSL (Let’s Encrypt)

Objetivo

  • Crear una instancia de OpenVPN Access Server en AWS con:
  • Seguridad y acceso controlado.
  • IP elástica (EIP).
  • FQDN en Route53.
  • Integración con LDAP (AWS Directory Service – Managed Microsoft AD).
  • Certificado SSL público con Let’s Encrypt.

🧱 Requisitos Previos

  • Acceso a una VPC con subred pública (con NAT o IP pública).
  • Tener una zona DNS en Route 53 (vpn.empresa.com).
  • AWS Managed Microsoft AD ya creado.
  • Usuario de servicio LDAP (ej. openvpnbind).
  • Tener acceso al Marketplace de OpenVPN.

🚀 Paso 1: Crear la Instancia EC2 desde AWS Marketplace

  1. Ir a AWS Marketplace – OpenVPN Access Server.
  2. Hacer clic en Continue to Subscribe y luego Continue to Launch.
  3. En “Launch through EC2” configurar:

Parámetro

Valor sugerido

AMI

Última versión de OpenVPN (Ubuntu 22+)

Tipo de instancia

t3.medium (o superior según usuarios)

Subred

Pública (sifco-frontend-sn-2 o sn-3)

IP pública

Enable

Almacenamiento

8–20 GB

Key Pair

El par de claves actual


🔐 Paso 2: Crear y Asignar un Security Group

Crear un SG con las siguientes reglas:

Tipo

Protocolo

Puerto

Origen (CIDR/IP)

Descripción

SSH

TCP

22

Tu IP corporativa

Acceso SSH admin

HTTPS (Web UI)

TCP

943

Tu IP o 0.0.0.0/0

Acceso UI VPN

VPN Clients

UDP

1194

0.0.0.0/0

Clientes OpenVPN

HTTP (Certbot)

TCP

80

0.0.0.0/0

Requerido para Certbot

Asocia este SG a la instancia OpenVPN.


🌐 Paso 3: Asignar Elastic IP y Configurar FQDN en Route 53

  1. Ir a Elastic IPs > Allocate Elastic IP.
  2. Asignar la IP a la instancia.
  3. Ir a Route 53 > Hosted Zones.
  4. Crear un registro A:

Nombre

Tipo

Valor

vpn.sn2

A

<tu EIP asignada>


🔧 Paso 4: Configurar OpenVPN

  • Acceder vía navegador: https://vpn.sn2.empresa.com:943/admin
  • Usuario inicial: openvpn
    Si es necesario:
sudo passwd openvpn
  • Ir a: Authentication > LDAP

Configurar los campos de la siguiente manera:

Campo

Valor

LDAP server

d-xxxxxxx.aws.example.com o IP privada del AD

Puerto

636 (LDAPS) o 389 (LDAP)

Usar SSL

Yes

Bind DN

CN=openvpnbind,OU=ServiceAccounts,DC=empresa,DC=local

Bind Password

(Contraseña del usuario LDAP)

Base DN

DC=empresa,DC=local

Username attribute

sAMAccountName

Testear conexión y guardar. Esta parte de LDAP se debe hacer en conjunto con el personal que tenga accesos al AWS Directory Services.

🔐 Paso 5: Instalar Certificado SSL con Let’s Encrypt

1. Se debe conectar vía SSH a la instancia EC2 OpenVPN

ssh -i clave.pem ubuntu@<EIP>

2. Instalar Certbot

sudo apt update
sudo apt install certbot -y

3. Detener OpenVPN (usa el puerto 443)

sudo systemctl stop openvpnas

4. Solicitar certificado SSL

sudo certbot certonly --standalone -d vpn.sn2.empresa.com

5. Levantar OpenVPN (Para instalar los certificados SSL)

sudo systemctl star openvpnas

6. Aplicar los certificados en OpenVPN

sudo /usr/local/openvpn_as/scripts/sacli --key "cs.priv_key" --value_file "/etc/letsencrypt/live/vpn.sn2.empresa.com/privkey.pem" ConfigPut
sudo /usr/local/openvpn_as/scripts/sacli --key "cs.cert" --value_file "/etc/letsencrypt/live/vpn.sn2.empresa.com/cert.pem" ConfigPut
sudo /usr/local/openvpn_as/scripts/sacli --key "cs.ca_bundle" --value_file "/etc/letsencrypt/live/vpn.sn2.empresa.com/fullchain.pem" ConfigPut

7. Reiniciar OpenVPN

sudo systemctl restart openvpnas

🔁 Paso 6: Renovación automática del certificado SSL

Agregar a cron:

sudo crontab -e

Agregar:

0 2 * * * certbot renew --quiet --post-hook "systemctl restart openvpnas"

✅ Validaciones Finales

  • Acceder por https://vpn.sn2.empresa.com:943/admin
  • Login con usuario LDAP
  • Verificar SSL válido
  • Descargar perfil .ovpn para conexión de clientes

📌 Notas adicionales

  • Se puede clonar este proceso para una segunda instancia (vpn.sn3.empresa.com).
  • Considerar hacer snapshot de la instancia luego de la configuración completa.
  • Revisar los logs en /var/log/openvpnas.log ante cualquier fallo.

 

 

 

Happy Hacking!