Vous êtes sur la page 1sur 21

Master Génie logiciel & Réseaux – 2ème Année 2022-2023

VPN ET PROTOCOLES DE SECURITE


TP n°4.2 :
Les VPNs

1.1 Présentation d’IPSec


1.1.1 Définition et objectifs
IP Security (IPSec) a été développé pour fournir des services de cryptographie au niveau de la couche
Réseau (niveau 3 du modèle OSI). Il supporte de façon flexible des combinaisons de :
- Authentification
- Intégrité
- Confidentialité des données
- le contrôle d’accès

Un système conforme à IPSec peut :


- Choisir des protocoles de sécurité
- Déterminer les algorithmes à utiliser pour les services
- Utiliser les clés cryptographiques et les certificats

1.1.2 Les associations de sécurité

Une association de sécurité ou SA (Security Association) est une connexion logique unilatérale entre un
émetteur et un récepteur
➢ Ainsi, pour qu’une communication bilatérale entre deux systèmes IPSec soit possible il faut qu’’une
SA soit définie dans chaque direction.

SA #1

SA #2

Les SA sont identifiées uniquement par < Index de paramètre de sécurité, Adresse IP de destination,
Protocole de sécurité AH/ESP>
- Un Index de paramètre de sécurité appelé SPI (Security Parameter Index) qui est une valeur de 32
bits identifiant la SA de chaque paquet. Il se trouve dans l’en-tête sécurité du protocole

La Security Association Database (SAD) définit les paramètres associés avec chaque SA . Les paramètres
incluent selon l’implémentation :
- Un compteur de numéro de Séquence (Sequence Number Counter)
- Un indicateur d’overflow (Sequence Counter Overflow)
- Une fenêtre anti-rejeu (Anti-replay window)
- L’information AH (AH information, nécessaire pour implémenter AH)
- L’information ESP (ESP information, nécessaire pour implémenter ESP)
- La durée de vie de SA (SA Lifetime)
- Le mode de protocole IPSec (IPSec Protocol Mode)
- Le MTU sur le chemin (Path MTU)

1.1.3 La politique de sécurité

Le trafic IP est rattaché à une SA spécifique utilisant la Security Policy Database (SPD)
Chaque entrée de SPD est définie par un ensemble de valeurs de champs des protocoles IP et des couches
supérieures, appelées des sélecteurs
Master Génie logiciel & Réseaux – 2ème Année 2022-2023
Ces sélecteurs qui déterminent une entrée SPD comprennent
- Adresse IP Source et Destination + netmask
- UserID
- Protocole de la couche Transport
- Ports Source et Destination
- IPv4 Type Of Service (TOS)

Il existe deux types de transformations de données pour IPSec : Authentification Header (AH) et
Encapsulating Security Payload (ESP).

Authentification Header (AH) : AH est utilisé pour assurer l’intégrité et l’authentification des paquets IP
- L’intégrité des données assure que des modifications non détectées du contenu d’un paquet en transit
ne sont pas possibles
- L’authentification permet à une extrémité d’authentifier la machine
- Un service de protection contre le rejeu doit être mis en œuvre par un système compatible IPSec
- Son utilisation est optionnelle
- AH est un en-tête séparé qui suit l’en-tête IP
- Il authentifie le plus de champs IP possibles (les champs ‘non mutables’)
- Ne passe pas le NAT
- AH est identifié par le numéro de protocole 51
Le format d’en- tête AH est le suivant :

- En-tête suivant : identifie le type de charge après AH


- Longueur de la charge : contient la longueur du champ Données d’authentification
- Données d’authentification : champ de longueur variable contenant la valeur de contrôle
d’intégrité (Integrity Check Value, ICV) pour le paquet
✓ Utilisé par le destinataire pour vérifier l’intégrité du paquet entrant
✓ Généré à partir du contenu de l’en-tête et des données du paquet
✓ Calculé avec l’algorithme sélectionné au moment de l’initialisation de la SA
- Les algorithmes par défaut nécessaires pour l’interopérabilité sont HMAC with MD5, HMAC with
SHA-1
L’en-tête AH peut être utilisé de deux manières différentes :
- Mode transport : utilisé par les machines clientes vers des serveurs de bout en bout

