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.

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

  1. Buenas tardes, estoy leyendo vuestra publicaci贸n y en tiempo configure un servidor openvpn con vuestra ayuda, pero creaba los clientes de la siguiente forma build-key-pass nombredelcliente para que cuando el cliente se conectara pusiera la contrase帽a, ahora con esta nueva forma como se haria, ./easyrsa build-client-full Client1 nopass, el build-client-full que significa? y si quiera que pidiera contrase帽a como se haria

    Saludos y gracias por los aportes

    Responder
    • Como sabes los usuarios pueden conectarse a openvpn si contrase帽a, luego les pide contrase帽a (de AD por ejemplo) para acceder a los recursos. Si quieres poner una contrase帽a para permitirles o no usar openvn pon ./easyrsa build-client-full Client1. Es una medida adicional de seguridad.
      En la mayor铆a de los casos no lo veo necesario, y es un engorro de gestionar porque no va por AD. As铆 que yo uso ./easyrsa build-client-full Client1 nopass para que no pida es contrase帽a, y s贸lo pida la de los recursos.
      Respecto al full, no me lo he planteado. Es el comando a usar y no he investigado opciones.

      Responder
      • Muchisimas gracias, al final lo he realizado como me has aconsejado, pero una cosa curiosa, he creado el archivo vars.bat y he realizado todos los pasos, cuando veo el certificado en el emisor no me pone los valores que he modificado en el archivo vars.bat. lo de cn, email, etc, solo me pone el nombre de la CA que lo ha firmado, vamos que luego los clientes se conectan perfectamente y he realizado una revocaci贸n de un certificado para probar y no se conecta, asi que no hare mucho caso en eso. con vuestras indicaciones he vuelto a nos conectemos por RDP de nuevo.

        Responder

Deja un comentario

Resumen de nuestra Pol铆tica de Privacidad

  • Responsable:聽SmythSys IT Consulting SLNE.
  • Finalidad:聽Gestionar y moderar los comentarios.
  • Legitimaci贸n:聽Necesitas dar tu consentimiento para publicar un comentario.
  • Destinatarios:聽Tus datos se alojan en los servidores de OVH.
  • Derechos:聽Tienes derecho a acceder, rectificar, limitar y suprimir los datos en la direcci贸n del responsable (en nuestra pol铆tica de privacidad).

Time limit is exhausted. Please reload CAPTCHA.