MANUAL: Mikrotik, OpenVPN e IKEv2 VPNs

Pásame si quieres un export de la config por privado, un pantallazo de los certificados (asegúrate de que el de servidor tiene las tres propiedades extendidas que mencionaba antes) y pantallazos de cómo configuras la conexión en el windows 10.

Para esto último, asegúrate de estar importando el certificado de cliente en el almacen “Personal” y la CA en el almacén de entidades de certificación raiz confiables. Cuando configures la conexión en windows, tienes luego que editarla y, en la pestaña Seguridad, decirle que quieres que use los Certificados locales de la máquina, no los de EAP. Si sólo tienes un certificado en el almacén “Personal”, cogerá ese por defecto.

Saludos!
Si, los certificados están instalados ahí y la configuración en Windows la he hecho como comentas. El certificado de servidor también cuenta con las propiedades extendidas. Te mando el export. Gracias por la ayuda.

Un saludo!
 
Si, los certificados están instalados ahí y la configuración en Windows la he hecho como comentas. El certificado de servidor también cuenta con las propiedades extendidas. Te mando el export. Gracias por la ayuda.

Un saludo!
Buenas! la configuración está bien. ¿Me pasas pantallazos de cómo configuras la VPN en windows? Entiendo que estás usando el dominio de mikrotik como endpoint para la vpn, ¿verdad?
Sospecho también que el windows no va, per con la misma configuración funciona el iPhone sin problemas. ¿Cierto?

Saludos!
 
Buenas! la configuración está bien. ¿Me pasas pantallazos de cómo configuras la VPN en windows? Entiendo que estás usando el dominio de mikrotik como endpoint para la vpn, ¿verdad?
Sospecho también que el windows no va, per con la misma configuración funciona el iPhone sin problemas. ¿Cierto?

Saludos!
Te paso la configuración de la VPN. En primer lugar, configurada desde la pestaña VPN de Windows:

1.PNG

2.PNG


El error que aparece:

3.PNG


En segundo lugar la configuración de la VPN desde el panel de control:

4.PNG

5.PNG


El error que aparece:

6.PNG


En cuanto a la VPN en el iPhone, funciona perfectamente. He creado dos certificados de cliente, uno para el PC y otro para el móvil.
 
Vale, con la segunda opción vas perfecto. Lo que creo que te puede estar pasando es que tengas más de un certificado personal instalado en la keystore local, y de ahí que no haga el match entre certificados. Pero la conexión ya no te dice lo de las credenciales son inaceptables, y eso significa que al menos el certificado de servidor ya está como debe.
Para revisarlo, vamos a inicio-> ejecutar->mmc. Se te abre una consola de administración de windows. Pulsas CTRL+M y sale una ventana para elegir el tipo. Le marcas certificados y lo pasas hacia la columna de la derecha. Cuando aceptes, te saldrá una ventana preguntándote qué tipo de keystore quieres administrar, y le marcas la tercera opción para que abra los locales de la máquina. Sigues el proceso, siguiente, siguiente, y una vez acabes el proceso tendrás una consola con un árbol de carpetas a la izquierda. De ese listado, nos interesan las dos primeras carpetas, “Personal” y “Entidades de certificación raíz confiables”. En ese punto, busca rastro de tus certificados previos en todo el árbol, por si los hubiera metido también en alguna otra carpeta, y bórralos donde aparezcan (sólo tu certificado ca y el de cliente). Cuando lo tengas todo limpio y no encuentres tu certificado por ninguna de las carpetas del árbol, vamos al siguiente paso para re-importarlo, esta vez de manera ligeramente distinta.

Una vez tengas todo limpio, vamos a trabajar únicamente con el certificado cliente.p12. Te pones encima de la carpeta “Personal”, la primera del árbol, botón derecho y en las acciones seleccionas importar. Como ya estás en el keystore local, en la primera pantalla no podrás seleccionar nada, porque aparecerá el selector de almacén de claves deshabilitado y marcado el de local. Sigues el proceso de importación e importas directamente el client.p12. Te pedirá la password con la que lo exportaste y no toques ninguna otra opción de las que vienen seleccionadas por defecto. Una vez importado, verás que en la carpeta “Personal” hay dos certificados, el propio de cliente y su cadena de certificación, en este caso, únicamente la CA. Seleccionas el certificado de la CA, y lo arrastras a la carpeta “Certificados” dentro de la segunda capeta de la jerarquía del árbol que tienes a tu izquierda, la de las entidades de certificación raíz de confianza, y lo sueltas allí. Si todo ha ido bien, tendrás un único elemento en la carpeta certificados del almacén “Personal” y la CA que verifica que ese certificado es válido la tendrás en el almacén de entidades certificadoras raíz confiables.