- Mode tunnel : utilisé entre des passerelles


Master Génie logiciel & Réseaux – 2ème Année 2022-2023

1.1.4 Encapsulating Security Payload (ESP)

ESP est utilisé pour permettre la confidentialité, l’intégrité des données et l’Authentification.

- Le champ ''Données Utilisateur'' est composé d’un nombre variable d’octets de données décrits par le
champ "En-tête suivant". Il est chiffré avec l’algorithme cryptographique sélectionné au cours de
l’établissement de la SA
- Auth ESP à partir de ESPv2

Comme avec AH, ESP peut être utilisé de deux manières différentes :
- Mode transport

- Mode tunnel
Master Génie logiciel & Réseaux – 2ème Année 2022-2023

1.1.5 Internet Key Exchange (IKE)


Le protocole Internet Key Exchange (IKE) est un protocole de gestion de clé utilisé par IPSec.
IKE est composé de :
- ISAKMP (Internet Security Association and Key Management Protocol): cadre générique qui
permet l'utilisation de plusieurs protocoles d'échange de clé. Il a pour but la négociation,
l'établissement, la modification et la suppression des associations de sécurité et de leurs
attributs
- Oakley / SKEME (Secure Key Exchange Mechanism) : permet le partage, de façon sûre entre
les tiers, d'un ensemble d'informations relatives au chiffrement à savoir la clé secrète, les
identités des tiers, les algorithmes de chiffrement , d'authentification et la fonction de hachage .
- IPSEC DOI (Domain Of Interpretation ) rfc 2407 : Spécifie des paramètres des échanges
ISAKMP et indique que ce dernier travaille pour IPSec car ISAKMP peut être utilisé pour
d'autres mécanismes de sécurité que ceux de IPSec.

IKE assure une gestion sécurisée des clés et l’échange des clés cryptographiques :
- Authentification des homologues IPSec
- Négociation des clés IPSec
- Négociation des associations de sécurité (SA) IPSec

Relation entre IPSec , SAD, SPD

IKE démarre donc avant IPSec :


- On a un tunnel IKE en premier,
- puis un tunnel IPSec ensuite (ce dernier étant issu des négociations IKE préalables).

Phase 1 d’IKE = ISAMP :

- Les sessions ISAKMP utilisent UDP (source & destination port = 500)
✓ résultats de l’établissement d’une session ISAKMP sont des SAs ISAKMP bidirectionnelles
- Méthode d’échange des clefs ;
Master Génie logiciel & Réseaux – 2ème Année 2022-2023
- Méthode d’authentification des peers : clé partagée (pre-
shared Key) ou certificats numérique authentifié par une signature RSA et chiffrement ;
- L’algorithme principal de cette phase est DiffieHellman.
- Détermination de la politique ISAKMP ⇔ IPSEc SA : Pour qu’il y ait communication
IPSec possible, il faut que les 2 peers trouvent un accord sur une politique ISAKMP
commune. Une politique ISAKM contient :
✓ Algorithme d’encryption : DES / 3DES
✓ Algorithme de hachage : MD5/SHA-1
✓ IKE SA Life time = durée de vie des SA IKE : 86400 secondes au moins
Phase 2 d’IKE :
- Négociation des algorithmes IPSec = transformset : ESP DES, …
✓ Cette négociation est protégée grâce à la SA IKE prédéfinie
- Identification des peers par adresse IP ou nom ;
- Détermination des adresses IP des hôtes qui doivent communiquer en crypté ;
- Etablissement des IPSec SA soit de manière manuelle (pas conseillé), soit via IKE
(conseillé). Dans ce dernier cas, il faut spécifier ipsecisakmp.
✓ Ces IPSec SA sont périodiquement renégociées afin d’augmenter le niveau de sécurité ;
✓ On peut forcer le fait que les clefs de sessions IPSec seront nouvelles à
chaque fois, ou simplement dérivées des clefs négociées en IKE Phase 1.
- Le contenu d’une IPSec SA est le suivant :
✓ Adresse IP du peer d’en face ;
✓ Identifiant du VPN (SPI = Security Parameter Index)
✓ Algorithme IPSec : AH / ESP + rien ou HMACMD5/HMCSHA1 ;
✓ Mode (Tunnel ou Transport) :
✓ Clef de session

