Configurez IPSEC

Configurez le VPN IPSEC

Vous allez configurer la phase 1 du VPN IPSEC, qui permet d’établir un canal sécurisé pour négocier le tunnel.

OC-SITE-A(config)#crypto isakmp policy 1

OC-SITE-A(config-isakmp)#authentication pre-share

OC-SITE-A(config-isakmp)#encryption aes 256

OC-SITE-A(config-isakmp)#hash sha

OC-SITE-A(config-isakmp)#group 5

OC-SITE-A(config-isakmp)#lifetime 21600

 

Permettez-moi de vous expliquer la fonction des commandes mentionnées ci-dessus.

  • crypto isakmp policy 1: permet de créer une politique ISAKMP qui utilise IKE pour négocier.

  • authentication pre-share: met en place une authentification par clé prépartagée.

  • encryption aes 256: définit l’algorithme de chiffrement utilisé pour sécuriser les échanges.

  • group 5: définit le groupe Diffie-Hellman 5, sur 1536 bits (valeur max dans Packet tracer, on utilise de préférence le groupe 15 en 3072 bits sur un vrai routeur / firewall).

  • hash sha: définit l’algorithme de Hachage, pour assurer l’intégrité des données (comme pour Diffie-Hellman, on ne peut pas dans Packet Tracer définir une valeur de Hash, on recommande d’utiliser SHA512 sur un vrai équipement)

  • lifetime 21600: définit la durée de vie de l’association de sécurité ISAKMP, à la fin de ce délai, une nouvelle SA doit être établie. Notez qu’en cas de perte du correspondant, il est possible sur un vrai équipement, d’activer DPD (Dead Peer Detection). Ce mécanisme, optionnel en IKEv1 et intégré nativement en IKEv2 permet de détecter rapidement la perte du correspondant et de déclencher une renégociation ou une suppression de la SA avant expiration du délai.

La configuration est exactement la même (et doit être exactement la même) sur OC-SITE-B :

OC-SITE-B(config)#crypto isakmp policy 1

OC-SITE-B(config-isakmp)#authentication pre-share

OC-SITE-B(config-isakmp)#encryption aes 256

OC-SITE-B(config-isakmp)#hash sha

OC-SITE-B(config-isakmp)#group 5

OC-SITE-B(config-isakmp)#lifetime 21600

La suite de la phase 1 consiste à définir la clé pré partagée avec le correspondant : 

OC-SITE-A(config)#crypto isakmp key OpenClassR00m$IP5ecL@b address 59.62.1.1

OC-SITE-B(config)#crypto isakmp key OpenClassR00m$IP5ecL@b address 62.59.1.1

Avant de configurer la phase 2, vous allez configurer sur OC-SITE-A et OC-SITE-B une ACL qui va permettre de définir le flux qui doit passer dans le tunnel : 

OC-SITE-A(config)#ip access-list extended VPN

OC-SITE-A(config-ext-nacl)#permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255

 

OC-SITE-B(config)#ip access-list extended VPN

OC-SITE-B(config-ext-nacl)#permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255

Une fois les ACL VPN créées, vous allez configurer la phase 2. Commencez par créer le TRANSFORM-SET, qui va permettre de faire appel au protocole ESP, chargé de chiffrer et d’assurer l’intégrité des données qui passent dans le tunnel IPSEC : 

OC-SITE-A(config)#crypto ipsec transform-set OCSET esp-aes 256 esp-sha-hmac

 

OC-SITE-B(config)#crypto ipsec transform-set OCSET esp-aes 256 esp-sha-hmac

Dans la commande ci-dessus, la même sur OC-SITE-A et OC-SITE-B, vous créez un TRANSFORM-SET nommé OCSET qui utilise ESP avec AES 256 pour le chiffrement et SHA pour l’intégrité.

Enfin, vous allez créer une CRYPTO MAP, qui est un objet qui comprend : 

  • Le TRANSFORM-SET

  • L’ACL pour identifier le flux qui doit passer dans le VPN

  • la durée de l’association de sécurité de phase 2

  • l’adresse du correspondant

Avant de créer cette CRYPTO MAP, je vous propose de faire un point sur la SA : 

  • En phase 1, une Security Association (SA) est établie avec une durée de vie de 21600 secondes (6 heures). À son expiration, une nouvelle paire de clés Diffie-Hellman (DH) est générée, ce qui permet de réduire le risque de compromission des clés à long terme.

  • En phase 2, les clés utilisées pour chiffrer et authentifier les données sont dérivées de la clé établie en phase 1. On ne refait pas un échange Diffie-Hellman complet à chaque expiration de SA de phase 2, sauf si l’option PFS (Perfect Forward Secrecy) est activée. Dans ce cas, une nouvelle clé est générée, ce qui renforce la sécurité : même si une clé est compromise, les autres sessions restent protégées. La durée de vie d’une SA de phase 2 est généralement configurée à 3600 secondes (1 heure).

