Este artículo muestra paso a paso cómo conectarse a una VPN desde Windows, incluyendo la instalación y configuración del cliente OpenVPN.
Supongamos que hemos montado un servidor OpenVPN en la nube y deseamos conectar un cliente Windows. El primer paso (si aún no lo hemos hecho) consiste en generar un certificado mediante la CA de OpenVPN (easy-rsa).
Generar un nuevo certificado cliente con easy-rsa
Cambiar al directorio de instalación de OpenVPN:
root@vpn:~# cd /etc/openvpn/easy-rsa/
Configurar el entorno de la CA:
root@vpn:/etc/openvpn/easy-rsa# . ./vars NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys
Generar un certificado para el usuario "emi" ejecutando:
root@vpn:/etc/openvpn/easy-rsa# ./build-key emi Generating a 2048 bit RSA private key ................+++ ..........................................................................+++ writing new private key to 'emi.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AR]: State or Province Name (full name) [Buenos Aires]: Locality Name (eg, city) [Bahía Blanca]: Organization Name (eg, company) [Linuxito.com]: Organizational Unit Name (eg, section) [vpn]: Common Name (eg, your name or your server's hostname) [emi]: Name [EasyRSA]: Email Address [emi@linuxito.com]: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: Using configuration from /etc/openvpn/easy-rsa/openssl.cnf Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows countryName :PRINTABLE:'AR' stateOrProvinceName :PRINTABLE:'Buenos Aires' localityName :T61STRING:'Bah\0xFFFFFFC3\0xFFFFFFADa Blanca' organizationName :PRINTABLE:'Linuxito.com' organizationalUnitName:PRINTABLE:'vpn' commonName :PRINTABLE:'emi' name :PRINTABLE:'EasyRSA' emailAddress :IA5STRING:'emi@linuxito.com' Certificate is to be certified until Aug 13 01:06:09 2118 GMT (36500 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated
Luego cambiar al directorio keys/
y generar un archivo para descargar al cliente:
root@vpn:/etc/openvpn/easy-rsa# cd keys/ root@vpn:/etc/openvpn/easy-rsa/keys# tar czf emi.tar.gz emi.crt emi.key ca.crt ../../ta.key
Este archivo debe contener tanto el certificado y su correspondiente clave, como el certificado de la CA (ca.crt
) y la clave de autenticación TLS (ta.key
) si es que se utiliza este mecanismo de seguridad.
Desde el cliente, descargar el archivo /etc/openvpn/easy-rsa/keys/emi.tar.gz
(por ejemplo utilizando WinSCP).
Instalación del cliente
Contando con un certificado que nos permita conectar a la VPN, descargar el cliente OpenVPN para Windows desde el siguiente enlace:
Descargar el instalador para Windows 7 y posterior.
Ejecutar el instalador y seleccionar el adaptador TAP y la GUI:

Entre las opciones avanzadas es posible configurar el cliente para que inicie automáticamente si así se desea:

Indicar un directorio de instalación:

Y permitir la instalación del dispositivo de red necesario para el funcionamiento de la VPN:

Al finalizar la instalación, aparece el siguiente ícono en la barra de tareas:

Configuración del cliente
Abrir una ventana en el directorio config/
dentro del directorio de instalación de OpenVPN:

En este directorio se almacena la configuración del cliente. Inicialmente está vacío.
Luego abrir el archivo comprimido con el certificado cliente (se puede utilizar 7-Zip para Windows):

Y extraer los archivos en un directorio temporal:

El siguiente paso consiste en dar permiso de escritura (Modify y Write) sobre el directorio config/
para el usuario actual (se debe contar con acceso como Administrador a tal fin):

Esto permite copiar el certificado y crear el archivo de configuración dentro de config/
:

Luego crear un nuevo archivo de texto:

Y cambiar su nombre y extensión:

En Windows se utiliza la extensión .ovpn
para identificar los archivos de configuración de OpenVPN. Editar el archivo de configuración con Notepad++:

La configuración varía de acuerdo a la del servidor OpenVPN. En el siguiente enlace se puede encontrar un archivo de configuración de un cliente de ejemplo:
OpenVPN / openvpn / sample / sample-config-files / client.conf
En este ejemplo se utiliza la siguiente configuración de dispositivo tun sobre UDP, que además incluye: autenticación TLS; el uso de la suite de cifrado AES-256-CBC; y compresión LZO:
client dev tun proto udp remote 192.168.1.10 1194 resolv-retry infinite nobind persist-key persist-tun ns-cert-type server ca ca.crt cert emi.crt key emi.key cipher AES-256-CBC comp-lzo tls-auth ta.key 1 verb 3
Editar la dirección IP y puerto del servidor remoto según corresponda.
Conexión a la VPN
Al guardar el archivo, el cliente detecta la nueva configuración y se conecta automáticamente a la VPN:

Se puede comprobar el estado pasando por encima con el ratón:

En caso de errores, comprobar el log de conexión del cliente.