Protocole IPSec

ipsec lock

Le protocole IPsec permet de transporter des informations de manière sécurisées à partir de la couche 3 du modèle OSI.
Pour ce faire, il a à sa disposition plusieurs standards de chiffrement : AES, DES, SHA, MD5, DH.

 

IPsec = Internet Protocol Security

– Protocole normalisé RFC 4301.
– Protocole de niveau 3.
– Créé pour IPv6, adapté à l’IPv4.
– Utilise le protocole IKE (Internet Key Echange) – UDP 500.

But :

Confidentialité
Information compréhensible uniquement par le destinataire final.
Intégrité
Une personne tierce ne peut modifier la donnée.
Authentification
Le destinataire de l’information doit tout d’abord être authentifié au prêt de l’émetteur.
Antireplay
Nos paquets ne peuvent être dupliqué par un tiers.

 

Standards supportés


AESAdvanced Encryption Standard
DESData Encryption Standard
SHASecure Hash Algorithm
MD5Message digest algorithm 5
DHDiffie-Hellman

Recommandations CISCO :

– Evitez DES, 3DES, MD5 et les groupes DH 1, 2 et 5.
– Utilisez AES, SHA et les groupes DH 14 ou plus.

 

Fonctionnement


 

IKE – Phase 1


Cette première phase va nous permettre de générer une clée de chiffrement de manière sécurisé qui va nous servir pour AH et ESP et ce grâce au Diffie-Hellman.

But :

Authentification
Le destinataire de l’information doit tout d’abord être authentifié au prêt de l’émetteur

Cette authentification se doit d’être robuste, pour cela nous allons rajouté les couches Confidentialité et Intégrité.

IPSEC - IKE Phase 1

IKE Phase 1

 

R1(config)# crypto isakmp policy [Numéro de policy]
R1(config-isakmp)# encryption aes-256
R1(config-isakmp)# authentication pre-share
R1(config-isakmp)# group 7
R1(config-isakmp)# hash sha

Création de la pre-share-key :

R1(config)# crypto isakmp key [pre-share-key] address [@IP Destinataire]

 

IKE – Phase 2


Le but de cette phase est de transporter les données de nos client de manière sécurisée.

But :

Confidentialité
Information compréhensible uniquement par le destinataire final.
Intégrité
Une personne tierce ne peut modifier la donnée.

Pour assurer la partie Confidentialité de la donnée, nous avons deux protocoles disponible :

AH
ESP

Pour assurer la partie Intégrité de la donnée nous allons utiliser le HASH ( soit par MD5 , soit par SHA )

Protocole AH (Authentication Header)

AH Transform :

– ah-md5-hmac
– ah-sha-hmac

Protocole ESP (Encapsulating Security Payload)

ESP Encryption :

– esp-gcm
– esp-gmac

– esp-aes (Algorithme d’encryption de 128-bit)
– esp-aes192 (Algorithme d’encryption de 192-bit)
esp-aes256 (Algorithme d’encryption de 256-bit)

– esp-des 
– esp-3des

– esp-null

ESP Authentication :

– esp-md5-hmac
– esp-sha-hmac

R1(config)# crypto ipsec transform-set [Nom] [encryption] [authentification]
R1(cfg-crypto-trans)# mode [ Transport | Tunnel ]

Il existe deux modes IPsec :

Transport
Tunnel

Le mode Transport va chiffrer les couches supérieures à la couche 3 et va conserver les en-têtes IP de notre paquet.
Le mode Tunnel va modifier les adresses IP Source et Destination de notre paquet comme le ferais un tunnel GRE.

Et là, une question vous vient à l’esprit :

Question : Quelle est la différence entre GRE over IPsec et un Tunnel IPsec ?
Réponse : Un tunnel GRE over IPsec prend en compte les flux multicast, contrairement à un tunnel IPsec.

soit

R1(config)# crypto ipsec transform-set Finger esp-aes256 esp-sha-hmac
R1(cfg-crypto-trans)# mode transport 
R1(cfg-crypto-trans)# exit

À cette étape, nous venons de finir de dire à nos équipements comment chiffrer nos paquets. Il nous reste plus qu’à leur dire où chiffer !

 

Mise en application


Pour mettre en application notre chiffrement, deux façon de faire :

Crypto-map

– Vieille méthode.
– Non flexible.

Profile

– Nouvelle méthode.
– Beaucoup plus flexible.
– Fortement recommandé pour le GRE over IPsec et le DMVPN.

 

Crypto-map


Notre Crypto-map va nous permettre de savoir :

– Avec qui monter notre tunnel IPsec ?
– Qui as le droit de circuler dans notre tunnel ?
– Comment chiffrer notre tunnel ?

Ce qui nous donne :

--------- CREATION DE LA CRYPTO MAP ---------

R1(config)# crypto map mymap 10 ipsec-isakmp
R1(config-crypto-map)# set peer 2.2.2.1         >>> Avec qui ?
R1(config-crypto-map)# set transform-set Finger >>> Comment ?
R1(config-crypto-map)# match address 100        >>> Qui peut circuler ?
R1(config)# access-list 100 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255