En ese momento, prueba y me dices si conecta ;)

Saludos!
 
Vale, con la segunda opción vas perfecto. Lo que creo que te puede estar pasando es que tengas más de un certificado personal instalado en la keystore local, y de ahí que no haga el match entre certificados. Pero la conexión ya no te dice lo de las credenciales son inaceptables, y eso significa que al menos el certificado de servidor ya está como debe.
Para revisarlo, vamos a inicio-> ejecutar->mmc. Se te abre una consola de administración de windows. Pulsas CTRL+M y sale una ventana para elegir el tipo. Le marcas certificados y lo pasas hacia la columna de la derecha. Cuando aceptes, te saldrá una ventana preguntándote qué tipo de keystore quieres administrar, y le marcas la tercera opción para que abra los locales de la máquina. Sigues el proceso, siguiente, siguiente, y una vez acabes el proceso tendrás una consola con un árbol de carpetas a la izquierda. De ese listado, nos interesan las dos primeras carpetas, “Personal” y “Entidades de certificación raíz confiables”. En ese punto, busca rastro de tus certificados previos en todo el árbol, por si los hubiera metido también en alguna otra carpeta, y bórralos donde aparezcan (sólo tu certificado ca y el de cliente). Cuando lo tengas todo limpio y no encuentres tu certificado por ninguna de las carpetas del árbol, vamos al siguiente paso para re-importarlo, esta vez de manera ligeramente distinta.

Una vez tengas todo limpio, vamos a trabajar únicamente con el certificado cliente.p12. Te pones encima de la carpeta “Personal”, la primera del árbol, botón derecho y en las acciones seleccionas importar. Como ya estás en el keystore local, en la primera pantalla no podrás seleccionar nada, porque aparecerá el selector de almacén de claves deshabilitado y marcado el de local. Sigues el proceso de importación e importas directamente el client.p12. Te pedirá la password con la que lo exportaste y no toques ninguna otra opción de las que vienen seleccionadas por defecto. Una vez importado, verás que en la carpeta “Personal” hay dos certificados, el propio de cliente y su cadena de certificación, en este caso, únicamente la CA. Seleccionas el certificado de la CA, y lo arrastras a la carpeta “Certificados” dentro de la segunda capeta de la jerarquía del árbol que tienes a tu izquierda, la de las entidades de certificación raíz de confianza, y lo sueltas allí. Si todo ha ido bien, tendrás un único elemento en la carpeta certificados del almacén “Personal” y la CA que verifica que ese certificado es válido la tendrás en el almacén de entidades certificadoras raíz confiables.

En ese momento, prueba y me dices si conecta ;)

Saludos!
Vale, lo estaba habiendo tal cual me lo has descrito tu y no me iba, pero al decirme que en la carpeta personal solo debe haber un certificado, lo he comprobado y ahí tenía dos certificados: el de la VPN y otro que ponía localhost (que no se para que es). He borrado el de localhost y me ha conectado. Muchas gracias!!

Otra cosa, cuando se instala el certificado no es posible hacerlo para cada usuario en lugar de un certificado para todo el equipo?

PD: Una vez conectado a la VPN tengo poca estabilidad, estoy navegando sin problemas y de repente deja de conectar, tengo que quitar la VPN y vuelve a navegar. He notado que haciendo un speedtest, la bajada sin problemas, pero a la hora del test de subida peta y tengo que quitar la VPN. Alguna idea de por qué?
 
Vale, lo estaba habiendo tal cual me lo has descrito tu y no me iba, pero al decirme que en la carpeta personal solo debe haber un certificado, lo he comprobado y ahí tenía dos certificados: el de la VPN y otro que ponía localhost (que no se para que es). He borrado el de localhost y me ha conectado. Muchas gracias!!
Eso me temía, que había ya alguno ahí.

Con respecto a lo de los usuarios, creo que ahora mismo no se puede, porque el mikrotik no soporta aún autenticación por EAP para certificados de usuario. Han metido soporte para EAP a nivel cliente, para que el mikrotik se conecte a un tipo servidor VPN y haga de cliente, pero aún no lo soporta a nivel servidor.

Con respecto al rendimiento, ni idea. Yo he hecho pruebas desde móvil y desde Mac y va como un tiro. Pero Windows hace tiempo que no lo trabajo.

Me alegro de que te funcione, al menos eso ya lo tienes!

Saludos!
 
Estoy intentando acceder a VPN Ikev2 con mi IOS, tengo una duda