1.2 Pratique d’IPSec : Mise en place d’un VPN Site-à-site

1.2.1 Objectif
Mettre en œuvre les différentes phases de configuration d’un routeur Cisco pour la mise en place
d’un tunnel IPSec entre deux réseaux locaux via deux routeurs Cisco.

1.2.2 Travail à faire

Soit la topologie donnée ci-dessous. Le trafic à sécuriser correspond aux données échangées entre
les deux réseaux 192.168.2.0/24 (Agence HongKong) et 10.10.0.0/16 (Agence Abidjan), les hôtes
IPSec (peer) possédant les deux interfaces series en 1.1.1.1/28 (ABIDJAN) et 2.2.2.1 (Hong Kong).
Master Génie logiciel & Réseaux – 2ème Année 2022-2023

A. CONFIGURATION DES PARAMETRES IP

1. Donnez des adresses IP à chaque routeur et PC

2. Configurez les routes et faites des tests de connectivité entre les PC

B. Configuration d’IPSec sur les deux routeurs.

La configuration du chiffrement se passe en deux étapes :


- Configuration d’IKE
- Configuration d’IPSec

Etape 1 : Configuration d’IKE

IKE (Internet Key Exchange) va se charge d’établir les contextes de sécurisation entre chaque peer
IPsec

1.1 Configuration de la politique d’IKE


Master Génie logiciel & Réseaux – 2ème Année 2022-2023
(config)#crypto isakmp policy 1
(config-isakmp)# encryption des
(config-isakmp)# authentication rsa-encr
(config-isakmp)# hash md5
(config-isakmp)# group 1
// Group 1 = identifiant de Diffie Hellman en 768 bits
(config-isakmp)# lifetime 86400
// modifie la durée de vie du SA IKE (en secondes)
// valeur par defaut = 24h = 86400 secondes

Sur le routeur d’Abidjan


ABIDJAN(config)#crypto isakmp policy 1
ABIDJAN(config-isakmp)#encryption des
ABIDJAN(config-isakmp)#authentication rsa-encr
ABIDJAN(config-isakmp)#hash md5
ABIDJAN(config-isakmp)#group 1
ABIDJAN(config-isakmp)#lifetime 86400
ABIDJAN(config-isakmp)#exit
ABIDJAN(config)#

Sur le routeur de Hong Kong


HONGKONG(config)#crypto isakmp policy 1
HONGKONG(config-isakmp)#encryption des
HONGKONG(config-isakmp)#authentication rsa-encr
HONGKONG(config-isakmp)#hash md5
HONGKONG(config-isakmp)#group 1
HONGKONG(config-isakmp)#lifetime 86400
HONGKONG(config-isakmp)#exit
HONGKONG(config)#

1.2 Activation des keepalive IKE

Le mécanisme de keepalive IKE, propriétaire CISCO, permet de s’assurer que le peer IPsec distant
avec lequel on a établi un tunnel est disponible/ Le keepalive permet de garantir un temps maximal
de remontée des tunnels IPsec après le crash d’un peer IPsec distant.

(config)# crypto isakmp keepalive 60


// keepalive de 60 secondes

Sur le routeur d’Abidjan


ABIDJAN(config)#crypto isakmp keepalive 60
ABIDJAN(config)#

Sur le routeur de Hong Kong


HONGKONG(config)#crypto isakmp keepalive 60
HONGKONG(config)#
Master Génie logiciel & Réseaux – 2ème Année 2022-2023
1.3 Saisie d’un nom de domaine s’il n’en existe pas déjà

