A veces se necesita un servidor VPN fiable "aquí y ahora": sin comprar hardware adicional, sin lidiar con el gestor de paquetes, — directamente en la máquina Windows de siempre. OpenVPN sigue siendo el estándar de oro: código abierto, cientos de auditorías, soporte para casi cualquier SO y, lo que es especialmente agradable, licencia totalmente gratuita.
Además, la última rama estable 2.6.x para Windows se distribuye como un instalador MSI normal e ya incluye el controlador DCO, que acelera el túnel a nivel del núcleo.
Requisitos mínimos y preparación
Necesitaremos:
- Un PC o servidor con Windows 10/11 Pro o Windows Server 2019/2022/2025;
- Una cuenta local con privilegios de administrador;
- Acceso al puerto
1194/UDPen el cortafuegos externo (se puede cambiar, pero es el puerto que conocen muchos clientes); - 200 MB libres en disco (realmente menos, pero dejemos margen para los registros);
- Una taza de café por si surge el típico "¿dónde estaba esa casilla? ¡Si acabo de verla aquí!".
Paso 1. Descargamos e instalamos OpenVPN 2.6
Vamos a la página oficial Community Downloads y descargamos el MSI vigente (amd64 para sistemas de 64 bits, arm64 para Surface Pro X, etc.). Además del servidor, el paquete incluye:
- OpenSSL 3, compilado especialmente para Windows;
- OpenVPN GUI (se puede ocultar si el servidor va a funcionar como servicio);
- El servicio OpenVPNService, listo para arrancar con el controlador del sistema.
Ejecutamos el instalador, pulsamos Next → I Agree → Install y esperamos a que aparezca el mensaje Completed. Listo, el binario de servidor openvpn.exe ya está en C:Program FilesOpenVPNbin.
Paso 2. Descargamos EasyRSA 3.1 y desplegamos una autoridad de certificación propia
Para que los clientes confíen en nuestro servidor hace falta una PKI: certificado raíz CA, certificado del servidor y de cada cliente. La forma más popular es la pequeña utilidad EasyRSA 3, y desde la versión 3.1 se distribuye en un archivo listo para Windows: tomamos EasyRSA-3.1.x-win64.zip en GitHub y lo descomprimimos, por ejemplo, en C:EasyRSA.
Inicialización de la PKI
Abrimos PowerShell como administrador:
cd C:EasyRSA .easyrsa init-pki
El comando creará la carpeta pki y un par de scripts útiles.
Creamos el certificado raíz (CA)
.easyrsa build-ca
El sistema pedirá introducir una contraseña protegida dos veces y definir el Common Name. Consejo: use algo descriptivo, por ejemplo Company-VPN-CA. Si pierde la contraseña, deberá recrear toda la infraestructura PKI — así que piense en copias de seguridad.
Generamos claves y certificado del servidor
.easyrsa build-server-full server01 nopass
El parámetro nopass elimina la protección por contraseña de la clave privada del servidor, para que OpenVPN pueda iniciarse automáticamente. Para los más cautelosos puede dejar la contraseña y usar la utilidad NSSM, pero hoy lo haremos rápido.
Generamos certificados de clientes
.easyrsa build-client-full alice .easyrsa build-client-full bobCada cliente debe tener su propio certificado. Más adelante será fácil revocar un portátil "despistado" sin afectar a los demás.
El archivo ta.key (HMAC)
Para protección adicional contra DoS ejecutamos:
openvpn --genkey --secret ta.keyColoque el archivo en la misma carpeta
pki.
Paso 3. Creamos la configuración del servidor
En C:Program FilesOpenVPNconfig creamos el archivo server.ovpn con el siguiente contenido:
port 1194 proto udp dev tun server 10.8.0.0 255.255.255.0 push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 1.1.1.1" push "dhcp-option DNS 8.8.8.8" ca "C:EasyRSApkica.crt" cert "C:EasyRSApkiissuedserver01.crt" key "C:EasyRSApkiprivateserver01.key" dh "C:EasyRSApkidh.pem" tls-crypt "C:EasyRSAta.key" keepalive 10 120 cipher AES-256-GCM user nobody group nogroup persist-key persist-tun verb 3
Algunos puntos a tener en cuenta:
server 10.8.0.0 255.255.255.0— subred virtual donde residirán todos los clientes VPN;push "redirect-gateway ..."— fuerza todo el tráfico a través del túnel; si solo necesita "acceso a la oficina", elimínelo;tls-crypten lugar detls-auth— incrusta HMAC directamente en el apretón de manos TLS, reduciendo fugas de metadatos.
Paso 4. Ejecutamos OpenVPN como servicio
Tras la instalación ya dispone del servicio OpenVPNServiceInteractive. Este inicia un proceso separado por cada .ovpn que esté en config-auto. Por tanto:
mkdir "C:Program FilesOpenVPNconfig-auto"
copy "C:Program FilesOpenVPNconfigserver.ovpn" ^
"C:Program FilesOpenVPNconfig-auto"
Ahora vaya a Services → OpenVPN Service, ponga Startup type — Automatic y pulse Start. El servidor estará listo para aceptar conexiones incluso antes de iniciar sesión el usuario.
Paso 5. Abrimos el puerto en el firewall de Windows
Un comando de PowerShell evita clics repetidos:
New-NetFirewallRule -DisplayName "OpenVPN-UDP-1194" `
-Direction Inbound -Protocol UDP -LocalPort 1194 -Action Allow
No olvide hacer lo mismo en el router externo o en la nube — de lo contrario los clientes externos no verán el servidor.
Paso 6. Creamos perfiles de cliente (.ovpn)
La forma más cómoda es un archivo "todo en uno". Basta con incrustar los certificados directamente:
client dev tun proto udp remote vpn.example.com 1194 resolv-retry infinite nobind persist-key persist-tun remote-cert-tls server cipher AES-256-GCM verb 3 # pegue el contenido de ca.crt # pegue el contenido de alice.crt # pegue el contenido de alice.key # pegue el contenido de ta.key
Estos archivos .ovpn se abren sin problemas en OpenVPN Connect v3 para Windows, macOS, iOS, Android
y también en NetworkManager compatible con systemd en Linux. Para clientes de Windows a partir de la versión 3.2 hay un modo Service Daemon, que inicia el túnel antes del inicio de sesión del usuario (útil en kioscos y scripts de servidor).
Paso 7. Comprobamos la conexión
- Desde el cliente ejecute "
ping 10.8.0.1" (IP del servidor dentro del túnel); - Si no hay respuestas — revise
C:Program FilesOpenVPNlogserver.log; - Compruebe el MTU: a veces ayuda añadir
mssfix 1400en la configuración del servidor; - Asegúrese de que el reenvío está activado:
Set-NetIPInterface -InterfaceAlias "Ethernet" -Forwarding Enabled.
Errores comunes y su solución rápida
AUTH FAILED en el cliente? Asegúrese de que en server.ovpn
figura remote-cert-tls client (¡no server!).
TLS Error: TLS key negotiation failed? El servidor y el cliente usan distinto ta.key o puerto/protocolo.
Nada carga, pero el ping funciona? Revise las reglas NAT en la puerta de enlace a Internet o active en el servidor netsh interface ip set interface "Ethernet" forwarding=enabled.
Bono: autenticación LDAP y doble factor
Si los certificados le parecen "demasiado año 2005", use OpenVPN Access Server. Se instala sobre la Community Edition, puede integrarse con Active Directory, RADIUS e incluso repartir códigos TOTP. El coste aparece solo por conexiones de cliente por encima de 2, así que para una oficina doméstica a menudo basta la tarifa "gratuita".
Conclusiones
En unas pocas docenas de comandos y un instalador MSI ha obtenido una pasarela VPN completa: cifrado AES-256-GCM, CA propia, arranque automático como servicio y clientes multiplataforma. Para producción queda "pulirlo": configurar copias de seguridad de la PKI, prohibir cifrados débiles, activar CRL y definir la política de least-privilege
para los administradores. Y si algo se rompe — los registros le dirán honestamente quién olvidó la contraseña.
Espero que sus usuarios viajen felices por el túnel y usted pueda beber su café con tranquilidad, convencido de que todo el tráfico está empaquetado y entregado de forma segura. ¡Éxitos con el despliegue!