Ejemplo datos de conexión par IKEv2 con PSK (iOS)
Navegación: Ajustes -> General -> VPN -> Añadir configuración VPN
Tipo: IKEv2
Descripción: XXX [ a gusto de consumidor ]
Servidor: serial.sn.mynetname.net [cambiar por vuestro dominio dyndns]
ID remoto: server.sn.mynetname.net
ID local: clientX@sn.mynetname.net
Autenticación
Autenticación de usuario: NingunaUsar certificado: Desmarcado (No)Secreto: Th4t.sMySup3rS3cr3t!

Donde dice "Servidor" se refiere a ""/ip cloud"?
Donde dice "ID remoto" se refiere a "/ip cloud"?
Donde dice "ID local" puedo poner cualquier cosa o "ClientX" está prefijado en algún punto de la config?

Gracias por tu labor y tu paciencia @pokoyo
 
Estoy intentando acceder a VPN Ikev2 con mi IOS, tengo una duda



Donde dice "Servidor" se refiere a ""/ip cloud"?
Donde dice "ID remoto" se refiere a "/ip cloud"?
Donde dice "ID local" puedo poner cualquier cosa o "ClientX" está prefijado en algún punto de la config?

Gracias por tu labor y tu paciencia @pokoyo

En el servidor la IP pública (si la tienes estática) o lo que tienes en IP cloud, en caso de ser dinámica.
En ID remoto tienes que poner lo que hayas definido en el certificado de servidor, en el campo Alternative Name (o en el CN, si lo definiste allí). Por comodidad usé el mismo
En ID local tienes que poner lo que hayas definido en el campo Alternative name (o CN, al igual que antes) del certificado de cliente.

Saludos!
 
En ID remoto tienes que poner lo que hayas definido en el certificado de servidor, en el campo Alternative Name (o en el CN, si lo definiste allí). Por comodidad usé el mismo
En ID local tienes que poner lo que hayas definido en el campo Alternative name (o CN, al igual que antes) del certificado de cliente.

·Entonces para IOS también necesitas generar certificados? Creía que iba con clave compartida

Saludos
 
·Entonces para IOS también necesitas generar certificados? Creía que iba con clave compartida

Saludos
Tienes ambos métodos en el manual. Si lo quieres con certificados o con clave PSK. Si optas por esto último, los valores deben machear con lo que pongas en el identity al darlo de alta. Pero pueden ser cualquier cosa que identifique a cliente y servidor, no tiene porqué ser lo que pongo en el manual, que es un mero ejemplo.

Saludos!
 
Te pongo capturas de mk y de ios

1594980287169.png


WhatsApp Image 2020-07-17 at 12.05.45.jpeg

Inserto miniatura de la captura de ios

Saludos
 
@pokoyo
Gracias por el manual.
Ya he montado la VPN IKEv2 en el hEX-S.
Me he conectado desde el móvil con la app StrongSwan y he importado los certificados descargados del hEX-S y pasados al móvil.
La verdad es que no se si en mi caso le daré mucha utilidad ya que no tengo las necesidades de un usuario avanzado pero por si acaso ya la tengo en marcha.
Estoy más contento que un niño con zapatos nuevos.
Muchas gracias por tus "regalos" (manuales).

MKT_ikev2_hEX.png
 

Adjuntos

  • MKT_ikev2_R4X.jpg
    MKT_ikev2_R4X.jpg
    101.9 KB · Visitas: 124
@pokoyo
Gracias por el manual.
Ya he montado la VPN IKEv2 en el hEX-S.
Me he conectado desde el móvil con la app StrongSwan y he importado los certificados descargados del hEX-S y pasados al móvil.
La verdad es que no se si en mi caso le daré mucha utilidad ya que no tengo las necesidades de un usuario avanzado pero por si acaso ya la tengo en marcha.
Estoy más contento que un niño con zapatos nuevos.
Muchas gracias por tus "regalos" (manuales).

Ver el adjunto 39433

Sólo por la velocidad de conexión y el modo "always on" del strongswan, merece la pena. Me alegro de que te haya resultado sencillo de montar, era la idea!.

Otra idea, para sacarle partido: instala un pi-hole (en una raspberry-pi lo tengo yo) en tu red local y líbrate de la publicidad. Una vez hecho, edita el mode-config para apuntar a dicha IP como DNS resolver: vas a flipar la cantidad de datos que ahorras cuando estás fuera de casa conectado por 4G a la VPN y el pi-hole trabajando descartando mierda. Y es una gozada ir con el móvil y no tragarte ni un anuncio.

Saludos!
 