Il faut un nom de domaine pour générer les bi-clés RSA

(config)# ip domain-name kadjo.lab

Sur le routeur d’Abidjan


ABIDJAN(config)#ip domain-name abidjan.kadjo.lab
ABIDJAN(config)#

Sur le routeur de Hong Kong


HONGKONG(config)#ip domain-name hongkong.kadjo.lab
HONGKONG(config)#

1.4 Identification du routeur par son adresse IP

(config)# crypto isakmp identity address

Sur le routeur d’Abidjan


ABIDJAN(config)#crypto isakmp identity address
ABIDJAN(config)#

Sur le routeur de Hong Kong


HONGKONG(config)#crypto isakmp identity address
HONGKONG(config)#

1.5 Génération d’une bi-clé RSA sur le routeur (clé privée + clé publique)

(config)# crypto key generate rsa


// prendre un modulo de 512 bits comme propose par défaut.

Sur le routeur d’Abidjan


ABIDJAN(config)#crypto key generate rsa
The name for the keys will be: ABIDJAN.abidjan.kadjo.lab
Choose the size of the key modulus in the range of 360 to 4096 for your
General Purpose Keys. Choosing a key modulus greater than 512 may take
a few minutes.
How many bits in the modulus [512]: 2048
% Generating 2048 bit RSA keys, keys will be non-exportable...
[OK] (elapsed time was 18 seconds)

ABIDJAN(config)#

Sur le routeur de Hong Kong


HONGKONG(config)#crypto key generate rsa
The name for the keys will be: HONGKONG.hongkong.kadjo.lab
Choose the size of the key modulus in the range of 360 to 4096 for your
General Purpose Keys. Choosing a key modulus greater than 512 may take
a few minutes.
Master Génie logiciel & Réseaux – 2ème Année 2022-2023
How many bits in the modulus [512]: 2048
% Generating 2048 bit RSA keys, keys will be non-exportable...
[OK] (elapsed time was 27 seconds)

HONGKONG(config)#

1.6 Apprendre les clés publiques des autres routeurs (routeurs peers)

(config)# crypto key pubkey-chain rsa


(config-pubkey-chain)# addressed-key <@LoopbackPeer>
(config-pubkey-key)# key-string
// Après la touché ENTER, le routeur attend qu’on lui entre par COPIER-COLLER,
// la clé publique du peer.
// La clé publique du routeur peer se visualise par la commande saisie sur le peer
// # show crypto key mypubkey rsa

(config-pubkey-key)# <COPIER-COLLER + ENTER>


// Le fait que le COPIER-COLLER rajoute des retours chariot et que la clé soit
// ainsi sur plusieurs lignes successive n’est pas gênant.

(config-pubkey-key)# quit
// fin de la saisie de la clé publique du peer en question
(config-pubkey-key)# ^Z

Cette opération est à répéter autant de fois que le routeur a de routeurs peers avec lesquels il va
établir des communications IPsec.

Sur le routeur de Hong Kong


Master Génie logiciel & Réseaux – 2ème Année 2022-2023

Sur le routeur d’Abidjan


ABIDJAN(config)#crypto key pubkey-chain rsa
ABIDJAN(config-pubkey-chain)#addressed-key 2.2.2.1
ABIDJAN(config-pubkey-key)#key-string
Enter a public key as a hexidecimal number ....

ABIDJAN(config-pubkey)#$864886 F70D0101 01050003 82010F00 3082010A 02820101


