IPSec (seguridad IP): un conjunto de protocolos y algoritmos para cifrar datos en redes IPv4 e IPv6. No parece complicado, pero IPSec no establece reglas claras para cifrar el tráfico; en cambio, los desarrolladores implementan un conjunto de herramientas (protocolos y algoritmos), mediante los cuales el administrador crea un canal seguro para los datos.
Quiero tocar IPSec en RouterOS un poco más profundo que un simple CÓMO, con una teoría mínima y ejemplos sobre cómo configurar y depurar IPSec. Esto no es una guía, y sin práctica en un banco de pruebas, no se recomienda comenzar a configurar túneles reales y servidores VPN.
Ventajas y desventajas de IPSec
Fortalezas:
- Funciona a nivel de red del modelo OSI
- Puede encriptar el paquete fuente completamente o desde la capa de transporte y superior
- Hay un mecanismo para superar NAT
- Una amplia gama de algoritmos de cifrado y hash de tráfico para elegir
- IPSec: un conjunto de estándares abiertos y extensibles
- En el caso de Mikrotik, no requiere la compra de tarifas o licencias adicionales
Debilidades:
- Dificultad
- Diferentes herramientas de terminología y configuración para diferentes proveedores.
- El uso de algoritmos de cifrado fuertes requiere una buena potencia informática.
- DPI fácil de detectar
Protocolos en IPSec

A nivel mundial, todos los protocolos que abordará durante la configuración se pueden dividir en dos grupos: protocolos de intercambio de claves y protocolos de protección de datos.
Protocolos de intercambio de claves (IKE)
La tarea principal es autenticar a los participantes en la conexión y acordar los parámetros y claves de cifrado para proteger la información transmitida.
- IKE (Intercambio de claves de Internet): definido en 1998. Muchas características (por ejemplo, bridging NAT) se agregaron más tarde como complementos y es posible que no se implementen con varios proveedores. La base para la negociación clave es ISAKMP.
- IKEv2 (Internet Key Exchange versión 2) - última revisión de 2014. Es un desarrollo del protocolo IKE, en el que se resolvieron algunos problemas, se simplificó el mecanismo de acuerdo clave y las extensiones (NAT-T, Keepalives, Mode Config) se convirtieron en parte del protocolo.
En la práctica, la mayoría de las conexiones IPSec se implementan utilizando IKE debido a equipos obsoletos o la renuencia de los administradores a cambiar algo.
Protocolos de protección de datos (ESP, AH)
La tarea principal es proteger los datos del usuario.
- ESP (Carga de seguridad de encapsulación): cifra y autentica parcialmente los datos transmitidos
- AH (Encabezado de autenticación): autentica todo el paquete (excepto los campos mutables), no cifra los datos, pero le permite asegurarse de que el paquete no se modificó durante la transmisión a través de la red
Procedimiento de instalación de la conexión IPSec

Los participantes de una conexión IPSec generalmente se llaman pares, lo que indica su equivalencia en la conexión establecida. Es posible una configuración cercana al cliente-servidor, pero al construir túneles IPSec permanentes, cualquiera de los pares puede ser un inicializador.
- Uno de los pares inicia una conexión IPSec
- Existe un intercambio de información clave, autenticación de pares, coordinación de parámetros de conexión.
- Según la información clave recibida, se forma un túnel cifrado auxiliar
- Usando un túnel encriptado, los pares determinan los parámetros de encriptación de datos e intercambian información para generar claves
- El resultado de la fase anterior es un conjunto de reglas y claves para la protección de datos (SA)
- Periódicamente, los pares actualizan las claves de cifrado
Uno de los conceptos clave en IPSec es SA (Asociación de seguridad), un conjunto de algoritmos de cifrado para cifrar y cifrar información, así como claves de cifrado, acordadas por pares.
A veces puedes encontrar una división en:
- ISAKMP SA - parámetros y claves relacionadas con el túnel auxiliar
- Data SA (o simplemente SA): parámetros y claves relacionadas con el cifrado de tráfico
Protocolos de acuerdo clave
El protocolo IKE puede funcionar en dos modos: principal (principal) y agresivo (agresivo), el protocolo IKEv2 contiene un modo.
IKE Main