Voici la configuration de la CRYPTO MAP sur OC-SITE-A et OC-SITE-B :  

OC-SITE-A(config)#crypto map OCMAP 10 ipsec-isakmp

OC-SITE-A(config-crypto-map)#set transform-set OCSET

OC-SITE-A(config-crypto-map)#set security-association lifetime seconds 3600

OC-SITE-A(config-crypto-map)#set peer 59.62.1.1

OC-SITE-A(config-crypto-map)#match address VPN

OC-SITE-A(config-crypto-map)#exit

 

OC-SITE-B(config)#crypto map OCMAP 10 ipsec-isakmp

OC-SITE-B(config-crypto-map)#set transform-set OCSET

OC-SITE-B(config-crypto-map)#set security-association lifetime seconds 3600

OC-SITE-B(config-crypto-map)#set peer 62.59.1.1

OC-SITE-B(config-crypto-map)#match address VPN

OC-SITE-B(config-crypto-map)#exit

Derrière le nom donné à la  CRYPTO MAP  ,  OCMAP  dans le cas présent, vous trouverez le numéro 10. Il s’agit d’un numéro de séquence, car vous ne pouvez appliquer qu’une seule  CRYPTO MAP  par interface, donc pour chaque VPN différent, si vous en avez plusieurs (et ce sera le cas à la suite de ce cours), vous devrez utiliser un numéro de séquence différent pour chaque VPN.

Les autres commandes sont assez explicites : vous définissez la durée de SA de phase 2 à 3600 secondes, vous appelez le  TRANSFORM-SET OCSET  , vous définissez l’IP du correspondant distant et vous appelez l’ACL qui permet d’identifier le flux qui peut passer dans le tunnel.

Il suffit maintenant d’appliquer cette  CRYPTO MAP  sur l’interfac ou se trouve votre IP publique : 

OC-SITE-A(config)#int gig 0/1

OC-SITE-A(config-if)#crypto map OCMAP

 

OC-SITE-B(config)#int gig 0/1

OC-SITE-B(config-if)#crypto map OCMAP

Un message de log confirme l’activation de la  CRYPTO MAP

*Jan 3 07:16:26.785: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON

Vous voici arrivé à l’instant de vérité : faites un ping continu entre chaque PC : 

Cisco Packet Tracer PC command Line 1.0

C:\>ping -t 192.168.2.1 with 32 bytes of data:

Reply from 192.168.2.1: bytes=32 time<1ms TTL=126

 

Cisco Packet Tracer PC command Line 1.0

C:\>ping -t 192.168.1.1 with 32 bytes of data:

Reply from 192.168.1.1: bytes=32 time<1ms TTL=126

Ça fonctionne ! Le VPN est établi, vous pouvez utiliser les commandes suivantes pour vérifier son fonctionnement : 

OC-SITE-A#show crypto isakmp sa

IPv4 Crypto ISAKMP SA

dst src state conn-id slot status

59.62.1.1 62.59.1.1 QM_IDLE 1076 0 ACTIVE

 

OC-SITE-B#show crypto isakmp sa

IPv4 Crypto ISAKMP SA

dst src state conn-id slot status

62.59.1.1 59.62.1.1 QM_IDLE 1070 0 ACTIVE

La commande ci-dessus confirme que la phase 1 est établie (ACTIVE). QM_IDLE indique que la négociation de phase 1 est terminée.

OC-SITE-A#show crypto ipsec sa

 

interface: GigabitEthernet0/1

  Crypto map tag: OCMAP, local addr 62.59.1.1

protected vrf: none

local ident (addr/mask/prot/port): (192.168.1.0/255.255.255.0/0/0)

remote ident (addr/mask/prot/port): (192.168.2.0/255.255.255.0/0/0)

current_peer 59.62.1.1 port 500

   PERMIT, flags={origin_is_acl,}

#pkts encaps: 688, #pkts encrypt: 688, #pkts digest: 0

#pkts decaps: 688, #pkts decrypt: 688, #pkts verify: 0

#pkts compressed: 0, #pkts decompressed: 0

#pkts not compressed: 0, #pkts compr. failed: 0

#pkts not decompressed: 0, #pkts decompress failed: 0

#send errors 0, #recv errors 0