ABIDJAN(config-pubkey)#$089F48C 55378347 7885E280 CF0B8792 8EE548B7 36B0222A
ABIDJAN(config-pubkey)#$20ECC53 7B8FF7F0 22E82831 C9060425 99C9D5B1 83F1E166
ABIDJAN(config-pubkey)#$6F91353 F45E60A9 2B19D38B 4C774BCE 8F72FFCB 865CA1B7
ABIDJAN(config-pubkey)#$211CE66 B991C282 A928AEEE 004E7184 83753691 EBFA8586
ABIDJAN(config-pubkey)#$3B68291 A2FB018B 93C82B8C C18734E6 A74233C8 8D51AC6A
ABIDJAN(config-pubkey)#$D9085A0 BB1BEB67 FDA54951 19A3D7F9 1FF683DF 1983E3C6
ABIDJAN(config-pubkey)#$0BE22D6 2E02D994 EDD6EEAF 8133F2A5 0E451030 D564F751
ABIDJAN(config-pubkey)#$D666F5B DC613776 EF021618 D9ED6BA3 33CA39F9 FBFFC47F
ABIDJAN(config-pubkey)# 83020301 0001
ABIDJAN(config-pubkey)#quit
ABIDJAN(config-pubkey-key)#exit
ABIDJAN(config-pubkey-chain)#exit
ABIDJAN(config)#
Master Génie logiciel & Réseaux – 2ème Année 2022-2023

Sur le routeur d’Abidjan


Master Génie logiciel & Réseaux – 2ème Année 2022-2023
Sur le routeur de Hong Kong

Etape 2 : Configuration d’IPsec

Maintenant que les tunnels peuvent etre initialisés par IKE, IPSec prend la suite de IKE : il chiffre
les données utilisateur, grâce aux contextes négociés par IKE. Quatre étapes sont nécessaires pour
configurer IPSec.

2.1 Créer une crypto access-list


Le rôle de la crypto access-list est de déterminer sur quel trafic le moteur IPSec (chiffrement-
déchiffrement) sera activé.
L’emploi du mot ANY est interdit dans ces crypto access-lists

(config)# access-list 100 permit ip <IP_ReseauPeerLocal UmaskReseauLocal> <ReseauDuPeerDistant


UmaskReseauDistant>
// les extrémités IPsec ne sont pas specifies dans les crypto ACL,
// seuls les LAN utilisateurs à sécuriser y sont spécifiés.
// La crypto ACL d’un peer IPsec doit etre le miroir de celle du peer IPSec distant.
Sinon, il y a un risque de ne pas pouvoir établir de SA IKE.

Sur le routeur d’Abidjan


ABIDJAN(config)# access-list 100 permit ip 10.10.0.0 0.0.255.255 192.168.2.0 0.0.0.255
Master Génie logiciel & Réseaux – 2ème Année 2022-2023

Sur le routeur de Hong Kong


HONGKONG(config)#access-list 100 permit ip 192.168.2.0 0.0.0.255 10.10.0.0 0.0.255.255

2.2 créer un Transform Set

Les Transform Sets servent à spécifier quels algorithmes de chiffrement et d’authentification le


routeur peut utiliser.

Il faut au moins un Transform Set qui comprend un algorithme de chiffrement et un algorithme


d’authentification. Ils sont distingués par le nom qu’on leur donne.
Les Transform Set seront négociés lors du début de chaque communication.

(config)# crypto ipsec transform-set MONSET esp-des esp-md5-hmac


// Cette commande crée le Transform-Set nommé MONSET qui utilise le DES
// pour le chiffrement et la variante HMAC de la fonction de hash MD5.
(cfg-crypto-trans)# mode tunnel
// Cette commande spécifie qu’on utilise IPsec en mode tunnel.

Sur le routeur d’Abidjan

Sur le routeur de Hong Kong

2.3 Créer une crypto map


Une crypto map rassemble les éléments principaux suivants :
- Les crypto ACLs
- Les peers IPsec distants
- Les Transform Sets à utiliser

Il faut une crypto map (un seul nom) mais avec autant d’entrées qu’il ya de peers IPsec distants.
Chaque entrée est différenciée par un numéro d’instance différent.
Dans le cas où un routeur possède deux peers distants IPSec, la crypto map nommée MAMAP aura
la structure suivante :

(config)# crypto map MAMAP 10 ipsec-isakmp