La primera fase consta de seis paquetes:
1-2: Alineación de la configuración de cifrado del túnel secundario y varias opciones de IPSec
3-4: Compartir información para generar una clave secreta
5-6: Autenticación entre pares mediante el canal cifrado auxiliar
La segunda fase consta de tres paquetes:
1-3: Uso de un canal auxiliar encriptado. Coordinación de los parámetros de protección del tráfico, intercambio de información para generar una clave secreta.
IKE agresivo

La primera fase consta de tres paquetes:
1: Enviar una oferta para instalar un canal encriptado auxiliar e información para generar una clave privada
2: Respuesta a la oferta, información para generar la clave secreta, datos para autenticación
3: datos de autenticación
La segunda fase consta de tres paquetes:
1-3: Uso de un canal auxiliar encriptado. Coordinación de los parámetros de protección del tráfico, intercambio de información para generar una clave secreta.
En modo agresivo, el iniciador envía solo un conjunto de parámetros en la oración. El intercambio de información para la autenticación entre pares ocurre antes de la instalación de un túnel auxiliar seguro. El modo agresivo es consistente más rápido, pero menos seguro.
IKEv2

En IKEv2, las fases se denominan: IKE_SA_INIT e IKE_AUTH. Pero si me refiero a Phase1 y Phase2 más adelante en el texto, esto también se aplica a las fases de IKEv2.
Cada fase de IKEv2 consta de dos paquetes:
IKE_SA_INIT: Coordinación de parámetros de cifrado de túnel auxiliar, intercambio de información para generar una clave privada
IKE_AUTH: utilizando el canal auxiliar encriptado. Autenticación de pares, coordinación de parámetros de protección de tráfico, intercambio de información para generar una clave secreta
Base de datos de negociaciones de seguridad (SAD)
El resultado de IKE (e IKEv2) son las Asignaciones de seguridad (SA), que definen la configuración de protección del tráfico y las claves de cifrado. Cada SA es unidireccional y la conexión IPSec contiene un par de SA. Todos los SA se almacenan en la base de datos SAD y el administrador puede acceder a ellos para verlos y restablecerlos.
Encapsulación de datos

IPSec proporciona dos opciones para encapsular datos:
- Modo de transporte: solo la carga útil del paquete está protegida, dejando el encabezado original. Para construir túneles, el modo de transporte generalmente se usa junto con ipip o gre, cuya carga útil ya contiene todo el paquete fuente.
- Modo de túnel: encapsula completamente el paquete original en uno nuevo (similar a gre o ipip). Pero para el túnel ipsec, no se crea una interfaz explícita en el sistema, esto puede ser un problema si se utiliza un enrutamiento estático dinámico o complejo.
Base de datos de políticas de seguridad (SPD)
Una base de datos de reglas que determinan qué tráfico se debe cifrar, el protocolo de protección de datos, el tipo de encapsulación y una serie de otros parámetros.
La posición de verificación de SPD se puede mostrar en el diagrama de flujo de paquetes.

Puente NAT
IPSec utiliza protocolos de capa de red para transferir datos que NAT no puede manejar. Para resolver el problema, se utiliza el protocolo NAT-T (una extensión en IKE y parte de IKEv2). La esencia de NAT-T está en la encapsulación adicional de paquetes IPSec en paquetes UDP que procesa NAT.
IPSec en Mikrotik
IPSec está disponible de forma gratuita en cualquier dispositivo que ejecute RouterOS con el paquete de seguridad instalado.
Cifrado de hardware
Para descargar la CPU, se agrega aceleración de hardware de cifrado a algunos modelos de enrutadores MikroTik; se puede encontrar una lista completa en la wiki .
La mayoría de las opciones de presupuesto: RB750Gr3 , RB3011 , HAP AC ^ 2 .
Por mi cuenta, verifiqué la velocidad de IPSec entre dos RB1100AHx2 y entre dos RB750Gr3.
Para lograr los máximos resultados en RB1100AHx2 debe:
- Use el puerto 11 conectado directamente a la CPU y configure un núcleo de CPU para manejar el tráfico de 11 puertos
- Use solo colas de hardware en las interfaces, deshabilite RPS
- Habilite Layer3 FastPath (aproximadamente 800 mb / s) o excluya el tráfico IPSec del conntrack (aproximadamente 700 mb / s)
Sin las manipulaciones descritas en el puerto más lento (ether13), es posible obtener ~ 170Mb / seg, en los ~ 400Mb / seg habituales.
En RB750Gr3 sin optimizaciones de aproximadamente 200Mb / seg.
Los enrutadores de un solo núcleo de Qualcomm muestran un resultado de 10-40 mb / s según el modelo, las optimizaciones y la carga de trabajo de otros procesos.
Le recomiendo que se familiarice con la presentación del empleado de mikrotik, se refirieron a temas de optimización de configuraciones para reducir la carga en la CPU y aumentar la velocidad, que no agregué al texto.
Diferencias 6.42.X y 6.43.X
Dependiendo de la versión de RouterOS que esté utilizando, el menú de configuración de IPSec variará.



