MANUAL: Mikrotik, OpenVPN e IKEv2 VPNs

El firewall tiene buena pinta, pero creo que tienes mal el profile name en la APP. Ahí iría lo que sea que hayas metido como identificador de tipo email cuando creaste el certificado cliente. Según mi ejemplo, "clientX@sn.mynetname.net". Mete lo que sea que hayas metido tú en ese campo.

Saludos!
 
El firewall tiene buena pinta, pero creo que tienes mal el profile name en la APP. Ahí iría lo que sea que hayas metido como identificador de tipo email cuando creaste el certificado cliente. Según mi ejemplo, "clientX@sn.mynetname.net". Mete lo que sea que hayas metido tú en ese campo.

Saludos!
He probado a crear de nuevo el perfil y le he puesto como profile name la dirección de correo electrónico que puse en el primer script pero me sigue diciendo lo mismo. Te pongo el script. Como ves prácticamente solamente cambié por la dirección de correo electrónico tipo gmail y luego la frase de exportación. Luego nada más.

# Generar las plantillas para los certificados
# IMPORTANTE: Para Windows, el certificado del servidor tiene que contener el dominio dyndns que usemos para conectarnos al router.
# Si vais a usar el propio de Mikrotik, aseguraos de poner *.sn.mynetname.net como subject-alt-name.
/certificate
add name=xxx-ca-template common-name=VPN-CA subject-alt-name=DNS:mynetname.net\
days-valid=3650 key-size=2048 key-usage=crl-sign,key-cert-sign,digital-signature,key-encipherment,data-encipherment
add name=xxx-server-template common-name=VPN-Server subject-alt-name=DNS:*.sn.mynetname.net\
days-valid=1825 key-size=2048 key-usage=digital-signature,key-encipherment,tls-server
add name=xxx-client-template common-name=VPN-Client-X subject-alt-name=email:MIDIRECCIONDECORREOELECTRONICO@gmail.com\
days-valid=730 key-size=2048 key-usage=tls-client

# Generar los certificados y firmarlos
/certificate
sign xxx-ca-template name=vpn-ca
sign xxx-server-template name=vpn-server ca=vpn-ca
sign xxx-client-template name=vpn-client ca=vpn-ca

# Exportar la CA y el certificado cliente
/certificate
export-certificate vpn-ca file-name=ca
export-certificate vpn-client type=pkcs12 export-passphrase="MICLAVEDEEXPORTACION" file-name=client
 
compi, la dirección de correo es un identificador, y tiene que coincidir con tu dominio. Ahí no tienes que poner tu dirección personal de gmail. sino loquetesalgadelpepino@sn.mynetname.net

Por ejemplo: mipc1@sn.mynetname.net, miportatil@sn.mynetname.net, etc

Saludos!
 
compi, la dirección de correo es un identificador, y tiene que coincidir con tu dominio. Ahí no tienes que poner tu dirección personal de gmail. sino loquetesalgadelpepino@sn.mynetname.net

Por ejemplo: mipc1@sn.mynetname.net, miportatil@sn.mynetname.net, etc

Saludos!
Pensé que como no tenía ningún correo electrónico existente en ese dominio se podría poner cualquier cosa. ¿Entonces pongo loquesea@conminúmerodeserie.sn.mynetname.net (porque quiero suponer que ahí sí que tengo que poner mi número de serie, o no, porque por tus ejemplos me parece que no)?

Si, por ejemplo, el número de serie es el 123456 ¿Sería clienteandroid1@123456.mynetname.net?

Supongo que no habrá una forma "fácil" de sustitutuir el email tipo gmail por uno tipo lo que comentas sin necesidad de rehacer todo el proceso...
 
Última edición:
No, tienes que poner lo que te he dicho. Sin tu número de serie. Simplemente crea un certificado cliente nuevo de esa manera, lo firmas con la misma CA, lo exportas y listo, al móvil con él.

Saludos!
 
¿Se podría hacer así? Mi razonamiento es que el resto de la plantilla ya no tiene que estar porque ya se ha generado el certificado ca y el del server, con lo que me diría que ya está hecho y pararía......

