Présentation d'IPSec chez Mikrotik

IPSec (sécurité IP) - un ensemble de protocoles et d'algorithmes pour chiffrer les données dans les réseaux IPv4 et IPv6. Cela ne semble pas compliqué, mais IPSec n'établit pas de règles claires pour le chiffrement du trafic; à la place, les développeurs implémentent un ensemble d'outils (protocoles et algorithmes), à l'aide desquels l'administrateur crée un canal sécurisé pour les données.


Je veux aborder IPSec dans RouterOS un peu plus profondément qu'un simple HOWTO, avec une théorie minimale et des exemples sur la façon de configurer et de déboguer IPSec. Ce n'est pas un guide, et sans pratique sur un banc de test, il n'est pas recommandé de commencer à configurer de vrais tunnels et serveurs VPN.


Avantages et inconvénients d'IPSec


Forces:


  • Fonctionne au niveau du réseau du modèle OSI
  • Il peut crypter le paquet source entièrement ou à partir de la couche de transport et plus
  • Il existe un mécanisme pour surmonter NAT
  • Une large gamme d'algorithmes de chiffrement et de hachage du trafic au choix
  • IPSec - Un ensemble de normes ouvertes et extensibles
  • Dans le cas de Mikrotik, il ne nécessite pas l'achat de frais supplémentaires ou de licences

Faiblesses:


  • Difficulté
  • Différents outils de terminologie et de configuration pour différents fournisseurs
  • L'utilisation d'algorithmes de chiffrement puissants nécessite une bonne puissance de calcul.
  • DPI facile à détecter

Protocoles dans IPSec



Globalement, tous les protocoles que vous allez traiter lors de la configuration peuvent être divisés en deux groupes: les protocoles d'échange de clés et les protocoles de protection des données.


Protocoles d'échange de clés (IKE)
La tâche principale consiste à authentifier les participants à la connexion et à convenir de paramètres de chiffrement et de clés pour protéger les informations transmises.


  • IKE (Internet Key Exchange) - défini en 1998. De nombreuses fonctionnalités (par exemple, le pontage NAT) ont été ajoutées ultérieurement en tant que modules complémentaires et peuvent ne pas être implémentées avec différents fournisseurs. La base de la négociation clé est ISAKMP.
  • IKEv2 (Internet Key Exchange version 2) - dernière révision de 2014. Il s'agit d'un développement du protocole IKE, dans lequel certains problèmes ont été résolus, le mécanisme d'accord clé a été simplifié et des extensions (NAT-T, Keepalives, Mode Config) sont devenues une partie du protocole.

Dans la pratique, la plupart des connexions IPSec sont implémentées à l'aide d'IKE en raison d'un équipement obsolète ou de la réticence des administrateurs à changer quelque chose.


Protocoles de protection des données (ESP, AH)
La tâche principale consiste à protéger les données des utilisateurs.


  • ESP (Encapsulating Security Payload) - crypte et authentifie partiellement les données transmises
  • AH (Authentication Header) - authentifie le paquet entier (sauf pour les champs modifiables), ne crypte pas les données, mais vous permet de vous assurer que le paquet n'a pas été modifié pendant la transmission sur le réseau

Procédure d'installation de la connexion IPSec



Les participants d'une connexion IPSec sont généralement appelés pairs, ce qui indique leur équivalence dans la connexion établie. Une configuration proche du client-serveur est possible, mais lors de la construction de tunnels IPSec permanents, n'importe lequel des pairs peut être un initialiseur.


  1. L'un des pairs lance une connexion IPSec
  2. Il y a un échange d'informations clés, l'authentification des pairs, la coordination des paramètres de connexion
  3. Sur la base des informations de clé reçues, un tunnel crypté auxiliaire est formé
  4. À l'aide d'un tunnel crypté, les pairs déterminent les paramètres du cryptage des données et échangent des informations pour générer des clés
  5. Le résultat de la phase précédente est un ensemble de règles et de clés pour la protection des données (SA)
  6. Les pairs mettent régulièrement à jour les clés de chiffrement

L'un des concepts clés d'IPSec est SA (Security Association) - un ensemble d'algorithmes de chiffrement pour le chiffrement et le hachage des informations, ainsi que des clés de chiffrement, convenues par les pairs.