Ya hay nuevos cambios en la versión de prueba, así que lea las Notas de la versión antes de actualizar.

Configuración de IPsec

El menú [IP] -> [IPSec] no da tanto miedo como parece a primera vista. El diagrama muestra que los principales elementos de configuración son: Pares y perfiles.
Las pestañas Remote Peers y SA instaladas son informativas.
Pares y perfiles de pares
Configuración de pares IPSec para establecer una conexión IKE y crear un túnel seguro auxiliar.

Configurar pares remotos IPSec

Notas- A partir de 6.43, RouterOS jura cuando usa el PSK sin autenticación adicional. Si no desea configurar adicionalmente claves, certificados o xAuth, puede cambiar a IKEv2 o ignorar la advertencia.
- Como pares, puede especificar IP o subredes específicas (relevantes para VPN de cliente-servidor)
- Si hay reglas en conflicto, se usará una regla con una subred más precisa para conectarse al igual (similar a las rutas)
- La autenticación de claves XAuth y rsa no funciona en IKEv2
- Para IKEv2, Mikrotik hizo su implementación de xAuth incompatible con otras plataformas
- El modo pasivo generalmente se usa para crear una VPN cliente-servidor (configuración de modo L2TP / IPsec o IKEv2), pero puede ser útil cuando se conecta una gran cantidad de túneles de sitio a sitio a un solo punto, para reducir el tráfico espurio.
- Si planea usar xAuth, entonces el "servidor" debe ser pasivo. Los usuarios para el servidor se crean en [IPSec] -> [Usuarios]
- Cuando use la política Generate, seleccione el modo de puerto estricto
Configuración de perfiles (Propuestas) para la armonización Fase 1


Notas- Las opciones adicionales para IKE se convierten en parte de IKEv2, la configuración se ignora
- Correlación de grupos DH con sus números (los números de grupo son utilizados por otros proveedores)
- Al enviar propuestas, el sistema ordena el algoritmo de pares + grupo dh de más persistente a menos persistente

Políticas y propuestas de políticas
Los políticos verifican el cumplimiento de las condiciones de los paquetes aprobados y aplican las acciones especificadas. Si vuelve al flujo de paquetes, los bloques con la Política IPSec son la reconciliación con las políticas. Las acciones especifican: protocolo de seguridad IPSec (ESP o AH), propuestas para negociación de SA, modo de encapsulación.

El paquete pasa la política uno por uno hasta que coincida con las condiciones de uno de ellos.
Establecimiento de políticas

Anotaciones- Por lo general, no se requiere Src específico. y Dst. Puerto, pero en general, la capacidad de cifrar el tráfico de una aplicación individual es interesante
- No todos los protocolos ip se presentan en la lista de Protocolos (por ejemplo, no hay gre), puede especificar el número del protocolo requerido manualmente.
- ¡Las plantillas no son políticas! Se usan si la política de generación se establece en la configuración de igual.
- Qué hacer si no se encuentran SA específicas para una política. Anteriormente, había un problema con L2TP / IPSec cuando varios clientes no podían conectarse debido a la misma NAT (cuando se usa IKE), este error se resuelve (suponiendo que estos clientes no son ventanas) si establece level = unique. De lo contrario, cambie a IKEv2
- Al configurar políticas, use [Modo seguro], un movimiento incómodo y corre el riesgo de perder el acceso al enrutador con Level3
Configurar propuestas para aprobación de SA


Grupos
Se utiliza para asociar plantillas de políticas y pares.

En una de las versiones anteriores de RouterOS, había un error con el grupo predeterminado que no funcionaba.
Configuración de modo
Enviar y recibir parámetros IP sin utilizar protocolos adicionales. Le permite crear una VPN de cliente a servidor autónoma solo IPSec.


Claves y usuarios
Se usa para la autenticación avanzada por pares.
Llaves
Claves RSA: generación, importación, exportación. No es compatible con IKEv2.

