Cómo crear una VPN con OpenVPN en Windows. Parte 2: Cliente

Ok, ya tenemos el servidor Windows funcionando con OpenVPN como indicamos en este artículo. Vamos a configurar los clientes que se van a conectar en remoto. Podéis usar la guía de OpenVPN en inglés también.

Cada cliente tiene que instalar OpenVPN, tener un fichero de configuración, dos ficheros de clave y certificado (crt y key) y dos ficheros de servidor (certificado y ta.key). Vamos a ello.

Configurar las claves de cliente en el servidor (esto es para la versión EasyRSA 2.x, para la 3 aquí).

Vamos a ir al servidor, con un terminal (siempre usamos con permisos de administrador por si acaso) a la carpeta:
C:\Program Files\OpenVPN\easy-rsa  

Ahí escribiremos:
vars (ENTER)
build-key nombredelcliente (ENTER) por ejemplo build-key pgomez

Si hemos configurado bien el servidor, dejamos todo por defecto y damos a ENTER salvo donde pone Common Name que ponemos de nuevo el nombredelcliente. En el ejemplo pgomez.
Al resto Enter para la selección por defecto y dos y cuando lo pida firmar y confirmar.
Tomar nota que los certificados tienen una fecha de caducidad….es decir luego hay que realizar el proceso de nuevo para renovarlos (por seguridad).

En adelante cambia todo lo que ponemos nombredelusuario por el que has puesto en este paso.

Instalación de OpenVPN en el cliente.

Nos vamos al ordenador cliente e instalamos OpenVPN de aquí. Con la opción marcada de Easy-rsa. Si nos pide instalar y confiar en el interfaz TAP decimos que si.

Después, una vez instalado, tenemos que copiar los ficheros:

ca.crt
ta.key
nombredelusuario.key
nombredelusuario.crt


de la carpeta C:\Program Files\OpenVPN\easy-rsa\keys del servidor a la carpeta C:\Program Files\OpenVPN\config del ordenador del cliente remoto.
Nota: ta.key está en C:\Program Files\OpenVPN\easy-rsa

Vamos después, en el ordenador del cliente remoto a la carpeta 
C:\Program Files\OpenVPN\sample-config y copiamos el fichero client.ovpn a la carpeta C:\Program Files\OpenVPN\config (la misma donde hemos puesto los certificados).

Ahora renombramos el fichero client.ovpn que hemos copiado en config a nombredelusuario.ovpn y lo editamos.

  • Busca la línea dev tun y ponle un ; delante y quita el del dev tap. Tiene que tener dev tap para estar igual que el servidor. Puede que hayas elegido tun , aquí tienes la diferencia.
  • Ve a la línea que pone
ca ca.crt 
cert client.crt
key client.key

Y lo cambias por
ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\config\\nombredelusuario.crt"
key "C:\\Program Files\\OpenVPN\\config\\nombredelusuario.key"
  • Ve a la línea remote my-server-1 1194 y cambia my-server-1 por tu IP fija o por tu dominio (estático o dinámico). Esto le dice a la configuración dónde tiene que apuntar (al servidor OpenVPN).

    Ya lo tienes, sólo ejecuta el OpenVPN GUI del escritorio, y en el icono de la barra de tareas (zona del reloj) botón derecho y conectar. Debería ponerse en verde. Con eso ya tienes conexión.

NOTA:
si te sale el error :

TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
TLS handshake failed

Lo más normal es que sea por un fallo de firewall. O algo te bloque o no has abierto el puerto en el servidor.
PERO tuvimos un caso hace unos días que el problema era que el servidor tenía 2 tarjetas de red. Hay que especificar en qué tarjeta escuchar poniendo en el servidor local a.b.c.d (donde a.b.c.d es la dirección del interfaz en que quieres que se reciba la VPN).