@pokoyo
Una duda que me ha surgido. Así de paso también le servirá a alguien más que tenga esta duda.
Cuando caduquen los certificados que pasos tenemos que seguir para renovarlos en cada uno de los tres .
  • VPN-CA [Certificate Authority]: Es el certificado raíz de nuestra conexión, capaz de firmar otros certificados. Si nos lo ha firmado una entidad pública, será validado automáticamente por alguna CA pública. Sino, como es nuestro caso, será un certificado auto-firmado, y tendremos que confiar en él manualmente.
  • VPN-Server: El certificado con el que se identifica el servidor, nuestro equipo mikrotik. Es validado por los clientes cuando se establece la conexión.
  • VPN-Client-X: El certificado(s) con los que se identifican cada uno de los clientes. Podemos tener uno o muchos, dependiendo de cuantos clientes se quieran conectar a nuestro equipo. Se puede generar un único certificado cliente, pero lo recomendable es que se emita uno para cada equipo distinto que vamos a querer conectar. Es validado por el servidor, para cada cliente que conecta.

Porque sino los novatos no sabremos que hacer cuando lleguen a la fecha de caducidad.
Gracias.
 
@pokoyo
Una duda que me ha surgido. Así de paso también le servirá a alguien más que tenga esta duda.
Cuando caduquen los certificados que pasos tenemos que seguir para renovarlos en cada uno de los tres .


Porque sino los novatos no sabremos que hacer cuando lleguen a la fecha de caducidad.
Gracias.

Buenísima pregunta. Mañana os paso los scripts que tengo yo para automatizar ese paso. Edito el post original y los añado.

Saludos!
 
Buenísima pregunta. Mañana os paso los scripts que tengo yo para automatizar ese paso. Edito el post original y los añado.

Saludos!

@stargate4you no me he olvidado de ti ni de los certificados. Para no joder lo que tengo en producción, he creado unos certificados de prueba con una CA que expira en 5 días, un certificado servidor que expira en 3 y un certificado cliente que expira en 1, para ver cómo realizar el proceso de renovación. Lo más sencillo es volver a ejecutar los comandos del principio del post para generar de nuevo todo el set de certificados, pero tengo curiosidad por saber si hay manera de renovarlos cuando caducan y cómo se quedan en el router una vez pasa esto.

Mañana o pasado te doy el resultado.

Saludos!
 
@stargate4you no me he olvidado de ti ni de los certificados. Para no joder lo que tengo en producción, he creado unos certificados de prueba con una CA que expira en 5 días, un certificado servidor que expira en 3 y un certificado cliente que expira en 1, para ver cómo realizar el proceso de renovación. Lo más sencillo es volver a ejecutar los comandos del principio del post para generar de nuevo todo el set de certificados, pero tengo curiosidad por saber si hay manera de renovarlos cuando caducan y cómo se quedan en el router una vez pasa esto.

Mañana o pasado te doy el resultado.

Saludos!

yo también espero la solución, pero no tengo prisa, puedo esperar mas de un año (para que me caduquen los de cliente ;) ). Pero me temo que no hay otra que volverlos a generar de cero. Yo estuve intentando hacerlo hace unos meses, cuando monté mi VPN y no supe (no se me ocurrió lo de hacer uno a un día y ver que pasaba, la verdad, solo cambiar o renovar uno ya hecho). Me hice un script para volverlos a generar, por si al cabo de dos años se me olvidaba todo :p. Sin embargo, como @pokoyo es muy apañado, seguro que se le ocurre algo. Si no, puede que en dos años MikroTik ponga un renovador automático, si se lo pedimos muchos :)
 
Última edición:
Buenas @furny, @stargate4you,

Pues el tema no tiene demasiada ciencia. Una vez expirado, nos marca con una "E" de "Expired" el estado del certificado.

1597391062136.png


Sin embargo, sólo podremos revocarlo (cosa que ya no añade nada, porque ya está expirado), y sólo nos dejará borrarlo cuando borremos la CA que lo emitió. Es decir, en ese momento, tenemos dos opciones:
  • Volvemos a crear una plantilla para un certificado cliente y lo firmamos con la CA si no ha expirado aún.
  • Borramos la CA y repetimos todo el proceso desde cero, actualizando todo el set de certificados (todos se borrar al borrar la CA que los emitió)
También he visto una cosa interesante para convertir el router en una entidad de firma. El propio router puede atender peticiones de firma de certificados de manera remota publicando un endpoint donde los clientes llaman para mandar solicitudes de firma de certificados. No lo he indagado mucho, pero parece que es esa única opción que permite como tal renovar un certificado (supongo que justo antes de que expire), firmandolo con la misma CA si aún no ha caducado. Cuando tenga un rato, investigo por esa vía. Es la opción SCEP, lo tenéis explicado en la wiki

Saludos!
 
Última edición:
Arriba