Los usuarios
Base de datos de usuarios de XAuth para el "servidor". El cliente especifica la configuración de xAuth en la configuración de igual. Es posible reenviar la autenticación xAuth a un servidor RADIUS.

Compañeros remotos
Lista de todos los pares que instalan e instalan un túnel auxiliar (Fase 1). Puede eliminar pares para actualizar las claves del túnel auxiliar.


SA instaladas
Base de datos SAD o una lista de todas las SA negociadas. Puede ver los algoritmos y claves de protección de datos utilizados.


El indicador AEAD de hardware indica el uso de cifrado de hardware.

Un administrador puede restablecer SA, pero solo todos del mismo tipo (esp o ah) al mismo tiempo.
IPSec y firewall
En Firewall, puede verificar si el tráfico es una política IPSec entrante o saliente o no. Una aplicación obvia es L2TP / IPSec, puede prohibir la instalación de conexiones L2TP si el tráfico no se ha cifrado previamente.

Protocolos y puertos utilizados en IPSec
- IKE - UDP: 500
- IKEv2 - UDP: 4500
- NAT-T - UDP: 4500
- ESP - ipsec-esp (50)
- AH - ipsec-ah (51)
IPSec y Endpoinds
Y ahora sobre el dolor ...
El wiki mikrotik tiene tablas con algoritmos de cifrado y hashing para: Windows , iOS , OS-X .
No encontré información sobre el cliente vpn de Android incorporado, pero en general funciona con propuestas de Windows. No hay soporte IKEv2 en Android, debe usar StrongSwan .
Ejemplos de configuración
Esquema y configuración básica para ejemplos con túneles de sitio a sitio:

#Mikrotik1 /ip address add address=10.10.10.10/24 interface=ether1 network=10.10.10.0 add address=192.168.100.1/24 interface=ether2 network=192.168.100.0 /ip firewall nat add action=masquerade chain=srcnat out-interface=ether1 /ip route add distance=1 gateway=10.10.10.1 dst-address=0.0.0.0/0 #Mikrotik2 /ip address add address=10.20.20.20/24 interface=ether1 network=10.20.20.0 add address=192.168.200.1/24 interface=ether2 network=192.168.200.0 /ip firewall nat add action=masquerade chain=srcnat out-interface=ether1 /ip route add distance=1 gateway=10.20.20.1 dst-address=0.0.0.0/0
IPSec en modo túnel

Configuración paso a paso:
- Crear propuestas para IKE Phase1
- Crea una fiesta. Indicamos la dirección, propuestas, modo de intercambio, clave PSK. Elegí IKEv2, puedes usar main / agresivo como lo desees
- Crear propuestas para SA
- Especifique las subredes entre las que creamos el túnel.
- Especifique las direcciones SA, el modo de túnel y las propuestas para el cifrado del tráfico.
- Edición de la regla NAT
Mikrotik1
Opción de consola:
#1 /ip ipsec peer profile add dh-group=modp2048 enc-algorithm=aes-128 hash-algorithm=sha256 name=ipsec-tunnel-ike nat-traversal=no #2 /ip ipsec peer add address=10.20.20.20/32 exchange-mode=ike2 profile=ipsec-tunnel-ike secret=test-ipsec #3 /ip ipsec proposal add auth-algorithms=sha256 enc-algorithms=aes-256-cbc name=ipsec-tunnel-sa #4-5 /ip ipsec policy add dst-address=192.168.200.0/24 proposal=ipsec-tunnel-sa sa-dst-address=10.20.20.20 sa-src-address=10.10.10.10 src-address=192.168.100.0/24 tunnel=yes #6 /ip firewall nat set 0 ipsec-policy=out,none
Mikrotik2
Opción de consola:
#1 /ip ipsec peer profile add dh-group=modp2048 enc-algorithm=aes-128 hash-algorithm=sha256 name=ipsec-tunnel-ike nat-traversal=no #2 /ip ipsec peer add address=10.10.10.10/32 exchange-mode=ike2 profile=ipsec-tunnel-ike secret=test-ipsec #3 /ip ipsec proposal add auth-algorithms=sha256 enc-algorithms=aes-256-cbc name=tets-ipsec-sa #4-5 /ip ipsec policy add dst-address=192.168.100.0/24 proposal=tets-ipsec-sa sa-dst-address=10.10.10.10 sa-src-address=10.20.20.20 src-address=192.168.200.0/24 tunnel=yes #6 /ip firewall nat set 0 ipsec-policy=out,none
¿Y aquí NAT?Para trabajar en modo túnel, necesita una ruta falsa a la subred remota, o una ruta predeterminada, de lo contrario los paquetes no irán más allá de la decisión de Enrutamiento. Con la primera opción, generalmente no hay problemas, pero con la ruta predeterminada y el NAT de origen (el primero y el segundo están presentes en la gran mayoría de los enrutadores domésticos y de oficina) habrá problemas.
Recuperar flujo de paquetes. Los paquetes pasan por Source NAT antes que las políticas de IPSec, la regla con enmascarado no sabe nada de que el tráfico está destinado a ser enviado al túnel "efímero" y transmitirá los encabezados de paquetes para ser enviados a IPSec cuando el paquete con el encabezado modificado se verifica en la dirección de origen de las Políticas en el encabezado no se ajustará a la regla y el paquete volará a la ruta predeterminada, que, habiendo visto la dirección de destino desde la red privada, lo más probable es que lo descarte.
Hay varias soluciones al problema:
- Usando ruta falsa
- Usar una regla de aceptación opcional antes de SourceNAT
- Sujete src-nat solo a aquellos paquetes para los que no hay políticas IPSec (en el ejemplo)
- Excluir el tráfico del seguimiento de la conexión con RAW
Verificar la conexión establecida

