Cet article, consacré au VPN IPsec, fait suite à notre précédent article sur le VPN GRE. Le VPN IPsec est un framework développé par l’IETF, intégrant de nombreuses technologies pour assurer la sécurité des données dans un réseau non sécurisé, tel qu’Internet. IPsec offre des services de sécurité essentiel que nous allons voir dans cet article.
Les service de sécurité
Authentification des pairs dans IPSEC :
IPsec vérifie l’identité de chaque partenaire grâce à des méthodes d’authentification telles que les clés pré-partagées (PSK) et les certificats numériques.
Confidentialité des données dans IPSEC
IPsec protège les données contre les écoutes clandestines en utilisant des algorithmes de chiffrement tels que AES, DES, et 3DES. Il est important de noter que l’utilisation de DES et 3DES est désormais dépréciée en raison de leurs vulnérabilités.
Intégrité des données dans IPSEC
IPsec empêche les attaques man-in-the-middle (MitM) en garantissant que les données n’ont pas été falsifiées pendant leur transit. Pour ce faire, IPsec utilise HMAC (Keyed-Hash Message Authentication Code) avec des algorithmes tels que HMAC-SHA-1, HMAC-SHA-256, et HMAC-SHA-512. Notons que l’utilisation de HMAC-MD5 est dépréciée.
Détection de relecture dans IPSEC
Psec protège également contre les attaques MitM où un attaquant capture et rejoue le trafic VPN. Chaque paquet reçoit un numéro de séquence unique, et les périphériques VPN rejettent tout paquet avec un numéro de séquence déjà traité. Ces services sont disponibles dans deux en-têtes de paquet : Authentication Header (AH) et Encapsulation Security Payload (ESP). AH assure l’intégrité, l’authentification et la détection de relecture, mais ne traverse pas les NAT et ne peut pas être chiffré, d’où la recommandation d’utiliser ESP, qui corrige ces limitations.
Les modes de transports dans IPSEC
IPSec offre deux modes de transport de paquets:
Mode tunnel: crypte l’intégralité du paquet d’origine et ajoute un nouvel ensemble d’en-têtes IPsec. Les nouveaux en-têtes sont utilisés pour acheminer le paquet. Ce mode sera adapté pour un VPN Site-to-Site
Mode de transport: chiffre et authentifie uniquement la charge utile du paquet. Ce mode ne fournit pas de routes basées sur les en-têtes IP d’origine. Ce mode sera adapté pour un VPN Client-to-Site
Les algorithmes de chiffrement pris en charge par IPSec
IPsec est une technologie éprouvée pour protéger activement les communications sur les réseaux non sécurisés. Au cœur de cette solution, les algorithmes de chiffrement jouent un rôle essentiel. Ces algorithmes chiffrent les données sensibles, empêchant toute interception non autorisée. Explorons comment IPsec utilise ces algorithmes pour assurer une sécurité maximale.
Exempe d’alorithme et description
Voici une liste non-exhaustif des algorithmes intégrées à l’IPSEC :
- Advanced Encryption Standard (AES): algorithme de cryptage symétrique utilisé pour le cryptage des données développé pour remplacer DES et 3DES. AES prend en charge des longueurs de clé de 128 bits, 192 bits ou 256 bits et est basé sur l’algorithme Rijndael.
- Secure Hash Algorithm (SHA): algorithme de hachage unidirectionnel de 160 bits utilisé pour l’authentification des données. Les périphériques Cisco utilisent le SHA-1 HMAC, qui offre une protection supplémentaire contre les attaques MitM.
- Diffie-Hellman (DH): protocole d’échange de clé asymétrique qui permet à deux homologues d’établir une clé secrète partagée utilisée par des algorithmes de chiffrement tels que AES sur un canal de communication non sécurisé. Un groupe DH fait référence à la longueur de la clé (taille du module) à utiliser pour un échange de clé DH. Par exemple, le groupe 1 utilise 768 bits, le groupe 2 utilise 1024 et le groupe 5 utilise 1536, où plus le module est grand, plus il est sécurisé. Le but de DH est de générer des clés symétriques secrètes partagées qui sont utilisées par les deux homologues VPN pour des algorithmes symétriques, tels que AES. L’échange DH lui-même est asymétrique et gourmand en ressources processeur, et les clés secrètes partagées qui en résultent sont symétriques. Cisco recommande d’éviter les groupes DH 1, 2 et 5 et d’utiliser à la place les groupes DH 14 et supérieurs.
- Signatures RSA: système cryptographique à clé publique (certificats numériques) utilisé pour authentifier mutuellement les homologues.
- Clé pré-partagée (PSK): mécanisme de sécurité dans lequel une clé configurée localement est utilisée comme information d’identification pour authentifier mutuellement les pairs.
Transform-set
Le transform set est une combinaison spécifique de protocoles de sécurité et d’algorithmes cryptographiques. Il joue un rôle important dans la sécurisation des communications au sein d’un VPN IPsec. Ce transform-set définit comment les données seront protégées lorsqu’elles sont transmises à travers le tunnel VPN.
Lors de la phase de négociation IKE (Internet Key Exchange), qui est prépondérante dans l’établissement d’une connexion VPN sécurisée, les équipements qui formeront les extrémités du VPN échangent des informations pour sélectionner et valider cette combinaison de sécurité. IKE, que ce soit en version 1 ou 2, permet aux deux parties de s’accorder sur les protocoles de sécurité à utiliser, notamment pour le chiffrement, l’authentification et l’intégrité des données.
Cette phase de négociation est cruciale car elle détermine la sécurité globale du tunnel VPN. Une fois la négociation terminée, le transform-set choisi sera appliqué pour chiffrer et authentifier les données transmises entre les deux extrémités du tunnel. En fonction des besoins spécifiques de sécurité, différents algorithmes et protocoles peuvent être sélectionnés, tels que AES pour le chiffrement et SHA-256 pour l’intégrité des données..
Internet Key Exchange (IKE)
Pour permettre une communication sécurisée entre nos deux équipements, notamment pendant la phase de négociation, nous devons créer un tunnel de communication sécurisé. Pour cela, nous utiliserons le protocole IKE. Ce protocole existe en deux versions : IKEv1 (RFC 2409) et IKEv2 (RFC 7296). IKEv2 améliore plusieurs aspects du protocole, comme la prise en charge de l’authentification basée sur les certificats (EAP), l’intégration de mécanismes anti-DoS, et la réduction du nombre de messages nécessaires par rapport à IKEv1.
Dans IKEv2, les communications se composent de paires de demandes et de réponses, appelées échanges. Le premier échange, IKE_SA_INIT, négocie les algorithmes cryptographiques (transform set), échange des nonces, et effectue un échange Diffie-Hellman. Cela crée le canal sécurisé.
Bon à savoir
Un nonce en cryptographie est un nombre aléatoire qui ne peux être utilisée une seule fois.
Le deuxième échange, IKE_AUTH, authentifie les messages précédents et échange les identités et les certificats. Ensuite, il établit une IKE SA et une IKE SA Enfant (SA Security Association– Association de sécurité IKE). Ses deux échanges vont nous permettre de créer un tunnel de gestion.
Le deuxième échange, IKE_AUTH, authentifie les messages précédents et échange les identités et les certificats. Ensuite, il établit une IKE SA et une IKE SA Enfant (Security Association – Association de sécurité IKE). Ces deux échanges permettent de créer un tunnel de gestion.
Nous allons faire transiter des données à travers ce tunnel.
Configurer IPSEC pour chiffrer les données transitant dans un VPN GRE
Dans cette mise en pratique, nous ferons passer dans un tunnel IPsec des paquet GRE. Cela permettra de chiffrer les messages dans le tunnel. Repartons de la topologie de l’article qui traite du VPN GRE.
Comme nous l’avons constaté dans l’article VPN GRE, les paquets circulent en clair dans le tunnel. Pour sécuriser ces communications, nous allons utiliser IPsec pour chiffrer les messages. Nous opterons donc pour une configuration de VPN GRE over IPsec.
Dans la partie théorique de ce chapitre, nous avons expliqué qu’il est essentiel de créer un premier tunnel avec la phase 1 d’IKE pour permettre la négociation entre les pairs. Ensuite, un second tunnel est établi à l’intérieur de ce premier, assurant ainsi la confidentialité des données dans un VPN IPsec.
Étant donné que notre tunnel GRE est déjà configuré, nous ne reviendrons pas sur la configuration de base, la mise en place du NAT et du tunnel GRE. Nous nous concentrerons plutôt sur la configuration d’IPsec pour sécuriser notre VPN IPsec.
IKE Phase 1 Configuration
Commençons par configurer la phase 1 d’IKE pour notre VPN IPsec.
RT-ETS-1(config)#crypto isakmp policy 1
RT-ETS-1(config-isakmp)#encryption aes
RT-ETS-1(config-isakmp)#hash sha
RT-ETS-1(config-isakmp)#authentication pre-share
RT-ETS-1(config-isakmp)#group 14
Pour cette configuration de VPN IPsec, nous allons d’abord utiliser une clé partagée pour l’authentification. Ensuite, nous devons configurer cette clé et spécifier l’adresse IP avec laquelle nous allons la partager. Enfin, l’adresse IP publique du routeur RT-ETS-2 identifiera le destinataire de cette clé.
RT-ETS-1(config)#crypto isakmp key maclepartage address 192.0.0.6
Ensuite, nous allons configurer notre transform set pour garantir que la phase de négociation aboutisse. Cette étape est cruciale pour assurer le succès du processus.
RT-ETS-1(config)#crypto ipsec transform-set montransformset esp-aes esp-sha-hmac
IKE Phase 2 Configuration
Maintenant, nous passons à la seconde phase d’IKE, qui consiste à chiffrer les données. Pour cela, nous allons configurer un ensemble de paramètres que nous placerons dans une « crypto map ».
« La crypto map associe les règles de sécurité à une interface réseau, déterminant quel trafic sera chiffré et sécurisé par le VPN IPsec. »
Bon à savoir
Une crypto map est une configuration sur un routeur ou un pare-feu qui associe des règles de sécurité, telles que les protocoles de chiffrement et les algorithmes d’authentification, à une interface réseau. Cette map détermine quel trafic doit être chiffré et sécurisé avant de traverser le VPN IPsec.
RT-ETS-1(config)#crypto map CRYPTOMAP 10 ipsec-isakmp
Ensuite, dans cette crypto map, nous spécifions l’autre extrémité du tunnel VPN IPsec
RT-ETS-1(config-crypto-map)# set peer 192.0.0.6
Ensuite, le transform set que nous utiliserons déterminera les protocoles de sécurité et les algorithmes de chiffrement pour notre tunnel VPN IPsec
RT-ETS-1(config-crypto-map)# match address 100
Puisque cette access-list n’est pas encore créée, nous allons la configurer maintenant. Elle chiffrera les données provenant de 10.0.0.1 vers 10.0.0.2, c’est-à-dire les données qui transitent dans le tunnel GRE
RT-ETS-1(config-crypto-map)#access-list 100 permit ip host 10.0.0.1 host 10.0.0.2
Appliquer la crypto map a notre interface
Ensuite, nous appliquons cette crypto map sur notre interface WAN
RT-ETS-1(config-crypto-map)# Interface gig 0/0
RT-ETS-1(config-if)# crypto map CRYPTOMAP
Nous configurerons RT-ETS-2 de la même manière, en ajustant simplement les adresses IP.
RT-ETS-2#conf terminal
RT-ETS-2(config)#crypto isakmp policy 1
RT-ETS-2(config-isakmp)#encryption aes
RT-ETS-2(config-isakmp)#hash sha
RT-ETS-2(config-isakmp)#authentica
RT-ETS-2(config-isakmp)#authentication pre-share
RT-ETS-2(config-isakmp)#group 14
RT-ETS-2(config-isakmp)#crypto isakmp key maclepartage address 192.0.0.2
RT-ETS-2(config)#crypto ipsec transform-set montransformset esp-aes esp-sha-hmac
RT-ETS-2(config)#crypto map CRYPTOMAP 10 ipsec-isakmp
RT-ETS-2(config-crypto-map)#set peer 192.0.0.2
RT-ETS-2(config-crypto-map)# set transform-set montransformset
RT-ETS-2(config-crypto-map)# match address 100
RT-ETS-2(config-crypto-map)#access-list 100 permit ip host 10.0.0.2 host 10.0.0.1
RT-ETS-2(config)#Interface gig 0/0
RT-ETS-2(config-if)#crypto map CRYPTOMAP
Vérifier que votre VPN GRE over IPSEC fonctionne
Pour vérifier que les associations de sécurité fonctionne sur les routeurs exécutons la commande suivante :
show crypto ipsec sa
Cette commande affiche les SA IPsec en cours, y compris les paquets chiffrés et déchiffrés. Cela permet de s’assurer que le tunnel VPN GRE over IPsec est actif.
Pour vérifier que la phase 1 IKE est bien établie en utilisant la commande suivante :
show crypto isakmp sa
Cette commande montre l’état des associations de sécurité IKE, indiquant si les échanges IKEv1 ou IKEv2 pour le VPN GRE over IPsec sont réussis.
Conclusion
Comme vous l’aurez compris, ici, nous n’avons pas configurer un VPN IPSec mais un VPN GRE over IPSEC. EN effet un VPN IPSEC est idéal pour des scénarios simples où tu as besoin de sécuriser le trafic IP entre deux points, sans avoir besoin de transporter d’autres types de trafic ou de gérer du routage dynamique. alors qu’un VPN GRE over IPSEC sera préféré ans des environnements plus complexes où tu as besoin de transporter plusieurs types de trafic (y compris non-IP), utiliser du routage dynamique, ou gérer du trafic multicast comme cela sera le cas dans le prochain article qui traitera du DMVPN.