La commande  ci-dessus confirme que la phase 2 est bien établie, les paquets sont bien chiffrés et déchiffrés, notez que la valeur #pkts digest: 0 et #pkts verify: 0 est anormal, c’est un bug connu dans Packet Tracer, un vrai IOS indiquerait ici les paquets dont l’intégrité à été vérifiée.

Félicitations, vous avez configuré votre premier VPN IPSEC en lignes de commandes ! 

Configurez un second VPN IPSEC

Vous allez maintenant ajouter un troisième site, le site OC-SITE-C, la topologie ressemble maintenant à ceci : 

Schéma réseau avec trois sites OC-SITE-A, B et C connectés via un WAN. Chaque site relie un PC local avec des sous-réseaux privés distincts.
La topologie avec trois sites

Le routeur 1941 dispose de deux interfaces Ethernet RJ45, pour établir une connexion entre WAN et OC-SITE-C, ajoutez sur ces deux routeurs une carte HWIC-1GE-SFP dans laquelle vous ajouterez un module GLC-LH-SMD : 

Interface d’un routeur Cisco 1941 dans Packet Tracer, affichant les modules physiques, ports réseau, alimentation, console et options d’extension à gauche.
Ajoutez la carte HWIC-1GE-SFP, puis un module GLC-LH-SMD

Vous pourrez ensuite relier les deux routeurs en fibre optique.

Voici la configuration de base que vous allez mettre en place usr OC-SITE-C : 

OC-SITE-C(config)#int gig 0/1/0

OC-SITE-C(config-if)#ip address 80.59.62.1 255.255.255.252

OC-SITE-C(config-if)#no shut

OC-SITE-C(config-if)#ip nat outside

OC-SITE-C(config-if)#exit

OC-SITE-C(config)#int gig 0/0

OC-SITE-C(config-if)#ip address 192.168.3.254 255.255.255.0

OC-SITE-C(config-if)#ip nat inside

OC-SITE-C(config-if)#no shut

OC-SITE-C(config-if)#exit

 

OC-SITE-C(config)#ip route 0.0.0.0 0.0.0.0 80.59.62.2

 

OC-SITE-C(config)#ip access-list extended NAT

OC-SITE-C(config-ext-nacl)#deny ip 192.168.3.0 0.0.0.255 192.168.1.0 0.0.0.255

OC-SITE-C(config-ext-nacl)#deny ip 192.168.3.0 0.0.0.255 192.168.2.0 0.0.0.255

OC-SITE-C(config-ext-nacl)#permit ip 192.168.3.0 0.0.0.255 any

 

OC-SITE-C(config)#ip nat inside source list NAT interface gig 0/1/0 overload

Remarquez que dans l’ACL NAT, on interdit le flux du LAN 192.168.3.0/24 vers 192.168.1.0/24 et 192.168.2.0/24, ce qui est normal car ces flux doivent passer dans les VPN.

Vous allez devoir également actualiser l’ACL de NAT sur OC-SITE-A et OC-SITE-B : 

OC-SITE-A(config)#ip access-list extended NAT

OC-SITE-A(config-ext-nacl)#15 deny ip 192.168.1.0 0.0.0.255 192.168.3.0 0.0.0.255

 

OC-SITE-B(config)#ip access-list extended NAT

OC-SITE-B(config-ext-nacl)#15 deny ip 192.168.2.0 0.0.0.255 192.168.3.0 0.0.0.255

Vous avez sans doute remarqué un “15” avant l’ajout de l’état d’ACL. Ce 15 correspond au numéro de séquence, de base ce numéro de séquence va de 10 en 10, c’est à dire qu'à chaque fois que vous ajoutez une ligne dans votre ACL, elle a un numéro de séquence incrémenté de 10 en 10 : 10 20 30 40 etc… 

Si on souhaite ajouter une séquence d’interdiction avant la séquence qui autorise tout le reste à être traduit, il faut choisir un numéro de séquence inférieur au numéro de séquence qui autorise tout le reste du flux à être traduit, ce qui donne le résultat suivant quand vous affichez l’ACL : 

OC-SITE-A#show access-lists NAT

Extended IP access list NAT

deny ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255

deny ip 192.168.1.0 0.0.0.255 192.168.3.0 0.0.0.255

permit ip 192.168.1.0 0.0.0.255 any

 

OC-SITE-B#show access-lists NAT

Extended IP access list NAT

deny ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255

deny ip 192.168.2.0 0.0.0.255 192.168.3.0 0.0.0.255

permit ip 192.168.2.0 0.0.0.255 any