34 comentarios en “Cómo crear una VPN con OpenVPN en Windows. Parte 2: Cliente”

  1. Conejillodeindias

    Y como me conecto a una red interna del servidor donde esta el OpenVPN??
    Por ejemplo, si el servidor tiene acceso a la red , 192.168.20.0 o 172.16.50.0 , ¿como hago para alcanzar esa red?. Ya que la unica red que veo es la que configure para el servidor, por ejemplo la 10.9.9.0. Que ese rango es el que me asigna al servidor ( 10.9.9.1 ) y al cliente 10.9.9.2 . Pero no consigo acceder a ninguna de las otras redes que tiene acceso el servidor.

    He probado a poner la red en el push del servidor, pero no funciona. También he probado a activar la opción client-to-client y nada, no llego a las otras redes.

    1. David G. Smyth (SmythSys)

      A ver, depende de si lo tienes en tap (bridge) o en router mode (el VPN). Si tienes en Bridge sólo es o client to client o no (aunque creo que se puede filtrar https://backreference.org/2010/06/18/openvpns-built-in-packet-filter/). Si lo tienes en router mode puedes hacer más cosas (https://backreference.org/2010/05/02/controlling-client-to-client-connections-in-openvpn/). Eso si una cosa es que lo permitas, y otra cosa es que los clientes tengan una ruta para llegar. Para llegar tienes que anunciar cada red que quieras en el servidor por push.
      Es decir tienes que ver el modo en que lo configuras (normalmente tap). Si quieres que un cliente vea otras máquinas tienes que poner client to client. Pero además anunciar la ruta de la red por qué interfaz va o no sabrán por dónde llegar a esa red.
      Y por último cuidado con el firewall del sistema operativo. Windows tiende a considerar otras redes como poco seguras y tienes que configurar su firewall o desactivarlo.

      1. a ver si colega nos puedes echar una mano he probado lo mismo que el chico aca arriba, lo tengo configurado en dev tap,la vpn del server es 10.8.0.0/24 y la red del servidor que quiero alcanzar es 192.168.0.0/24
        1- descomento client to client?
        2-en Push to como agrego estas rutas??
        logre conectar en ambas puntas pero no puedo acceder de ninguna de las puntas a la LAN de cualquiera de ambas..

    2. Listo he solucionado el problema me faltaba en el firewall tildas enrutamiento y acceso remoto en privado y publico habilitar push a la lan que quiero llegar y client -to client
      fue probar y probar y leer pero ya esta!!!!

      1. David G. Smyth (SmythSys)

        Excelente. A veces la gente quiere que resolvamos los problemas desde el blog pero es difícil (y no tenemos tiempo). Nos alegramos que lo hayas solucionado.

        1. en el caso de que se quiera acceder a los hosts de la Lan donde esta el server, necesitaria otra configuracion no es asi?? por que de esta manera solo puedo acceder a los recursos compartidos del server pero no de los equipos conectados al domain.

          1. David G. Smyth (SmythSys)

            Hay una opción en el fichero de OPenVPN para poder ver los clientes de la red. Además influye también que las rutas lo permitan.

          2. Recuerdas en el fichero del OpenVpn Server la opcion para llegar a la lan, o sea los hosts del domain?

  2. Estoy intentando eliminar el acceso a un certificado, pero por mas que uso el revoke-all , reinicio el servicio de openvpn, etc.. no consigo revokar el acceso a los certificados.

    He estado mirando varias guias y lo unico que veo distinto en los manuales a lo que me ocurre a mi , es que a mi me reporta este error “error keys\[nombrecertificado.crt]: verification failed”. Cosa que en las guias que estoy viendo no se refleja un error similar, en todas la ultima linea es el error 23.

    No se si es que hay un comando o algo por ahi oculto que me estoy pasando y no consigo eliminar el acceso a ese certificado.

    1. David G. Smyth (SmythSys)

      Hola, lo siento pero no damos soporte a través del blog. Sólo artículos técnicos. Tendrías que consultar en un foro de openvpn.

  3. buenos dias, he realizado de nuevo todas las configuraciones en el servidor openvpn generado los certificados, el ta.key, el servidor me da la ip 10.8.0.1 en el cliente me la ip 10.8.0.6, desde el servidor realizo ping a la 10.8.0.6 y responde, pero desde la ip 10.8.0.6 a la ip del servidor que es la 10.8.0.1 no responde, veo que en el equipo cliente con route print se ha añadido la entrada de 192.168.0.0 255.255.255.255 10.8.0.5 10.8.0.6 pero no realizo ping al equipo cliente con la ip 192.168.0.100, que es la red detras del servidor , firewall desactivado, puertos abiertos, todo bien, ademas aparece en el log del servidor el equipo cliente conectado. cual podria ser el error. gracias

  4. Pos yo seguí las instrucciones de Servidor y Cliente, y jalo a todo dar, puedo ver el servidor desde tres ciudades diferentes y funciona muy bien

      1. Hice todo al pie en un LAb Virtual en mi hogar con un windows server 2012 y un client windows 10 conecta todo perfecto, puedo ver el server desde el client estando en subredes diferentes pero obviamente saliendo por la misma ip wan, ahora cuando genero otro certificado para ponerlo en una pc de produccion de mi cliente conecta tambien perfecto pero no puedo acceder al server, en que estoy fallando, he configurado el firewall del cliente para que acepta el ovpn y su puerto, si conecta al server pero no puedo ver los recursos

        1. David G. Smyth (SmythSys)

          Si no ves los recursos hay dos razones 1) Cliente y Servidor están en la misma red. Si la red es la misma, el ordenador no va a sacar los paquetes por la VPN a menos que se le indique con rutas.No es buena idea (aunque es un fallo común) que ambas redes sean la misma. 2) Hay un parámetro en la configuración para poder ver otros equipos, asegúrate que está habilitado.

  5. Buenas tardes, cree todas las configuaraciones y certificados. Y una vez conectado apago todo y a la hira de conectar el cliente al servidor da un error de tls. A que puede ser debido

      1. buenos dias he comprobado los puertos y el firewall en ambos routers desactivado firewall, en ambos equipos cliente y servidor, desactivado firewall y creadas las reglas entradas y salidas oportudas, para cercionarme del puerto y lo acepte, antivirus desactivado. Aun sigue dandome error de tls de negociacion. He cambiado a tcp4 por probar e idem.
        te adjunto unas lineas del servidor.

        TLS Error: incoming packet authentication failed from [AF_INET] ip publica
        Tue Mar 24 11:37:25 2020 us=605116 Authenticate/Decrypt packet error: packet HMAC authentication failed

  6. Tengo este error, ya cambie el upd udp4 y tap a tap4 pero prosigue el problema
    Sat Mar 21 09:40:56 2020 Restart pause, 5 second(s)
    Sat Mar 21 09:41:01 2020 MANAGEMENT: >STATE:1584794461,RESOLVE,,,,,,
    Sat Mar 21 09:41:01 2020 RESOLVE: Cannot resolve host address: my-server-1:190.52.179.12 (No se ha encontrado la clase especificada. )
    Sat Mar 21 09:41:01 2020 MANAGEMENT: >STATE:1584794461,RESOLVE,,,,,,
    Sat Mar 21 09:41:01 2020 RESOLVE: Cannot resolve host address: my-server-1:190.52.179.12 (No se ha encontrado la clase especificada. )
    Sat Mar 21 09:41:01 2020 Could not determine IPv4/IPv6 protocol
    Sat Mar 21 09:41:01 2020 SIGUSR1[soft,init_instance] received, process restarting
    Sat Mar 21 09:41:01 2020 MANAGEMENT: >STATE:1584794461,RECONNECTING,init_instance,,,,,
    Sat Mar 21 09:41:01 2020 Restart pause, 10 second(s)

    1. David G. Smyth (SmythSys)

      “Cannot resolve host address: my-server” No parece que resuelva el host. Tienes un problema de rutas o dns.

  7. Gracias, en primer lugar.
    Pues después de configurar y generar todo de nuevo en el equipo con windows 10 que actúa de servidor openvpn. Desactivar firewall, generar de nuevo el ta.key con openvpn –genkey –secret /keys/ta.key no se me ocurre nada más.
    Estaba realizando esto para trabajar remotamente desde casa ante la situación tan crucial que tenemos.
    Muchas gracias. probare en un par de días, ya os iré diciendo. saludos

    1. David G. Smyth (SmythSys)

      Tienes WIndows? Prueba nuestro artículo sobre la VPN con Windows (sin OpenVPN). Es menos seguro pero puedes acabarlo antes.

      1. Si, el servidor lo estoy montando en windows 10 y el cliente en windows 7, no se si probar instalando openvpn server en linux.
        Cual es ese articulo. Gracias

  8. Buenos días David, he realizado todas las configuraciones de nuevo pero esta vez en winodws 7 profesional, version openvpn 2.4.7, y me funciona todo perfectamente. Antes estaba usando la version 2.4.8 y el servidor en windows 10. No se cual sería el problema. Gracias por los aportes

    1. David G. Smyth (SmythSys)

      Me alegro que te funcionara. Salvo que hayan incluido algo en la nueva configuración no tiene lógica a menos que al reinstalarlo hayas hecho un paso que no hicieras en el otro.

  9. David, cada tanto tiempo es recomendable generar una nueva clave de certificado para los clientes, el proceso es el mismo que como generarlo desde cero no? me refiero si a user1 que ya esta activo le quiero volver a generar una clave nueva hago los pasos de build-key………..etc etc el mismo proceso que si lo creara desde la primera vez pero manteniendo el nombre del user1, no es asi?

    1. David G. Smyth (SmythSys)

      Si, el proceso es el mismo. Los certificados caducan cada cierto tiempo, y puedes poner el tiempo de caducidad (no me acuerdo cómo). Yo suelo regenerarlo cada año aprox.

  10. Buenas a todos,
    Puse otro post pero no lo veo, lo repito pues.
    Esta página me ayudo a configurar el servidor y todos los clientes de Openvpn.
    Openvpn en su nueva actualización 2.5 obliga el uso en el servidor de easy-rsa 3, cuando hasta el momento era el easy-rsa 2 en sus versiones 2.4 y supongo que anteriores. Si se actualiza el servidor, los usuarios pueden continuar accediendo pero el problema es que ya no puedes usar el comando build-key para crear un nuevo usuario.
    ¿Podrías actualizar el post para ver como migrar a easy-rsa-3?
    Gracias y muy buen trabajo

    1. David G. Smyth (SmythSys)

      Gracias!
      No hemos tenido todavía que generarlos con easy-rsa 3. Cuando tengamos que hacerlo, escribiremos un artículo (pronto supongo). Gracias por avisar.
      PD: Los posts están moderados, por eso no te aparecen inmediatamente 😀

  11. Gracias, ¡lo esperaremos!
    Mientras, lo que puedo decir es que si se actualiza el servidor -los clientes no tiene ningún efecto- es que pasa a ser un problema. De momento por eso, la última versión del 2.4 es la 2.4.10 y es del diciembre de 2020. Así que queda cuerda para rato. También os cuento que si actualizar a la 2.5, pruebas y no te convence, pasar a la 2.4 es simplemente desinstalar la 2.5 y volver a instalar la versión antigua. Aunque trastes, porque la nueva manera de generar archivos en carpetas independientes al anterior.

    1. David G. Smyth (SmythSys)

      Ok, como dices parece que la 2.4 todavía tendrá tiempo. Por lo que veo en la 2.5 hay que bajar el easy-rsa 3 y son unos comandos diferentes. Cuando lo probemos hacemos el artículo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

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).

Scroll al inicio