- Vemos a un vecino en Compañeros remotos
- Vemos el SA instalado (los contadores de tráfico no cambiarán hasta que lo inicie)
- En política, estado establecido y bandera (A) ctive
IPIP / IPSec

Túnel IPIP preestablecido:
#Mikrotik1 # ipip /interface ipip add allow-fast-path=no clamp-tcp-mss=no name=ipip-vpn remote-address=10.20.20.20 # ip ipip /ip address add address=10.30.30.1/30 interface=ipip-vpn # /ip route add distance=1 dst-address=192.168.200.0/24 gateway=10.30.30.2 #Mikrotik2 # , /interface ipip add allow-fast-path=no clamp-tcp-mss=no name=ipip-vpn remote-address=10.10.10.10 /ip address add address=10.30.30.2/30 interface=ipip-vpn /ip route add distance=1 dst-address=192.168.100.0/24 gateway=10.30.30.1
Configuración paso a paso de IPSec:
- Crear propuestas para IKE Phase1
- Crea una fiesta. Indique la dirección, propuestas, modo de intercambio, clave PSK
- Crear propuestas para SA
- Especifique las subredes entre las que creamos el túnel.
- Especificamos las direcciones de SA, el tipo de tráfico que encriptaremos y las propuestas.
Mikrotik1
Opción de consola:
#1 /ip ipsec peer profile add dh-group=modp2048 enc-algorithm=aes-128 hash-algorithm=sha256 name=ipsec-tunnel-ike nat-traversal=no #2 /ip ipsec peer add address=10.20.20.20/32 exchange-mode=ike2 profile=ipsec-tunnel-ike secret=test-ipsec #3 /ip ipsec proposal add auth-algorithms=sha256 enc-algorithms=aes-256-cbc name=ipsec-tunnel-sa #4-5 /ip ipsec policy add dst-address=10.20.20.20/32 proposal=ipsec-tunnel-sa protocol=ipencap src-address=10.10.10.10/32 sa-dst-address=10.20.20.20 sa-src-address=10.10.10.10
Mikrotik2
#1 /ip ipsec peer profile add dh-group=modp2048 enc-algorithm=aes-128 hash-algorithm=sha256 name=ipsec-tunnel-ike nat-traversal=no #2 /ip ipsec peer add address=10.10.10.10/32 exchange-mode=ike2 profile=ipsec-tunnel-ike secret=test-ipsec #3 /ip ipsec proposal add auth-algorithms=sha256 enc-algorithms=aes-256-cbc name=tets-ipsec-sa #4-5 /ip ipsec policy add dst-address=10.10.10.10/32 proposal=tets-ipsec-sa protocol=ipencap src-address=10.20.20.20/32 sa-dst-address=10.10.10.10 sa-src-address=10.20.20.20
Por falta de atención, la diferencia real en la configuración del túnel y el modo de transporte en las políticas IPSec:

La verificación de conexión es similar al modo túnel.
L2TP / IPSec
Los ejemplos anteriores son adecuados para crear VPN permanentes entre dos pares, con direcciones IP externas estáticas.
Si la dirección de uno de los pares es dinámica (y generalmente se encuentra detrás de NAT), debe usar otra VPN de cliente a servidor.