Parfois, vous pouvez trouver une division en:


  • ISAKMP SA - paramètres et clés liés au tunnel auxiliaire
  • Data SA (ou simplement SA) - paramètres et clés liés au chiffrement du trafic

Protocoles d'accord clés


Le protocole IKE peut fonctionner en deux modes: principal (principal) et agressif (agressif), le protocole IKEv2 contient un mode.


IKE Principal



La première phase comprend six packages:
1-2: Alignement des paramètres de chiffrement du tunnel secondaire et des différentes options IPSec
3-4: Partager des informations pour générer une clé secrète
5-6: Authentification par les pairs utilisant un canal crypté auxiliaire


La deuxième phase comprend trois packages:
1-3: Utilisation d'un canal auxiliaire crypté. Coordination des paramètres de protection du trafic, échange d'informations pour générer une clé secrète


IKE agressif



La première phase comprend trois packages:
1: Soumission d'une offre d'installation d'un canal crypté auxiliaire et d'informations pour générer une clé privée
2: Réponse à l'offre, informations pour générer la clé secrète, données pour l'authentification
3: Données d'authentification


La deuxième phase comprend trois packages:
1-3: Utilisation d'un canal auxiliaire crypté. Coordination des paramètres de protection du trafic, échange d'informations pour générer une clé secrète


En mode agressif, l'initiateur envoie un seul ensemble de paramètres dans la phrase. L'échange d'informations pour l'authentification par les pairs a lieu avant l'installation d'un tunnel auxiliaire sécurisé. Le mode agressif est cohérent plus rapidement, mais moins sécurisé.


IKEv2



Dans IKEv2, les phases sont nommées: IKE_SA_INIT et IKE_AUTH. Mais si je parle de Phase1 et Phase2 plus loin dans le texte, cela s'applique également aux phases d'IKEv2.


Chaque phase d'IKEv2 se compose de deux packages:
IKE_SA_INIT: Coordination des paramètres de chiffrement du tunnel auxiliaire, échange d'informations pour la génération d'une clé privée


IKE_AUTH: utilisation du canal auxiliaire chiffré. Authentification des pairs, coordination des paramètres de protection du trafic, échange d'informations pour générer une clé secrète


Base de données des associations de sécurité (SAD)


Le résultat d'IKE (et IKEv2) sont des associations de sécurité (SA), qui définissent les paramètres de protection du trafic et les clés de chiffrement. Chaque SA est unidirectionnelle et la connexion IPSec contient une paire de SA. Toutes les SA sont stockées dans la base de données SAD et sont accessibles à l'administrateur pour visualisation et réinitialisation.


Encapsulation de données



IPSec propose deux options pour l'encapsulation des données:


  • Mode de transport - seule la charge utile du paquet est protégée, laissant l'en-tête d'origine. Pour construire des tunnels, le mode de transport est généralement utilisé en conjonction avec ipip ou gre, dont la charge utile contient déjà l'intégralité du paquet source.
  • Mode tunnel - encapsule entièrement le package d'origine dans un nouveau (similaire à gre ou ipip). Mais pour tunnel ipsec, une interface explicite n'est pas créée dans le système, cela peut être un problème si un routage statique dynamique ou complexe est utilisé.

Base de données des politiques de sécurité (SPD)


Une base de données de règles qui déterminent le trafic à chiffrer, le protocole de protection des données, le type d'encapsulation et un certain nombre d'autres paramètres.
La position de vérification SPD peut être affichée sur le diagramme de flux de paquets.



Pontage NAT


IPSec utilise des protocoles de couche réseau pour transférer des données que NAT ne peut pas gérer. Pour résoudre le problème, le protocole NAT-T est utilisé (une extension dans IKE et une partie de IKEv2). L'essence de NAT-T réside dans l'encapsulation supplémentaire des paquets IPSec dans les paquets UDP que NAT traite.


IPSec chez Mikrotik


IPSec est disponible gratuitement sur tout appareil exécutant RouterOS avec le package de sécurité installé.


Cryptage matériel


Pour décharger le CPU, l'accélération matérielle du chiffrement est ajoutée à certains modèles de routeurs MikroTik; une liste complète peut être trouvée sur le wiki .
Les options les plus économiques: RB750Gr3 , RB3011 , HAP AC ^ 2 .