# Plantilla nuevo certificado de cliente
/certificate
add name=xxx-client-template common-name=VPN-Client-X subject-alt-name=ANDROID@sn.mynetname.net\
days-valid=730 key-size=2048 key-usage=tls-client

# Generar los certificados y firmarlos
/certificate
sign xxx-client-template name=vpn-ANDROID ca=vpn-ca

# Exportar la CA y el certificado cliente
/certificate
export-certificate vpn-client type=pkcs12 export-passphrase="mysuperVPN!" file-name=ANDROID
 
Código:
/certificate
add name=android-client-template common-name=VPN-Client-Android subject-alt-name=email:android@sn.mynetname.net \
days-valid=730 key-size=2048 key-usage=tls-client

sign android-client-template name=vpn-client-android ca=vpn-ca

export-certificate vpn-client-android type=pkcs12 export-passphrase="mysuperVPN!" file-name=cliente-android
 
Buenas noches,

He seguido el manual a rajatabla y no consigo instalarlo en Windows 10. Incluso he generado las claves CA y Client dos veces por si la primera no había salido bien, el resultado es este:

vwll1GtEPK.png


Los he instalado en la ventana de "Administrar certificados de equipo"

mmc_Ydg6Lkm6C2.png


mmc_Kbgpy1WZQ8.png


Porque si lo instalo en la ventana de "Administrar certificados de usuario" la respuesta que tengo es esta:

FgT0x3NLE8.png


Cuando explicas "...abrimos el fichero ca.crt y le marcamos como confiable siempre (paso manual). Acto seguido haremos lo mismo para el client.p12, el cual nos solicitará la contraseña con la que lo exportamos, para importarlo." Entiendo que te refieres a modificar la conexión VPN IKEv2 así verdad?

explorer_709gw7oJDv.png

El script que he seguido es este:

Código:
/certificate
add name=diax-ca-template common-name=VPN-CA subject-alt-name=DNS:mynetname.net\
days-valid=3650 key-size=2048 key-usage=crl-sign,key-cert-sign,digital-signature,key-encipherment,data-encipherment
add name=diax-server-template common-name=VPN-Server subject-alt-name=DNS:*.sn.mynetname.net\
days-valid=1825 key-size=2048 key-usage=digital-signature,key-encipherment,tls-server
add name=diax-client-template common-name=VPN-Client-X subject-alt-name=email:clientX@sn.mynetname.net\
days-valid=730 key-size=2048 key-usage=tls-client

# Generar los certificados y firmarlos
/certificate
sign diax-ca-template name=vpn-ca
sign diax-server-template name=vpn-server ca=vpn-ca
sign diax-client-template name=vpn-client ca=vpn-ca

# Exportar la CA y el certificado cliente
/certificate
export-certificate vpn-ca file-name=ca
export-certificate vpn-client type=pkcs12 export-passphrase="MyPasSwoRd" file-name=client

# Proceso
# =======

# Crear el nuevo pool para la VPN
/ip
pool add name=ikev2-pool ranges=192.168.66.10-192.168.66.20

# Damos de alta una nueva configuración para IKEv2
/ip ipsec
mode-config add address-pool=ikev2-pool address-prefix-length=32 name=ike2-config system-dns=yes

# Damos de alta la configuración de negociación entre pares
/ip ipsec
peer add exchange-mode=ike2 name=ike2-peer passive=yes

# Y por último damos el cliente que se va a conectar
# Habrá una entrada por cada cliente cada uno con su certificado individual
/ip ipsec identity
add auth-method=digital-signature certificate=vpn-server comment=PC generate-policy=\
    port-strict match-by=certificate mode-config=ike2-config peer=ike2-peer remote-certificate=\
    vpn-client
add auth-method=digital-signature certificate=vpn-server comment=Android generate-policy=\
    port-strict match-by=certificate mode-config=ike2-config peer=ike2-peer remote-certificate=\
    vpn-client

# Permitir el tráfico de entrada al puerto 4500 y 500 para IPSec
# Esta entrada de firewall ya existirá si teníamos un L2TP/IPSec
/ip firewall filter
add chain=input protocol=udp dst-port=500,4500 comment="Allow IPSec"\
    place-before=[ find where comment~"defconf: drop all not coming from LAN" ]\
    action=accept