Preconfiguración L2TP:
# /ip pool add name=pool-l2tp ranges=192.168.77.10-192.168.77.20 # /ppp profile add change-tcp-mss=yes local-address=192.168.77.1 name=l2tp-ipsec only-one=yes remote-address=pool-l2tp use-compression=no use-encryption=no use-mpls=no use-upnp=no # /ppp secret add name=user1 password=test1 profile=l2tp-ipsec service=l2tp add name=user2 password=test2 profile=l2tp-ipsec service=l2tp add name=user3 password=test3 profile=l2tp-ipsec service=l2tp # L2TP ( ipsec) /interface l2tp-server server set authentication=chap,mschap2 default-profile=l2tp-ipsec enabled=yes
¿Por qué ignoro el autoajuste de IPsec?En la configuración de ipip, gre, eoip, l2tp hay una configuración automática de conexión ipsec, de hecho, el sistema crea reglas dinámicas para pares y políticas para usted, pero en primer lugar no buscamos formas fáciles, y en segundo lugar, al actualizar de 6.42 a 6.43, crea automáticamente túneles rompió y no el hecho de que esto no volverá a suceder.
Configuración paso a paso de IPSec:
- Crear un nuevo grupo (puede usar el predeterminado)
- Crear propuestas para IKE Phase1
- Creamos una fiesta, o más bien una subred. Jura por la clave PSK, pero si estamos tratando con Windows como cliente, entonces tenemos una opción: Certificados o PSK.
- Establezca passive = yes y send-init-contact = no, en generate-policy = port-strictly (acepte el puerto del cliente)
- Crear propuestas para SA
- Crear una plantilla para generar políticas
- Especificar propuesta para SA
Configuración de Mikrotik
En la captura de pantalla, el error es especificar dst. puerto y src. el puerto no es necesario
Opción de consola:
#1 /ip ipsec policy group add name=l2tp-ipsec #2 /ip ipsec peer profile add dh-group=modp1024 enc-algorithm=aes-256 hash-algorithm=sha256 name=l2tp-ipsec-ike #3-4 /ip ipsec peer add address=0.0.0.0/0 generate-policy=port-strict passive=yes policy-template-group=l2tp-ipsec profile=l2tp-ipsec-ike secret=secret-ipsec-pass send-initial-contact=no #5 /ip ipsec proposal add auth-algorithms=sha256,sha1 enc-algorithms=aes-256-cbc,aes-128-cbc name=l2tp-ipsec-sa pfs-group=none #6-7 /ip ipsec policy add dst-address=0.0.0.0/0 group=l2tp-ipsec proposal=l2tp-ipsec-sa protocol=udp src-address=0.0.0.0/0 template=yes
Configuración de firewall para crear conexiones L2TP solo después de IPSec
/ip firewall filter # IKE, NAT-T ipsec-esp add chain=input protocol=17 dst-port=500,4500 action=accept add chain=input protocol=50 action=accept # L2TP, ipsec add chain=input protocol=17 dst-port=1701 ipsec-policy=in,ipsec action=accept add chain=input protocol=17 dst-port=1701 action-drop
VPN IKEv2
La opción L2TP es popular, pero gracias a la configuración del modo, puede configurar el servidor VPN utilizando solo IPSec. Este es un tipo prometedor de VPN, pero hasta ahora rara vez se usa, así que además de configurar el lado del servidor, daré un ejemplo de cómo configurar el cliente strongSwan en Android.