Master Génie logiciel & Réseaux – 2ème Année 2022-2023
(config-cryptomap)# set peer <@LoppbackPeerIPsecDistant1>
(config-cryptomap)# match address 100
(config-cryptomap)# set transform-set MONSET
(config-cryptomap)# set pfs group1

(config)# crypto map MAMAP 20 ipsec-isakmp


(config-cryptomap)# set peer <@LoppbackPeerIPsecDistant2>
(config-cryptomap)# match address 101
(config-cryptomap)# set transform-set MONSET
(config-cryptomap)# set pfs group1

Sur le routeur d’Abidjan

Sur le routeur de Hong Kong


Master Génie logiciel & Réseaux – 2ème Année 2022-2023

2.4 Appliquer la crypto map à une interface

Dans la figure donnée, on a à appliquer la crypto map à une interface série.

(config)# interface serial 0


(config-if)# crypto map MAMAP
// Le routeur déterminera quelle instance de la crypto map utiliser en
// scrutant de façon séquentielle les crypto ACLs

Sur le routeur d’Abidjan

Sur le routeur de Hong Kong

2.5 Modifier la durée de vie des SA IPsec


On peut modifier la durée de vie des SA IPsec de façon globale ou pour une crypto map en
particulier.
2.5.1 Modifier de façon globale

(config)# crypto ipsec security-association lifetime seconds 3600


// durée en seconds: ici 3600 secondes par défaut, 86400 au maximum

Sur le routeur d’Abidjan

Sur le routeur de Hong Kong


Master Génie logiciel & Réseaux – 2ème Année 2022-2023

2.5.2 Modifier la durée de vie du SA IPSec pour une crypto map précise

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


// durée en seconds: ici 3600 secondes par défaut

Etape 3 : Vérification de la configuration

Au début de chaque communication, IKE et IPSec vont négocier des contextes (SA). Ils vont
prendre en compte les différents paramètres avec lesquels ils peuvent fonctionner.
Une SA prend 20 secondes pour être établie sur un C2500 et un C3640. Il faut 10 secondes sur
un C4700 et un C7200. Ce qui veut dire que le premier échange sécurisé ne sera pas immédiat :
au moins 10 secondes de retard. Ensuite, une fois que la SA est initialisée, les échanges ne
souffrent plus de ce décalage.
Pour tester une configuration IPsec, on peut amorcer la SA en générant des PING étendus.

Attention, pour initialiser la SA, il faut spécifier une adresse source et une adresse destination
qui soient susceptibles d’être chiffrées, donc qui correspondent à la crypto access-list. On utilise
pour cela la commande ping étendue avec une adresse destination et une adresse source qui
matchent la crypto access-list.

3.1 Pour s’assurer que les tunnels IPsec sont montés et que le trafic est correctement traité
(authentifié ou chiffré), on dispose de la commande :

Routeur# show crypto engine connections active

Les compteurs indiquent le nombre de parquets qui sont traits par IPsec.
Master Génie logiciel & Réseaux – 2ème Année 2022-2023

3.2 En cas de problèmes

En cas de messages d’erreurs IPsec, le problème le plus probable est une erreur dans la
définition des access-lists. Vérifier alors la commande

Routeur# show access-lists

Si les compteurs sont incrémentés sur les deux routeurs peers.


Master Génie logiciel & Réseaux – 2ème Année 2022-2023
Si elles sont correctes, vérifier les paramètres IKE et IPsec configurés.

Les deux commandes suivantes permettent d’effacer tous les contextes IKE et IPsec qui ont été
crées sur les deux routeurs peers :

Routeur# clear crypto isakmp


Routeur# clear crypto sa

On peut suivre le déroulement de la montée des tunnels IPsec avec les debugs suivants :
Master Génie logiciel & Réseaux – 2ème Année 2022-2023

Routeur#debug crypto engine


Routeur#debug crypto isakmp
Routeur#debug crypto ipsec
Master Génie logiciel & Réseaux – 2ème Année 2022-2023

Les messages sont complètement chiffrés


Master Génie logiciel & Réseaux – 2ème Année 2022-2023

Vous aimerez peut-être aussi