¿Por qué alojar OpenVPN Server en un VPS?
Las soluciones VPN comerciales compartidas obligan a confiar en un proveedor externo que puede registrar, revender o exponer sus datos de conexión. Al alojar OpenVPN Server en su propio VPS, usted es el único administrador: elige el nivel de registro, los usuarios autorizados y los protocolos de cifrado (TLS 1.3, AES-256-GCM). Es también la solución ideal para interconectar equipos distribuidos, proteger el acceso a sus servicios internos o sortear las restricciones de red de un entorno corporativo, todo ello con un costo controlado.
Lo que puede hacer con OpenVPN Server
- Proteger las conexiones de sus colaboradores en teletrabajo con un túnel cifrado hacia su red interna
- Exponer sus servicios internos (bases de datos, backoffice, herramientas de monitorización) únicamente a través del VPN, sin abrirlos a Internet
- Interconectar varias sedes u oficinas en una red privada virtual sitio a sitio
- Proteger sus comunicaciones en redes Wi-Fi públicas o poco fiables
- Gestionar con precisión los derechos de acceso por usuario gracias al sistema de certificados de OpenVPN
- Auditar y registrar las conexiones entrantes a su infraestructura desde un punto centralizado y bajo su control
Requisitos previos: servidor y red
Antes de comenzar, verifique estos puntos en su VPS.
Recursos mínimos: 1 vCPU y 512 MB de RAM son suficientes para uso personal o hasta 10 usuarios simultáneos. Por encima de 50 conexiones activas, planifique 2 vCPU y 1 GB de RAM para absorber el cifrado sin degradación del ancho de banda.
Sistema operativo: Ubuntu 22.04 LTS o Debian 12 (ambos compatibles con el repositorio oficial de OpenVPN). AlmaLinux 9 y Rocky Linux 9 también funcionan con los paquetes EPEL.
Puerto de red: UDP 1194 (predeterminado) o TCP 443 para atravesar cortafuegos restrictivos. En su VPS ServOrbit, abra este puerto en las reglas de seguridad antes de iniciar la instalación. Un solo puerto es suficiente.
Acceso root: imprescindible para crear las interfaces de red virtuales (tun0), modificar las reglas iptables y habilitar el reenvío IP.
Reenvío IP: actívelo antes de continuar:
echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
sysctl -pInstalar OpenVPN y Easy-RSA (vía comunitaria)
Actualizar el sistema e instalar los paquetes
apt update && apt upgrade -y apt install -y openvpn easy-rsaEste enfoque no tiene límite de clientes y no requiere ninguna licencia comercial. Easy-RSA gestiona su autoridad de certificación (CA) local.
Inicializar la autoridad de certificación con Easy-RSA
make-cadir /etc/openvpn/easy-rsa cd /etc/openvpn/easy-rsa ./easyrsa init-pki ./easyrsa build-ca nopassbuild-ca nopasscrea la CA sin contraseña — conveniente para producción no interactiva. Para un uso más sensible, retirenopassy almacene la contraseña fuera del servidor.Generar el certificado del servidor y los parámetros Diffie-Hellman
./easyrsa gen-req server nopass ./easyrsa sign-req server server openssl dhparam -out /etc/openvpn/dh.pem 2048 openvpn --genkey secret /etc/openvpn/ta.keyLa clave
ta.key(TLS Auth) protege contra ataques DoS en el puerto UDP antes incluso del inicio del handshake TLS.Generar un certificado de cliente
./easyrsa gen-req client1 nopass ./easyrsa sign-req client client1Repita esta operación para cada usuario. El par
client1.crt+client1.key+ca.crt+ta.keycompone el perfil.ovpna distribuir.Copiar los archivos necesarios a /etc/openvpn
cp pki/ca.crt pki/issued/server.crt pki/private/server.key /etc/openvpn/Conserve los archivos
pki/private/con permisos600: solo deben ser legibles por root.
Configurar server.conf
Cree /etc/openvpn/server.conf con el siguiente contenido.
port 1194
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh.pem
tls-auth /etc/openvpn/ta.key 0
key-direction 0
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist /var/log/openvpn/ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 9.9.9.9"
push "dhcp-option DNS 149.112.112.112"
keepalive 10 120
cipher AES-256-GCM
tls-version-min 1.2
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log-append /var/log/openvpn/openvpn.log
verb 3Active e inicie el servicio:
mkdir -p /var/log/openvpn
systemctl enable --now openvpn@server
systemctl status openvpn@serverTúnel completo o split tunneling: elegir el modo correcto
Túnel completo (redirect-gateway def1): todo el tráfico del cliente pasa por el VPN. Útil para proteger a los usuarios en redes no confiables o para unificar las salidas a Internet. Inconveniente: el ancho de banda del VPS se convierte en el cuello de botella para todos los flujos.
Split tunneling: solo el tráfico destinado a su red privada (p. ej. 10.8.0.0/24) pasa por el VPN. El resto sale directamente desde el equipo cliente. Para activarlo, sustituya la línea redirect-gateway por rutas específicas en server.conf:
push "route 192.168.1.0 255.255.255.0"Esto reduce la carga en el servidor y mejora el rendimiento general, pero las conexiones fuera del VPN ya no estarán protegidas.
Crear y distribuir un perfil .ovpn de cliente
Un archivo .ovpn autónomo incluye todos los certificados. Se genera así:
cat > /tmp/client1.ovpn << EOF
client
dev tun
proto udp
remote <IP-DE-SU-VPS> 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-GCM
verb 3
key-direction 1
<ca>
$(cat /etc/openvpn/easy-rsa/pki/ca.crt)
</ca>
<cert>
$(cat /etc/openvpn/easy-rsa/pki/issued/client1.crt)
</cert>
<key>
$(cat /etc/openvpn/easy-rsa/pki/private/client1.key)
</key>
<tls-auth>
$(cat /etc/openvpn/ta.key)
</tls-auth>
EOFTransfiera este archivo al cliente por un canal seguro (SCP o un enlace de un solo uso). Basta con importarlo en OpenVPN Connect (Windows, macOS, Android, iOS) o NetworkManager (Linux) para establecer la conexión.
Seguridad: fail2ban, ufw y desactivación de IPv6
Cortafuegos ufw — abra solo lo necesario:
ufw allow ssh
ufw allow 1194/udp
ufw enableSi utiliza TCP 443 en lugar de UDP 1194, adapte la regla.
fail2ban para el puerto OpenVPN:
Cree /etc/fail2ban/jail.d/openvpn.conf:
[openvpn]
enabled = true
port = 1194
protocol = udp
filter = openvpn
logpath = /var/log/openvpn/openvpn.log
maxretry = 5
bantime = 3600Luego cree el filtro /etc/fail2ban/filter.d/openvpn.conf:
[Definition]
failregex = .*TLS Error: TLS key negotiation failed.*<HOST>.*
.*VERIFY ERROR:.*<HOST>.*Active:
systemctl restart fail2ban
fail2ban-client status openvpnDeshabilitar IPv6 si no es necesario: una interfaz IPv6 desprotegida puede eludir su túnel. Si su infraestructura no necesita IPv6:
echo 'net.ipv6.conf.all.disable_ipv6=1' >> /etc/sysctl.conf
echo 'net.ipv6.conf.default.disable_ipv6=1' >> /etc/sysctl.conf
sysctl -pRendimiento: MTU y elección del cifrado
MTU y fragmentación: el cifrado de OpenVPN añade cabeceras. Por defecto, la MTU del túnel (tun-mtu) es 1500, pero la encapsulación UDP puede provocar fragmentación en algunas redes. Para evitarlo, añada en server.conf:
tun-mtu 1400
mssfix 1360Si observa transferencias lentas o cortes en conexiones con MTU baja (redes móviles, algunos VPN corporativos), reduzca tun-mtu a 1300.
Elección del cifrado: se recomienda AES-256-GCM para kernels Linux modernos, que se benefician de las instrucciones hardware AES-NI (verifique con grep -m1 'aes' /proc/cpuinfo). Para servidores muy limitados en CPU, AES-128-GCM divide el costo de cifrado por dos sin reducción significativa de seguridad.
UDP o TCP: UDP 1194 es el modo predeterminado y más eficiente. TCP 443 es útil para atravesar cortafuegos corporativos restrictivos, pero introduce el problema del «TCP sobre TCP» (retransmisiones redundantes) que degrada el rendimiento con pérdida de paquetes.
Resolución de problemas: errores frecuentes
TLS Error: TLS key negotiation failed
Este error aparece cuando el cliente no puede alcanzar el servidor en el puerto configurado. Verifique que el puerto esté abierto (ss -ulnp | grep 1194), que la regla de cortafuegos esté activa y que la clave ta.key sea idéntica en el servidor (key-direction 0) y en el cliente (key-direction 1).
Rutas no aplicadas tras la conexión
Si el tráfico no pasa por el túnel a pesar de una conexión establecida, verifique que el reenvío IP esté activo (cat /proc/sys/net/ipv4/ip_forward debe devolver 1) y que haya una regla NAT:
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADESustituya eth0 por la interfaz principal de su VPS (ip route get 8.8.8.8 para identificarla).
Conexiones que se interrumpen regularmente
Si el túnel se desconecta cada 2 minutos, compruebe el keepalive en server.conf (keepalive 10 120: ping cada 10 s, timeout a 120 s). En el lado del cliente, añada ping-restart 60 al perfil .ovpn para forzar una reconexión limpia antes del timeout del servidor.
VERIFY ERROR: depth=0, error=certificate is not yet valid
El reloj del servidor o del cliente no está sincronizado. Sincronice NTP: timedatectl set-ntp true.
OpenVPN vs WireGuard: ¿cuál elegir?
Desplace la tabla
| Criterio | OpenVPN | WireGuard |
|---|---|---|
| Protocolo | TLS/SSL (OpenSSL) | ChaCha20-Poly1305 (criptografía moderna) |
| Rendimiento | Bueno, ligeramente más lento | Muy alto, menor latencia |
| Configuración | Archivos .conf detallados, curva de aprendizaje | Más sencillo, pares de claves pública/privada |
| Compatibilidad | Todos los SO, cortafuegos restrictivos (TCP 443) | Excelente en Linux, menos universal |
| Revocación de certificado | CRL integrada, gestión detallada por usuario | Solo eliminar la clave pública |
| Caso de uso ideal | Equipos, site-to-site, entornos corporativos | Acceso personal, movilidad, rendimiento |
Un VPS ServOrbit como servidor OpenVPN privado
Un VPS ServOrbit con acceso root, IPv4 dedicada y elección de SO es la plataforma ideal para un servidor OpenVPN: usted conserva el control total sobre los certificados, los registros y las reglas de acceso. La plantilla OpenVPN Server está disponible en el Marketplace para un inicio rápido, o siga esta guía para una instalación manual completa mediante la vía comunitaria. Para empezar: /vps-cloud.
La documentación oficial
Para la configuración avanzada, las opciones propias de la herramienta y los cambios de versión, consulte la documentación oficial de OpenVPN Community. Esta guía cubre la puesta en línea en un VPS ServOrbit; la documentación del editor sigue siendo la referencia para los ajustes finos.