--------- APPLICATION DE LA CRYPTO MAP ---------

R1(config)# interface FastEthernet 0/1
R1(config-if)# ip address 1.1.1.1 255.255.255.252
R1(config-if)# crypto map mymap

 

Profile


Facile à mettre en place, les commandes parlent d’elle même 🙂

--------- CREATION DU PROFIL ---------

R1(config)# crypto ipsec profile MGRE
R1(ipsec-profile)# set transform-set Finger
R1(ipsec-profile)# exit

--------- APPLICATION DU PROFIL ---------

R1(config)# interface tunnel 10
R1(config-if)# tunnel protection ipsec profile MGRE

 

Exemple de configuration


Pour cet exemple, j’ai choisi de mettre en place mon IPsec via Crypto Map.
Vous pouvez voir un autre exemple pour la configuration d’IPSec via Profile dans mon article sur le DMVPN !

Topologie


IPSEC - Topologie

IPSEC – Topologie

 

Routeur R1


--------- PHASE 1 ---------

R1(config)# crypto isakmp policy 10
R1(config-isakmp)# encryption aes-256
R1(config-isakmp)# authentication pre-share
R1(config-isakmp)# group 7
R1(config-isakmp)# hash sha

R1(config)# crypto isakmp key pre-share-key-finger address 2.2.2.1

--------- PHASE 2 ---------

R1(config)# crypto ipsec transform-set Finger esp-aes256 esp-sha-hmac
R1(cfg-crypto-trans)# mode transport
R1(cfg-crypto-trans)# exit

--------- Créer une crypto-map ---------

R1(config)# crypto map mymap 10 ipsec-isakmp
R1(config-crypto-map)# set peer 2.2.2.1
R1(config-crypto-map)# set transform-set Finger
R1(config-crypto-map)# match address 100

R1(config)# access-list 100 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255

--------- Appliquer la crypto-map ---------

R1(config)# interface FastEthernet 0/1
R1(config-if)# ip address 1.1.1.1 255.255.255.252
R1(config-if)# crypto map mymap

 

Routeur R2


--------- PHASE 1 ---------

R2(config)# crypto isakmp policy 10
R2(config-isakmp)# encryption aes-256
R2(config-isakmp)# authentication pre-share
R2(config-isakmp)# group 7
R2(config-isakmp)# hash sha

R2(config)# crypto isakmp key pre-share-key-finger address 1.1.1.1

--------- PHASE 2 ---------

R2(config)# crypto ipsec transform-set Finger esp-aes256 esp-sha-hmac
R2(cfg-crypto-trans)# mode transport
R2(cfg-crypto-trans)# exit
R2(config)# crypto map mymap 10 ipsec-isakmp

--------- Créer une crypto-map ---------

R2(config-crypto-map)# set peer 1.1.1.1
R2(config-crypto-map)# set transform-set Finger
R2(config-crypto-map)# match address 100

R2(config)# access-list 100 permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255

--------- Appliquer la crypto-map ---------

R2(config)# interface FastEthernet 0/1
R2(config-if)# ip address 2.2.2.1 255.255.255.252
R2(config-if)# crypto map mymap

Conclusion


– Recommandations CISCO :

– Évitez DES, 3DES, MD5 et les groupes DH 1, 2 et 5.
– Utilisez AES, SHA et les groupes DH 14 ou plus.

– Privilégiez un Tunnel GRE + IPsec en mode transport qu’un Tunnel IPsec.

– Mettez en application votre IPSec via un Profile et non via une Crypto Map.

 

En espérant que cet article vous a été utile ! Hésitez pas à me la faire savoir !!
Ce site possède d’autres articles réseaux, profitez-en pour naviguer dans la barre de menu !

 

FingerInTheNet.com

Noël NICOLAS

Expert Réseau
10 ans d’expérience
CCNP Routing and Switching
Fondateur du site FingerInTheNet

3
Poster un Commentaire

Laisser un commentaire

  Subscribe  
plus récents plus anciens plus de votes
Me notifier des
Franck RAINERO
Invité
Franck RAINERO

Franchement arriver à vulgariser et sortir l’essentiel du fonctionnement comme tu le fais est franchement bluffant.
Ça fait un moment que je te suis et que j’applique certains des protocoles et services que tu présentes ici avec grands succès.
Merci.

kayoumt
Invité
kayoumt

Félicitations, pour l’effort !

Une forte suggestion d’amélioration serait de scinder l’article en 2 parties :

– Partie-1 : Introduction au protocole IPSEC (sans aucune commende CISCO)
– Partie-2 : Configuration du protocole IPSEC (mise en application de l’introduction, avec explications dans les détails des commandes).

La raison pour laquelle je te suggère ça est qu’à partir de la section « Mise en application », je suis perdu. Des termes, mots-clés et commandent apparaissent et ne sont pas forcément expliqués.