Comme vous pouvez le constater ci-dessus, la nouvelle séquence d’interdiction est correctement positionnée dans l’ACL.

Il faut ensuite créer les ACL dédiées à ce deuxième VPN : 

OC-SITE-C(config)#ip access-list extended C-TO-A

OC-SITE-C(config-ext-nacl)#permit ip 192.168.3.0 0.0.0.255 192.168.1.0 0.0.0.255

OC-SITE-C(config-ext-nacl)#exit

OC-SITE-C(config)#ip access-list extended C-TO-B

OC-SITE-C(config-ext-nacl)#permit ip 192.168.3.0 0.0.0.255 192.168.2.0 0.0.0.255

OC-SITE-C(config-ext-nacl)#exit

OC-SITE-A(config)#ip access-list extended A-TO-C

OC-SITE-A(config-ext-nacl)#permit ip 192.168.1.0 0.0.0.255 192.168.3.0 0.0.0.255

OC-SITE-B(config)#ip access-list extended B-TO-C

OC-SITE-B(config-ext-nacl)#permit ip 192.168.2.0 0.0.0.255 192.168.3.0 0.0.0.255

Activez le module SECURITY sur OC-SITE-C : 

 

OC-SITE-C(config)#license boot module c1900 technology-package securityk9

 Ensuite, configurez la première partie de la phase 1 sur OC-SITE-C, de la même façon que sur OC-SITE-A et OC-SITE-B : 

OC-SITE-C(config)#crypto isakmp policy 1

OC-SITE-C(config-isakmp)#authentication pre-share

OC-SITE-C(config-isakmp)#encryption aes 256

OC-SITE-C(config-isakmp)#hash sha

OC-SITE-C(config-isakmp)#group 5

OC-SITE-C(config-isakmp)#lifetime 21600

L’étape suivante consiste à créer une clé partagée entre OC-SITE-C et OC-SITE-A et une clé partagée entre OC-SITE-C et OC-SITE-B. Vous allez également configurer la clé OC-SITE-C OC-SITE-A sur OC-SITE-A et la clé OC-SITE-C OC-SITE-B sur OC-SITE-B : 

OC-SITE-C(config)#crypto isakmp key OpenClassR00m$IP5ecL@bCtoA address 62.59.1.1

OC-SITE-C(config)#crypto isakmp key OpenClassR00m$IP5ecL@bCtoB address 59.62.1.1

 

OC-SITE-A(config)#crypto isakmp key OpenClassR00m$IP5ecL@bCtoA address 80.59.62.1

 

OC-SITE-B(config)#crypto isakmp key OpenClassR00m$IP5ecL@bCtoB address 80.59.62.1

 

Vous devez ensuite configurer le TRANSFORM-SET sur OC-SITE-C : 

OC-SITE-C(config)#crypto ipsec transform-set OCSET esp-aes 256 esp-sha-hmac

 Une fois cette étape réalisée, vous allez devoir créer une séquence de CRYPTO MAP sur OC-SITE-A et OC-SITE-B pour établir le VPN avec OC-SITE-C : 

OC-SITE-A(config)#crypto map OCMAP 20 ipsec-isakmp

OC-SITE-A(config-crypto-map)#set peer 80.59.62.1

OC-SITE-A(config-crypto-map)#set transform-set OCSET

OC-SITE-A(config-crypto-map)#match address A-TO-C

OC-SITE-A(config-crypto-map)#set security-association lifetime seconds 3600

OC-SITE-B(config)#crypto map OCMAP 30 ipsec-isakmp

OC-SITE-B(config-crypto-map)#set transform-set OCSET

OC-SITE-B(config-crypto-map)#match address B-TO-C

OC-SITE-B(config-crypto-map)#set peer 80.59.62.1

OC-SITE-B(config-crypto-map)#set security-association lifetime seconds 3600

Configurez ensuite les deux numéros de séquence de CRYPTO MAP sur OC-SITE-C : 

OC-SITE-C(config)#crypto map OCMAP 20 ipsec-isakmp

OC-SITE-C(config-crypto-map)#set peer 62.59.1.1

OC-SITE-C(config-crypto-map)#set transform-set OCSET

OC-SITE-C(config-crypto-map)#match address C-TO-A

OC-SITE-C(config-crypto-map)#set security-association lifetime seconds 3600

OC-SITE-C(config-crypto-map)#exit

OC-SITE-C(config)#crypto map OCMAP 30 ipsec-isakmp

OC-SITE-C(config-crypto-map)#set peer 59.62.1.1

OC-SITE-C(config-crypto-map)#set transform-set OCSET