J'ai vérifié par moi-même la vitesse IPSec entre deux RB1100AHx2 et entre deux RB750Gr3.


Pour obtenir des résultats maximaux sur RB1100AHx2, vous devez:


  • Utilisez le port 11 directement connecté au processeur et configurez un cœur de processeur pour gérer le trafic à 11 ports
  • Utiliser uniquement des files d'attente matérielles sur les interfaces, désactiver RPS
  • Activez Layer3 FastPath (environ 800 Mo / s) ou excluez le trafic IPSec du conntrack (environ 700 Mo / s)
    Sans les manipulations décrites sur le port le plus lent (ether13), il est possible d'obtenir ~ 170 Mo / s, sur les ~ 400 Mo / s habituels.

Sur RB750Gr3 sans optimisation, environ 200 Mo / s.


Les routeurs monocœur Qualcomm affichent un résultat de 10 à 40 Mo / s selon le modèle, les optimisations et la charge de travail des autres processus.


Je vous recommande de vous familiariser avec la présentation d'un employé de mikrotik, ils ont abordé des sujets d'optimisation des paramètres pour réduire la charge sur le CPU et augmenter la vitesse, ce que je n'ai pas ajouté au texte.


Différences 6.42.X et 6.43.X


Selon la version de RouterOS que vous utilisez, le menu de configuration IPSec variera.





Il y a déjà de nouvelles modifications dans la version de test, alors lisez les notes de publication avant la mise à niveau.



Configuration IPsec



Le menu [IP] -> [IPSec] n'est pas aussi effrayant qu'il n'y paraît à première vue. Le diagramme montre que les principaux éléments de configuration sont les suivants: homologues et profils.
Les onglets Homologues distants et SA installés sont informatifs.


Peers et profils de pairs


Configuration homologue IPSec pour établir une connexion IKE et créer un tunnel sécurisé auxiliaire.


image


Configurer les homologues distants IPSec



Remarques
  • À partir de la version 6.43, RouterOS jure lors de l'utilisation du PSK sans authentification supplémentaire. Si vous ne souhaitez pas configurer en outre des clés, des certificats ou xAuth, vous pouvez basculer vers IKEv2 ou ignorer l'avertissement.
  • En tant que pairs, vous pouvez spécifier des IP ou des sous-réseaux spécifiques (pertinents pour le VPN client-serveur)
  • S'il y a des règles en conflit, une règle avec un sous-réseau plus précis sera utilisée pour se connecter à l'homologue (similaire aux routes)
  • L'authentification par clé XAuth et rsa ne fonctionne pas dans IKEv2
  • Pour IKEv2, Mikrotik a rendu leur implémentation de xAuth incompatible avec d'autres plateformes
  • Le mode passif est généralement utilisé pour créer un VPN client-serveur (configuration en mode L2TP / IPsec ou IKEv2), mais il peut être utile lors de la connexion d'un grand nombre de tunnels de site à site à un seul point, pour réduire le trafic parasite.
  • Si vous prévoyez d'utiliser xAuth, le "serveur" doit être passif. Les utilisateurs du serveur sont créés dans [IPSec] -> [Utilisateurs]
  • Lors de l'utilisation de la stratégie Générer, sélectionnez le mode strict de port

Mise en place de profils (propositions) pour l'harmonisation Phase 1


image