Por supuesto, no todo es tan color de rosa. La mayoría de los sistemas operativos de "usuarios" (en particular Windows y Android) aceptan trabajar con una VPN de este tipo solo si están autenticados por certificados o EAP.
Los certificados son mi punto débil, si alguien sabe cómo generar correctamente un certificado autofirmado que Windows importe y usará en la conexión, escriba los comentarios.
Generación preliminar de certificados:
#Root CA /certificate add name=ca common-name="IKEv2 CA" days-valid=6928 /certificate sign ca ca-crl-host=<IP > # vpn /certificate add common-name=<IP > subject-alt-name=IP:<IP > key-usage=tls-server name=vpn days-valid=6928 # /certificate sign vpn ca=ca # # , # Revoke /certificate add common-name=client key-usage=tls-client name=client days-valid=6928 # /certificate sign client ca=ca
Configuración IKEv2 VPN paso a paso:
- Creamos un grupo de direcciones para distribuir a los clientes.
- Cree un perfil de configuración de modo para distribuir parámetros IP a clientes
- Crear grupos para vincular pares y plantillas de políticas
- Crear propuestas para IKE Phase1
- Cree un perfil para conectar pares. Autenticación de certificado, protocolo IKEv2, modo pasivo
- Especifique el perfil de configuración del modo, un grupo de 3 pasos y habilite la generación de políticas
- Crear propuestas para SA
- Crear una plantilla para generar políticas
- Especificar propuestas para SA
Configurar Mikrotik
#1 /ip pool add name=pool-ike ranges=192.168.77.10-192.168.77.20 #2 /ip ipsec mode-config add address-pool=pool-ike address-prefix-length=32 name=ikev2-vpn static-dns=77.88.8.8 system-dns=no #3 /ip ipsec policy group add name=ikev2-vpn #4 /ip ipsec peer profile add enc-algorithm=aes-256,aes-128 hash-algorithm=sha256 name=ikev2-vpn #5-6 /ip ipsec peer add address=0.0.0.0/0 auth-method=rsa-signature certificate=vpn exchange-mode=ike2 generate-policy=port-strict mode-config=ikev2-vpn passive=yes policy-template-group=ikev2-vpn profile=ikev2-vpn send-initial-contact=no #7 /ip ipsec proposal add auth-algorithms=sha256,sha1 enc-algorithms=aes-256-cbc,aes-128-cbc name=ikev2-vpn #8-9 /ip ipsec policy add dst-address=0.0.0.0/0 group=ikev2-vpn proposal=ikev2-vpn src-address= 0.0.0.0/0 template=yes
Si la conexión es exitosa, verá: política dinámica, escritura en pares remotos y un par de SA.



Las licencias de demostración de RouterOS x86 no tienen restricciones en la cantidad de túneles IPSec, incluida la VPN IKEv2. Puede implementar la demostración RouterOS x86 (no confunda con RouterOS CHR gratis, todo es triste) en VPS y obtenga un servidor VPN personal con un mínimo esfuerzo administrativo, sin comprar una licencia para RouterOS o RouterOS CHR.
Algunas palabras sobre el análisis de registro IPSec
Los registros en Mikrotik son una historia separada, a veces son lo suficientemente detallados como para analizar problemas, pero la falta de características banales: limpiar, copiar, encontrar te obliga a instalar un servidor syslog separado.
En cuanto a IPSec, aquí hay una opción de análisis de registro rápido (dejamos solo lo necesario en una pestaña separada):

/system logging action add memory-lines=100000 name=ipsec target=memory /system logging add action=ipsec topics=ipsec,error add action=ipsec topics=ipsec,debug,!packet add action=ipsec topics=ipsec,info
Y un par de ejemplos de problemas típicos de configuración de IPSec:
Problema de coherencia de propuestas en la fase 1
- Lee el mensaje de error. El problema es al conciliar propuestas en la primera fase.
- Miramos arriba, el enrutador en sí sugiere que envió una fiesta, y lo que está configurado localmente
Emitir problema de conciliación IKE_SA_INITEn los registros verá algo como lo siguiente:

Analizando el tráfico
En la solicitud, puede ver las propuestas del banquete:

En la respuesta vemos que no se encontraron propuestas adecuadas:

Problema de conciliación de propuestas para SA
El enrutador pregunta sobre el error de propuestas en la fase 2 y muestra qué está configurado localmente y qué es remoto.
Propuesta de problema de conciliación IKE_AUTH
Vemos que hubo una conexión y autenticación de pares, pero además un error de propuestas. No verá ningún detalle en la depuración, ni en Wirehark (el tráfico IKE_AUTH está encriptado).
Error de autenticación de PSKPara IKE:

Para IKEv2:

Modo IKE incorrecto
Vemos que la Fase 1 se rompe en el tiempo de espera, aunque los paquetes van entre pares. Pero el tamaño del paquete entrante es mucho mayor, si analizamos a través de wireshark, veremos que el par remoto usa el modo agresivo.

Vemos que los paquetes se envían de nosotros a UDP: 500, y llegan a UDP: 4500 y son bastante grandes. Aquí el par remoto tiene el modo IKEv2.
Finalmente, lea la sección de solución de problemas de la wiki . Y todo el material sobre IPSec es deseable para conocer, describí solo el conjunto básico de herramientas y configuraciones.