OC-SITE-C(config-crypto-map)#match address C-TO-B

OC-SITE-C(config-crypto-map)#set security-association lifetime seconds 3600

OC-SITE-C(config-crypto-map)#exit

Il suffit pour terminer d’appliquer la CRYPTO MAP sur l’interface gig 0/1/0 d’OC-SITE-C : 

OC-SITE-C(config)#int gig 0/1/0

OC-SITE-C(config-if)#crypto map OCMAP

PC3 dispose de l’adresse IP 192.168.3.1, envoyez un ping vers PC1 et un ping vers PC2 depuis PC3, vous devriez obtenir ce résultat : 

C:\>ping 192.168.1.1

 

Pinging 192.168.1.1 with 32 bytes of data:

 

Reply from 192.168.1.1: bytes=32 time<1ms TTL=126

Reply from 192.168.1.1: bytes=32 time=1ms TTL=126

Reply from 192.168.1.1: bytes=32 time<1ms TTL=126

Reply from 192.168.1.1: bytes=32 time<1ms TTL=126

 

Ping statistics for 192.168.1.1:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

Minimum = 0ms, Maximum = 1ms, Average = 0ms

C:\>ping 192.168.3.1

 

Pinging 192.168.3.1 with 32 bytes of data:

 

Reply from 192.168.3.1: bytes=32 time=3ms TTL=128

Reply from 192.168.3.1: bytes=32 time=4ms TTL=128

Reply from 192.168.3.1: bytes=32 time=9ms TTL=128

Reply from 192.168.3.1: bytes=32 time=1ms TTL=128

 

Ping statistics for 192.168.3.1:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

Minimum = 1ms, Maximum = 9ms, Average = 4ms

Les deux VPN fonctionnent ! 

Vous pouvez également vérifier le fonctionnement de la phase 1 vers OC-SITE-A ainsi que la phase 1 vers 

OC-SITE-B : 

OC-SITE-C#show crypto isakmp sa

IPv4 Crypto ISAKMP SA

dst src state conn-id slot status

62.59.1.1 80.59.62.1 QM_IDLE 1044 0 ACTIVE

59.62.1.1 80.59.62.1 QM_IDLE 1049 0 ACTIVE

 Vérifiez la phase 2 avec la commande show crypto ipsec sa :

 Tunnel OC-SITE-C - OC-SITE-A : 

#pkts encaps: 561, #pkts encrypt: 561

#pkts decaps: 561, #pkts decrypt

Tunnel OC-SITE-C - OC-SITE-B :

#pkts encaps: 449, #pkts encrypt: 449

#pkts decaps: 449, #pkts decrypt: 449

Vous venez de configurer un VPN IPSEC complet dans Cisco Packet Tracer — de la topologie réseau à l’établissement du tunnel sécurisé entre plusieurs sites. Vous avez appris à manipuler les commandes essentielles, à comprendre les phases IKE, à sécuriser les flux, et à tester vos configurations avec rigueur. Ce sont des compétences hautement valorisées dans le domaine des réseaux et de la cybersécurité. Prenez maintenant quelques minutes pour compléter le quiz final afin de valider vos acquis.

En résumé

  • La phase 1 du VPN IPSEC établit un canal sécurisé entre deux sites, grâce à une politique ISAKMP commune sur les deux routeurs (authentification par clé pré-partagée, chiffrement AES 256, hash SHA, groupe DH 5).

  • Une ACL dédiée permet de définir les flux devant passer dans le tunnel, tandis qu’un transform-set configure l’usage d’ESP pour le chiffrement et l’intégrité des données (AES + SHA).

  • La crypto map regroupe tous les éléments nécessaires au tunnel IPSEC (transform-set, ACL, peer, durée de SA), et s'applique sur l’interface publique du routeur. Chaque tunnel utilise un numéro de séquence différent.

  • Le protocole Diffie-Hellman permet de générer une clé partagée sans l’échanger, assurant ainsi un haut niveau de sécurité. L’option PFS renforce encore cette sécurité en forçant un nouvel échange DH à chaque renouvellement de clé.

  • L'ajout d’un troisième site (OC-SITE-C) implique de créer de nouvelles ACL, crypto maps et clés partagées, ainsi que de mettre à jour les ACL de NAT existantes. Chaque routeur peut ainsi gérer plusieurs tunnels IPSEC en parallèle.

Bonne chance, et bravo pour votre engagement tout au long du cours !

Ever considered an OpenClassrooms diploma?
  • Up to 100% of your training program funded
  • Flexible start date
  • Career-focused projects
  • Individual mentoring
Find the training program and funding option that suits you best