Remarques
  • Des options supplémentaires pour IKE font partie de IKEv2, les paramètres sont ignorés
  • Corrélation des groupes DH avec leurs numéros (les numéros de groupe sont utilisés par d'autres fournisseurs)
  • Lors de l'envoi de propositions, le système trie l'algorithme des paires + le groupe dh de plus persistant à moins persistant

Politiques et propositions de politiques


Les politiciens vérifient la conformité des paquets qui passent avec les conditions et appliquent les actions spécifiées. Si vous revenez au flux de paquets, les blocs avec la stratégie IPSec sont la réconciliation avec les stratégies. Les actions spécifient: protocole de sécurité IPSec (ESP ou AH), propositions de négociation SA, mode d'encapsulation.
image


Le package passe la politique une par une jusqu'à ce qu'elle corresponde aux conditions de l'une d'entre elles.


Définition de la politique


Annotations
  • Habituellement, aucun Src spécifique n'est requis. et Dst. Port, mais en général, la possibilité de crypter le trafic d'une application individuelle est intéressante
  • Tous les protocoles IP ne sont pas présentés dans la liste des protocoles (par exemple, il n'y a pas de gre), vous pouvez spécifier manuellement le numéro du protocole requis.
  • Les modèles ne sont pas des politiciens! Ils sont utilisés si generate-policy est défini dans la configuration d'homologue.
  • Que faire si aucune association de sécurité spécifique pour une stratégie n'a été trouvée. Auparavant, il y avait un problème avec L2TP / IPSec lorsque plusieurs clients ne pouvaient pas se connecter en raison du même NAT (lors de l'utilisation d'IKE), ce bogue est résolu (à condition que ces clients ne soient pas des fenêtres) si vous définissez level = unique. Sinon, passez à IKEv2
  • Lors de la configuration des stratégies, utilisez le [Mode sans échec], un mouvement maladroit et vous risquez de perdre l'accès au routeur en utilisant Level3

Mettre en place des propositions pour approbation SA



Les groupes


Utilisé pour associer des modèles de stratégie et des pairs.


image


Dans l'une des anciennes versions de RouterOS, il y avait un bogue avec le groupe par défaut qui ne fonctionnait pas.


Configuration du mode


Envoi et réception de paramètres IP sans utiliser de protocoles supplémentaires. Vous permet de créer un VPN client-serveur autonome uniquement IPSec.




Clés et utilisateurs


Utilisé pour l'authentification avancée par les pairs.
Clés
Clés RSA: génération, importation, exportation. Non pris en charge dans IKEv2.



Les utilisateurs
Base de données utilisateur XAuth pour le "serveur". Le client spécifie les paramètres xAuth dans la configuration d'homologue. Il est possible de transmettre l'authentification xAuth à un serveur RADIUS.



Pairs distants


Liste de tous les pairs installant et installant un tunnel auxiliaire (phase 1). Vous pouvez supprimer des pairs pour mettre à jour les clés du tunnel auxiliaire.


image


image


SA installées


Base de données SAD ou une liste de toutes les SA négociées. Vous pouvez voir les algorithmes et clés de protection des données utilisés.


image


image


L'indicateur matériel AEAD indique l'utilisation du chiffrement matériel.


image


Un administrateur peut réinitialiser SA, mais uniquement tous du même type (esp ou ah) en même temps.


IPSec et pare-feu


Dans le pare-feu, vous pouvez vérifier si le trafic est une stratégie IPSec entrante ou sortante. Une application évidente est L2TP / IPSec, vous pouvez interdire l'installation de connexions L2TP si le trafic n'a pas été préalablement chiffré.



Protocoles et ports utilisés dans IPSec


  • IKE - UDP: 500
  • IKEv2 - UDP: 4500
  • NAT-T - UDP: 4500
  • ESP - ipsec-esp (50)
  • AH - ipsec-ah (51)

IPSec et Endpoinds


Et maintenant à propos de la plaie ...
Le wiki mikrotik a des tableaux avec des algorithmes de hachage et de cryptage pour: Windows , iOS , OS-X .


Je n'ai pas trouvé d'informations sur le client VPN Android intégré, mais en général, cela fonctionne avec les propositions de Windows. Il n'y a pas de prise en charge IKEv2 dans Android, vous devez utiliser StrongSwan .


Exemples de configuration


Schéma et configuration de base pour des exemples avec des tunnels de site à site:



#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 mode tunnel



Configuration pas à pas:


  1. Créer des propositions pour IKE Phase1
  2. Créez un festin. Nous indiquons l'adresse, les propositions, le mode d'échange, la clé PSK. J'ai choisi IKEv2, vous pouvez utiliser principal / agressif comme vous le souhaitez
  3. Créer des propositions pour SA
  4. Spécifiez les sous-réseaux entre lesquels nous créons le tunnel
  5. Spécifiez les adresses SA, le mode tunnel et les propositions de chiffrement du trafic
  6. Modification de la règle NAT

Mikrotik1


Option console:


 #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


Option console:


 #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 

Et ici NAT?

Pour travailler en mode tunnel, vous avez besoin d'une fausse route vers le sous-réseau distant ou d'une route par défaut, sinon les paquets n'iront pas plus loin que la décision de routage. Il n'y a généralement aucun problème avec la première option, mais avec la route par défaut et le NAT source (le premier et le second sont présents sur la grande majorité des routeurs domestiques et professionnels), il y aura des problèmes.


Rappeler le flux de paquets. Les paquets passent par le NAT source plus tôt que les politiques IPSec, la règle avec masquerade ne sait rien du fait que le trafic est destiné à être envoyé vers le tunnel "éphémère" et diffusera les en-têtes de paquets à envoyer à IPSec lorsque le paquet avec l'en-tête modifié sera vérifié dans l'adresse source des politiques dans l'en-tête ne correspondra pas à la règle et le paquet s'envolera vers la route par défaut qui, après avoir vu l'adresse de destination du réseau privé, la supprimera très probablement.


Il existe plusieurs solutions au problème:


  • Utiliser un faux itinéraire
  • Utilisation d'une règle d'acceptation facultative avant SourceNAT
  • Soumettre src-nat uniquement aux paquets pour lesquels il n'y a pas de politiques IPSec (dans l'exemple)
  • Exclure le trafic du suivi des connexions à l'aide de RAW

Vérifier la connexion établie
image


  1. Nous voyons un voisin dans les pairs distants
  2. Nous voyons le SA installé (les compteurs de trafic ne changeront pas jusqu'à ce que vous le démarriez)
  3. En politique, Statut établi et drapeau (A) ctif

IPIP / IPSec



Tunnel IPIP prédéfini:


 #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 

Configuration pas à pas IPSec:


  1. Créer des propositions pour IKE Phase1
  2. Créez un festin. Indiquez l'adresse, les propositions, le mode d'échange, la clé PSK
  3. Créer des propositions pour SA
  4. Spécifiez les sous-réseaux entre lesquels nous créons le tunnel
  5. Nous précisons les adresses de SA, le type de trafic que nous allons chiffrer et les propositions

Mikrotik1


Option console:


 #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 

Pour inattentif, la vraie différence dans la configuration du tunnel et du mode de transport dans les stratégies IPSec:
image


La vérification de la connexion est similaire au mode tunnel.


L2TP / IPSec


Les exemples précédents sont bien adaptés pour créer des VPN permanents entre deux homologues, avec des adresses IP externes statiques.


Si l'adresse de l'un des homologues est dynamique (et se trouve généralement derrière NAT), vous devez utiliser un autre VPN client-serveur.
image


Préconfiguration 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 

Pourquoi dois-je ignorer le réglage automatique IPsec

Dans la configuration d'ipip, gre, eoip, l2tp, il y a une configuration automatique de la connexion ipsec, en fait le système crée des règles dynamiques pour les pairs et les politiques pour vous, mais premièrement, nous ne cherchons pas de moyens faciles, et deuxièmement, lors de la mise à niveau de 6.42 à 6.43, des tunnels créés automatiquement cassé et non le fait que cela ne se reproduira plus.


Configuration pas à pas IPSec:


  1. Créez un nouveau groupe (vous pouvez utiliser la valeur par défaut)
  2. Créer des propositions pour IKE Phase1
  3. Nous créons un festin, ou plutôt un sous-réseau. Jure sur la clé PSK, mais si nous avons affaire à Windows en tant que client, nous avons le choix: Certificats ou PSK.
  4. Définissez passive = yes et send-init-contact = no, dans generate-policy = port-strict (acceptez le port du client)
  5. Créer des propositions pour SA
  6. Créer un modèle pour générer des politiques
  7. Spécifiez la proposition pour SA

Configuration de Mikrotik

image
Dans la capture d'écran, l'erreur est de spécifier dst. port et src. le port n'est pas nécessaire


Option console:


 #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 

Configuration du pare-feu pour créer des connexions L2TP uniquement après 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


L'option L2TP est populaire, mais grâce à la configuration du mode, vous pouvez configurer le serveur VPN en utilisant uniquement IPSec. C'est un type de VPN prometteur, mais jusqu'ici rarement utilisé, donc en plus de configurer le côté serveur, je vais donner un exemple de configuration du client strongSwan sur Android.


image


Bien sûr, tout n'est pas si rose. La plupart des systèmes d'exploitation "utilisateur" (en particulier Windows et Android) acceptent de travailler avec un tel VPN uniquement s'ils sont authentifiés par des certificats ou EAP.


Les certificats sont mon point faible, si quelqu'un sait comment générer correctement un certificat auto-signé que Windows importe et utilisera dans la connexion, écrivez dans les commentaires.


Génération préliminaire des certificats:


 #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 

Configuration pas à pas du VPN IKEv2:


  1. Nous créons un pool d'adresses à distribuer aux clients
  2. Créer un profil de configuration de mode pour distribuer les paramètres IP aux clients
  3. Créer des groupes pour lier des pairs et des modèles de politiques
  4. Créer des propositions pour IKE Phase1
  5. Créez un profil pour connecter des pairs. Authentification par certificat, protocole IKEv2, mode passif
  6. Spécifiez le profil de configuration de mode, un groupe de 3 étapes et activez la génération de stratégie
  7. Créer des propositions pour SA
  8. Créer un modèle pour générer des politiques
  9. Spécifier les propositions pour SA

Configurer Mikrotik

image


 #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 

Configuration StrongSwan sur Android.

Vous devez d'abord transférer les certificats client et ca sur le téléphone.
https://habrastorage.org/webt/tp/pk/ad/tppkadaifd1k7xi6hf3jxgg7vcs.png


Pour les grands yeux: une croix près du wi-fi se tient parce que la plupart des applications système sont bloquées par AFWall +.


Si la connexion réussit, vous verrez: stratégie dynamique, écriture sur des pairs distants et une paire de SA.


image


image


image


Les licences de démonstration RouterOS x86 n'ont aucune restriction sur le nombre de tunnels IPSec, y compris le VPN IKEv2. Vous pouvez déployer la démo RouterOS x86 (ne pas confondre avec RouterOS CHR gratuit, tout est triste) sur VPS et obtenir un serveur VPN personnel avec un effort administratif minimal, sans acheter de licence pour RouterOS ou RouterOS CHR.


Quelques mots sur l'analyse des journaux IPSec


Les journaux dans Mikrotik sont une histoire distincte, parfois ils sont suffisamment détaillés pour analyser les problèmes, mais le manque de fonctionnalités banales: nettoyer, copier, trouver vous oblige à installer un serveur syslog séparé.


Quant à IPSec, voici une option d'analyse de journal rapide (nous ne laissons que le nécessaire dans un onglet séparé):


image


 /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 

Et quelques exemples de problèmes de configuration IPSec typiques:


Problème de cohérence des propositions sur la phase 1

image


  1. Lisez le message d'erreur. Le problème est lors de la réconciliation des propositions dans la première phase.
  2. Nous regardons ci-dessus, le routeur lui-même suggère qu'il a envoyé un festin, et ce qui est configuré localement

Problème de réconciliation IKE_SA_INIT

Dans les journaux, vous verrez quelque chose comme ceci:



Analyser le trafic


Dans la demande, vous pouvez voir les propositions du banquet:



Dans la réponse, nous voyons qu'aucune proposition appropriée n'a été trouvée:



Problème de rapprochement des propositions pour SA


Le routeur demande une erreur sur les propositions lors de la phase 2 et indique ce qui est configuré localement et ce qui est distant.


Propositions Problème de réconciliation IKE_AUTH


Nous voyons qu'il y avait une connexion et une authentification des pairs, mais en outre une erreur de propositions. Vous ne verrez aucun détail dans le débogage, dans Wheelshark non plus (le trafic IKE_AUTH est chiffré).


Erreur d'authentification PSK

Pour IKE:



Pour IKEv2:


Mode IKE incorrect

image
Nous voyons que la phase 1 interrompt le délai d'expiration, bien que les paquets passent entre pairs. Mais la taille du paquet entrant est beaucoup plus grande, si nous analysons via Wirehark, nous verrons que l'homologue distant utilise le mode agressif.



Nous voyons que des paquets sont envoyés de nous à UDP: 500, et ils arrivent à UDP: 4500 et sont plutôt gros. Ici, l'homologue distant a le mode IKEv2.


Enfin, lisez la section de dépannage du wiki . Et tout le matériel sur IPSec est souhaitable pour la connaissance, je n'ai décrit que l'ensemble de base des outils et des paramètres.

Source: https://habr.com/ru/post/fr438176/


All Articles