# Permitir el acceso a los equipos LAN para los clientes IKEv2 con tráfico encriptado
/ip firewall filter
add action=accept chain=input comment="accept vpn encrypted input traffic"\
    place-before=[ find where comment~"defconf: drop all not coming from LAN" ]\
    ipsec-policy=in,ipsec src-address=192.168.66.0/24

# Enmascarar el tráfico de la VPN. No aplica si hemos reusado un pool que ya lleve una entrada similar
/ip firewall nat
add action=masquerade chain=srcnat comment=masquerade-ovpn src-address=192.168.66.0/24

Y en windows 10 la conexión la he creado así:

DMjlNe4Vnb.png

Nota: el poner clientXX@sn.mynetname.net es solo en esta pantalla que he creado a propósito para capturarla (si no me daba un aviso en amarillo de que ese usuario estaba duplicado, en la que hay creada anterior viene correcto el nombre de usuario: clientX@sn.mynetname.net

Ya no se que mas hacerle ¿algún consejo por favor?

S@lu2.
 
Borra los certificados importados e importa únicamente el certificado cliente, que ya lleva implícita la ca. Descuida, que es cosa del windows, que es así de picajoso.

Saludos!
 
Borra los certificados importados e importa únicamente el certificado cliente, que ya lleva implícita la ca. Descuida, que es cosa del windows, que es así de picajoso.

Saludos!
Nada, se resiste el muy cabrito...

He probado también lo que indican aquí y tampoco:

dJoSfm3AgV.png


Una cuestión, ¿esto está bien? he creado dos "identities" iguales pero con comentarios distintos:

Vn8UixPvc2.png


S@lu2.
 
Ojo que tienes el identity mal! en el campo certificate va referenciado el certificado del servidor, no la CA. Y en remote certificate, el de cliente.

Saludos!
 
Jejeje, perfecto! Me alegro mucho de que ya estés conectado y te funcione. Prueba la conexión VPN y me dices, a ver si le notas algo. Si va todo como debe, eso tiene que volar.

Saludos!
 
Bueno, pues he iniciado todo de nuevo y lo he hecho en un script unificado como el compañero, a ver si tenía más suerte. Ahora parece que le gustan los certificados pero me dice que el servidor es inalcanzable. Incluyo el script ( lo único que donde pone mimovil he puesto el modelo en concreto ) y pantallazos de firewall, certificados, configuración de strongswan y log de strongswan.
 

Adjuntos

  • pantallazofirewall.jpg
    pantallazofirewall.jpg
    388.6 KB · Visitas: 43
  • certificadosaexportaralmóvil.jpg
    certificadosaexportaralmóvil.jpg
    225.5 KB · Visitas: 43
te falta en el firewall el 4500 y el 500, sin eso no vas a llegar.

Saludos!
 
He mirado en el script y el caso es que estaba puesto que los abriera pero..... Los he abierto yo por terminal pero sigue igual...
 

Adjuntos

  • puertosabiertos.jpg
    puertosabiertos.jpg
    410.9 KB · Visitas: 32
Esto va a volverme loco, vuelta a empezar, adaptación nuevamente de los script y nada. ¿Ves algo en el pantallazo que te muestro de la configuración de strongvpn o del santo script que esté mal? No me da ningún error al crear nada mediante el script. :x Todo partiendo de vuelta a la situación de configuración inicial con o2 ( tengo un backup de cuando lo reinstalé )

/certificate
add name=shinzonito-ca-template common-name=SHINZONITO-VPN-CA subject-alt-name=DNS:mynetname.net \
days-valid=3650 key-size=2048 key-usage=crl-sign,key-cert-sign,digital-signature,key-encipherment,data-encipherment
add name=shinzonito-server-template common-name=SHINZONITO-VPN-Server subject-alt-name=DNS:*.sn.mynetname.net \
days-valid=1825 key-size=2048 key-usage=digital-signature,key-encipherment,tls-server
add name=shinzonito-client-template common-name=SHINZONITO-VPN-Client-PC subject-alt-name=email:shinzonito-pc@sn.mynetname.net \
days-valid=730 key-size=2048 key-usage=tls-client
sign shinzonito-ca-template name=vpn-ca-shinzonito
{:delay 5};
sign shinzonito-server-template name=vpn-server-shinzonito ca=vpn-ca-shinzonito
sign shinzonito-client-template name=vpn-client-shinzonito ca=vpn-ca-shinzonito
export-certificate vpn-ca-shinzonito file-name=ca-shinzonito
export-certificate vpn-client-shinzonito type=pkcs12 \
export-passphrase="1234567890" file-name=client-shinzonito
# Crear el nuevo pool para la VPN
/ip
pool add name=ikev2-pool ranges=192.168.66.10-192.168.66.20
# Damos de alta una nueva configuración para IKEv2
/ip ipsec
mode-config add address-pool=ikev2-pool address-prefix-length=32 name=ike2-config system-dns=yes
# Damos de alta la configuración de negociación entre pares
/ip ipsec
peer add exchange-mode=ike2 name=ike2-peer passive=yes
# Y por último damos el cliente que se va a conectar
# Habrá una entrada por cada cliente cada uno con su certificado individual
/ip ipsec identity
add auth-method=digital-signature certificate=vpn-server comment=EquipoX generate-policy=\
port-strict match-by=certificate mode-config=ike2-config peer=ike2-peer remote-certificate=\
vpn-client
# Permitir el tráfico de entrada al puerto 4500 y 500 para IPSec
# Esta entrada de firewall ya existirá si teníamos un L2TP/IPSec
/ip firewall filter
add chain=input protocol=udp dst-port=500,4500 comment="Allow IPSec"\
place-before=[ find where comment~"defconf: drop all not coming from LAN" ]\
action=accept
# Permitir el acceso a los equipos LAN para los clientes IKEv2 con tráfico encriptado
/ip firewall filter
add action=accept chain=input comment="accept vpn encrypted input traffic"\
place-before=[ find where comment~"defconf: drop all not coming from LAN" ]\
ipsec-policy=in,ipsec src-address=192.168.66.0/24
# Enmascarar el tráfico de la VPN. No aplica si hemos reusado un pool que ya lleve una entrada similar
/ip firewall nat
add action=masquerade chain=srcnat comment=masquerade-ovpn src-address=192.168.66.0/24
 

Adjuntos

  • pantallazo app defi.jpg
    pantallazo app defi.jpg
    169.2 KB · Visitas: 41
A simple vista, no veo nada raro, la verdad. Qué ves en los logs del router y de la app cuando intentas conectar?

Saludos!
 
A simple vista, no veo nada raro, la verdad. Qué ves en los logs del router y de la app cuando intentas conectar?

Saludos!
En el log del router básicamente:

20:13:04 system,info,account user SHINZONITO logged in from 192.168.1.3 via telnet
20:14:43 ipsec,info new ike2 SA (R): 80.xx..xx.xxx[500]-95.xxx.xxx.xx[17076] (...)
20:14:43 ipsec,info,account peer authorized: 80.xx.xxx.xx[4500]-95.xxx.xxx.xx[17120] spi:b(...)
20:14:43 ipsec,info acquired 192.168.66.20 address for 95.xx.xxx.xx, SHINZONITO-VPN-Client-PC
20:14:43 ipsec,error got fatal error: AUTHENTICATION_FAILED

Y en el de la app te paso el pantallazo del log de la app. En recuadro, al final, cuando empieza ya el problema.....
 

Adjuntos

  • pantallazo log.jpg
    pantallazo log.jpg
    590.7 KB · Visitas: 40
Ya lo cacé, te pasa lo mismo que le pasó el otro día a @diamuxin, tienes mal definido el identity. Has cambiado los nombres de los ficheros de cliente y servidor, pero sin embargo no los tienes bien referenciados cuando das de alta el identity. Ve a IP -> IPSec, pestaña “identity” y abre la única entrada que tendrás ahí. Al abrirla, verás dos campos en azul, señalando que no encuentra los certificados que tienes referenciados. Abre los desplegables y en “Certificate” seleccionas el nombre del certificado servidor, y en el “Remote Certificate”, el correspondiente certificado cliente.

Venga, que ya casi lo tienes

Saludos!
 
Arriba