Configuración de VPN con OpenVPN en un Servidor Linux
Resumen: En este artículo veremos cómo implementar una solución de VPN segura y escalable empleando OpenVPN en un servidor Linux. Abordaremos desde los requisitos previos hasta las buenas prácticas de mantenimiento.
Tabla de Contenidos
- Introducción
- Prerrequisitos
- Instalación de Componentes
- Generación de Certificados y Claves
- Configuración del Servidor
- Configuración del Cliente
- Ajustes de Red y Cortafuegos
- Pruebas y Validación
- Seguridad y Buenas Prácticas
- Mantenimiento y Escalabilidad
- Conclusión
1. Introducción
Una VPN (Red Privada Virtual) crea un túnel cifrado que permite a usuarios remotos conectarse de forma segura a una red privada a través de Internet. OpenVPN es una de las soluciones más populares debido a su flexibilidad, compatibilidad con múltiples sistemas y robustez criptográfica.
2. Prerrequisitos
- Servidor Linux (Debian, Ubuntu, CentOS o similar) con acceso root o usuario con privilegios
sudo
. - Conexión a Internet y puertos abiertos (UDP 1194 por defecto).
- Paquete easy-rsa para la gestión de PKI.
- Conocimientos básicos de administración de redes y Linux.
3. Instalación de Componentes
3.1. Actualización del Sistema
sudo apt update sudo apt upgrade -y
3.2. Instalación de OpenVPN y easy-rsa
sudo apt install openvpn easy-rsa -y
Resumen de Paquetes Instalados
Paquete | Función |
---|---|
openvpn | Demonio y herramientas de VPN |
easy-rsa | Generación de PKI y certificados |
4. Generación de Certificados y Claves
Se generará una Autoridad Certificadora (CA), certificados para el servidor y para cada cliente.
- Copiar el entorno de trabajo de easy-rsa:
make-cadir ~/openvpn-ca
- Editar
vars
y ajustar valores comoKEY_COUNTRY
,KEY_ORG
, etc. - Inicializar la PKI y crear la CA:
cd ~/openvpn-ca source vars ./clean-all ./build-ca
- Crear certificado y clave del servidor:
./build-key-server server ./build-dh openvpn --genkey --secret keys/ta.key
- Crear certificados para clientes:
./build-key cliente1
5. Configuración del Servidor
- Copiar plantilla de configuración:
gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf
- Ajustar parámetros claves en
/etc/openvpn/server.conf
:- port 1194
- proto udp
- dev tun
- paths a certificados (
ca.crt
,server.crt
,server.key
,dh.pem
,ta.key
) - cipher AES-256-CBC
- user nobody, group nogroup
- persist-key, persist-tun
- Habilitar y arrancar el servicio:
sudo systemctl enable openvpn@server sudo systemctl start openvpn@server
6. Configuración del Cliente
En el equipo cliente se debe instalar también openvpn
y copiar los archivos:
ca.crt
cliente1.crt
cliente1.key
ta.key
Crear cliente1.ovpn
con parámetros mínimos:
client
dev tun
proto udp
remote tu.dominio.com 1194
cipher AES-256-CBC
auth SHA256
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
ca ca.crt
cert cliente1.crt
key cliente1.key
tls-auth ta.key 1
verb 3
7. Ajustes de Red y Cortafuegos
- Habilitar reenvío IP en
/etc/sysctl.conf
:net.ipv4.ip_forward=1
Aplicar con
sudo sysctl -p
. - Configurar iptables para NAT:
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE sudo iptables-save sudo tee /etc/iptables.rules
- Permitir UDP 1194:
sudo ufw allow 1194/udp
8. Pruebas y Validación
- Iniciar cliente:
openvpn --config cliente1.ovpn
- Verificar asignación IP y ping a la red interna:
ip addr show tun0 ping 10.8.0.1
9. Seguridad y Buenas Prácticas
- Actualizar periódicamente OpenVPN y dependencias.
- Rotar certificados y revocar usuarios inactivos.
- Aplicar TLS Auth con
ta.key
para mitigar ataques DoS. - Utilizar AES-256-GCM o ChaCha20-Poly1305 como cifrado avanzado.
- Limitar acceso por firewall y listas de control de acceso (ACL).
10. Mantenimiento y Escalabilidad
Para entornos empresariales de gran escala:
- Implementar múltiples servidores en alta disponibilidad (HA).
- Balancear carga con DNS Round-Robin o Balanceadores UDP.
- Monitorizar con herramientas (Prometheus, Grafana).
- Integrar autentificación externa (RADIUS, LDAP).
11. Conclusión
Siguiendo estos pasos y recomendaciones, dispondrás de una VPN con OpenVPN robusta, segura y escalable. La clave radica en un buen diseño de PKI, reglas de firewall estrictas y actualizaciones constantes.
Leave a Reply