OpenVPN en Windows con EasyRSA 3 (versiones de OpenVPN 2.4 o superiores). Parte del servidor.

Desde la versión 2.4, OpenVPN ha cambiado su sistema de generación de certificados a EasyRSA 3. El sistema para configurarlo es diferente y hoy os explicamos todo el proceso de la instalación y configuración del servidor en Windows.

Paso 1: Instalación de OpenVPN.

  • Lo primero que debemos hacer es descargar el programa de OpenVPN. Puedes hacerlo aquí.
  • Ejecuta el programa de instalación y pincha en las opciones de configuración personalizada. Tienes que marcar OpenVPN Service e EasyRSA 3 certificate management scripts. El primero instala el servicio para poder luego arrancar el programa con Windows, el segundo instala el generador de certificados.

Paso 2: configura la plantilla de certificados.

Una vez instalado el programa, abre un terminal con permisos de administrador y ve a C:\Program Files\OpenVPN\easy-rsa

  • Ejecuta el siguiente fichero (escribe y pulsa Enter). Verás que al ejecutarlo entra en una especie de consola. Siempre que queramos hacer comandos de easyrsa hay que arrancar este bat para que entre en el shell.
EasyRSA-Start.bat
  • Inicializamos en el directorio la Public Key Infrastructure (PKI).
./easyrsa clean-all
./easyrsa init-pki

Ahora hay que editar, si quieres, el fichero vars.bat con el editor de notas o con el Wordpad. Hay uno de ejemplo, cambia el nombre o cópialo a vars.bat. Es la plantilla que se va a usar para la generación de certificados y debemos poner varios valores. Puedes hacerlo desde terminal escribiendo notepad vars.bat.

Tienes que modificar y poner los siguientes valores (los de cursiva son ejemplos, pon los tuyos):

set_var EASYRSA_REQ_COUNTRY	"ES"
set_var EASYRSA_REQ_PROVINCE	"Madrid"
set_var EASYRSA_REQ_CITY	"Madrid"
set_var EASYRSA_REQ_ORG	"Tu empresa (puedes dejar OpenVPN)"
set_var EASYRSA_REQ_EMAIL	"tucorreo@tudominio.es"
set_var EASYRSA_REQ_OU		"Tu unidad organizativa, si no sabes pon la empresa"

Tú decides si quieres cambiar el valor del parámetro Diffie Hellman (no es necesario).

set_var EASYRSA_KEY_SIZE	2048

Paso 3. Genera los certificados y llaves del servidor y de los usuarios.

En estos pasos, la opción nopass es para que no pregunte la contraseña. En el servidor no conviene ponerla (puedes), en los clientes puedes añadirla si quieres más seguridad…pero también hará que sea menos amigable porque cada vez que haya que firmar te pedirá la clave. Tú decides. Si quieres clave no pongas nopass.

Primero generamos la entidad certificadora.

./easyrsa build-ca nopass

Te va a preguntar el nombre de tu servidor.

Esto crea dos ficheros:

  • ca.crt: Es la clave pública. Por eso hace falta que esté tanto en el servidor como en los clientes.
  • ca.key. Es la clave privada RSA que se usa para firmar los certificados, y sólo debe estar en el servidor.

Ahora creamos el certificado y la llave del servidor.

./easyrsa build-server-full server nopass

Ahora puedes generar las claves de los clientes.

./easyrsa build-client-full Client1 nopass

Client1 lo debes sustituir por el CN de tus usuarios (yo uso sus nombres de usuario).

NOTA: si luego queremos volver, otro día, a ejecutar este comando para generar los certificados de cliente, recuerda que tenemos que ejecutar el EasyRSA-Start.bat para entrar en el shell de RSA.

Genera los parámetros Diffie Hellman:

./easyrsa gen-dh

Este último paso es opcional, pero aumenta la seguridad. Generamos una clave TLS (fichero que debe tener tanto el servidor como los clientes).

Ejecútalo en el directorio /bin de openvpn y te crea ahí el fichero.

openvpn --genkey secret ta.key

Paso 4. Obtención de ficheros.

Con los pasos anteriores se han generado los siguientes ficheros que necesitaremos (rutas desde easy-rsa):

  • pki/dh.pem (fichero para la carpeta de configuración del servidor)
  • pki/ca.crt (fichero para el servidor y clientes)
  • pki/private/server.key (para el servidor)
  • pki/issued/server.crt (para el servidor)
  • pki/private/cliente1.key (para la carpeta del cliente)
  • pki/issued/cliente1.crt (para la carpeta del cliente)
  • bin/ta.key (tanto para el servidor como para los clientes)

Paso 5. Configuración final del servidor.

Esta última parte es exactamente igual que la Configuración final del servidor de la versión anterior que podéis ver aquí (ten en cuenta que el fichero ahora es dh.pem y no dh2048.pem).

Con eso ya estaría la parte del servidor. Inicializa el programa, dale a Connect y mira si se conecta en verde.

Después, podéis seguir esta configuración para los clientes.