S3L5 Ipsec exportVM

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 11

TP VPN IPsec ∗†

Isabelle Chrisment, Maryline Laurent, Marwan Lazrag et Souha Masmoudi


Janvier 2020

1 Introduction
Une entreprise est située sur deux sites distants. Les réseaux privés associés LAN1 et LAN2
sont interconnectés à Internet, comme le montre la Figure 1. Le réseau LAN 2 héberge un ser-
veur http et les clients des réseaux LAN1 et LAN2 accèdent à Server. L’entreprise souhaite
configurer un VPN IPsec site-à-site entre les firewalls F w1 et F w2 pour permettre à un employé
du LAN1 de se connecter au serveur du LAN2 de façon sécurisée.

L’objectif du TP est de tester les différents outils de configuration de la suite de protocoles


IPsec (IKEv1, AH, ESP).

Figure 1 – Architecture réseau

Le TP est découpé en 3 parties : Configuration de IPsec en mode statique entre F w1 et F w2


(AH et ESP en mode tunnel), configuration de IPsec en mode dynamique entre F w1 et F w2
(IKE pre-shared-key + ESP en mode tunnel) et configuration de IPsec en mode dynamique
entre Client et Server (IKE pre-shared-key + ESP en mode transport).
Voici un sous-ensemble des outils logiciels disponibles sur les équipements réseaux dont nous
aurons besoin pendant le TP :
• Client : navigateur web (firefox), ipsec-tools, racoon
• Server http : apache2, ipsec-tools, racoon
• F w1 : wireshark, ipsec-tools, racoon
• F w2 : wireshark, ipsec-tools, racoon
∗ réalisé
dans le cadre du MOOC sécurité des réseaux financé par le projet ANR FLIRT et la fondation DRAHI
† Thislab named ipsec is licensed by Isabelle Chrisment, Maryline Laurent, Souha Masmoudi and Marwan
Lazrag under the Creative Commons Attribution-NonCommercial 4.0 International License. To view a copy of
this license, visit https://creativecommons.org/licenses/by-nc/4.0/ or send a letter to Creative Commons, PO
Box 1866, Mountain View, CA 94042, USA.

1
ATTENTION au copier-coller des configurations du TP qui nécessite d’adapter les
guillemets

2 Lancement du TP
Dans la machine virtuelle Labtainers, lancez le TP de la manière suivante à partir du réper-
toire courant (~/labtainer/labtainer-student) :

1. Lancez les conteneurs labtainers via la commande : labtainer ipsec

3 Configuration de IPsec en mode statique entre F w1 et F w2


L’idée dans cette partie est de configurer les sous protocoles AH puis ESP en mode tunnel.

3.1 Configuration de AH en mode tunnel


Pour configurer IPsec en AH mode tunnel, il faut éditer le fichier ” /etc/ipsec-tools.conf ”
comme suit :

@f w1,@f w2$sudo nano /etc/ipsec-tools.conf

Ce fichier contient la politique de sécurité et les associations de sécurité de niveau IP à acti-


ver. La politique de sécurité pour AH se présente de la façon suivante :

@f w1
# !/usr/sbin/setkey -f
flush ;
spdflush ;
add 172.20.0.1 172.20.0.3 ah 0x200 -m tunnel -A hmac-sha1 “hmacsha1authenticati”;
add 172.20.0.3 172.20.0.1 ah 0x300 -m tunnel -A hmac-sha1 “12345678910111213141”;
spdadd 172.25.0.0/16 172.35.0.0/16 any -P out ipsec
ah/tunnel/172.20.0.1-172.20.0.3/require ;
spdadd 172.35.0.0/16 172.25.0.0/16 any -P in ipsec
ah/tunnel/172.20.0.3-172.20.0.1/require ;

@f w2
# !/usr/sbin/setkey -f
flush ;
spdflush ;
add 172.20.0.1 172.20.0.3 ah 0x200 -m tunnel -A hmac-sha1 “hmacsha1authenticati”;
add 172.20.0.3 172.20.0.1 ah 0x300 -m tunnel -A hmac-sha1 “12345678910111213141”;
spdadd 172.25.0.0/16 172.35.0.0/16 any -P in ipsec
ah/tunnel/172.20.0.1-172.20.0.3/require ;
spdadd 172.35.0.0/16 172.25.0.0/16 any -P out ipsec
ah/tunnel/172.20.0.3-172.20.0.1/require ;

? add : sert à définir une association de sécurité SA dans la base SAD (Security association
Database).
? spdadd : sert à ajouter une politique de sécurité dans la SPD (Security Policy Database).

2
Lancez la mise à jour de la politique de sécurité pour la prise en compte par la pile protocolaire
de F w1 et F w2 :

@f w1,@f w2$sudo /etc/init.d/setkey restart

Vérifiez que cette politique est bien prise en compte par la pile de protocoles :

@f w1,@f w2$sudo setkey -D

D’autres options de la commande setkey existent, en particulier setkey − DP qui permet de


dumper les bases de donnes SAD et SPD. Pour plus de précisions, se référez au man de la
commande.
@f w1$man setkey
Q1 : A quoi correspondent les informations 0x200 et 0x300 dans le fichier de configuration ?
[2 bonnes réponses]

a) SPI
b) Numéro de séquence
c) Identifiant de l’association de sécurité
d) Code d’authentification du message
Q2 : Que signifie la politique de sécurité ” spdadd 172.25.0.0/16 172.35.0.0/16 any -P in ipsec
ah/tunnel/172.20.0.1-172.20.0.3/require ; ” [1 bonne réponse]

a) Tout paquet provenant du sous-réseau 172.35.0.0/16 à destination du sous-réseau 172.25.0.0/16


devra utiliser le sous-protocole AH d’IPsec en créant un tunnel entre les 2 passerelles
d’adresse 172.20.0.1 et 172.20.0.3.
b) Tout paquet provenant du sous-réseau 172.25.0.0/16 à destination du sous-réseau 172.35.0.0/16
devra utiliser le sous-protocole ESP d’IPsec en créant un tunnel entre les 2 passerelles
d’adresse 172.20.0.1 et 172.20.0.3.
c) Tout paquet provenant du sous-réseau 172.25.0.0/16 à destination du sous-réseau 172.35.0.0/16
devra utiliser le sous-protocole AH d’IPsec en créant un tunnel entre les 2 passerelles
d’adresse 172.20.0.1 et 172.20.0.3.
d) Tout paquet provenant de l’adresse 172.20.0.1 à destination de l’adresse 172.20.0.3 devra
utiliser le sous-protocole ESP d’IPsec en créant un tunnel entre les 2 passerelles d’adresse
172.25.0.2 et 172.35.0.4.
Lancez Wireshark sur F w1 sur l’interface côté réseau public (eth1). Vous pouvez vérifier
l’interface en tapant if conf ig où vous verrez l’association entre les adresses IP et les numéros
d’interfaces (eth0, eth1).
@f w1$wireshark -ki eth1 &
Puis à partir du Client (fenêtre terminal Client), lancez firefox (firefox &) et connectez-vous
en http sur Server.
@Client Firefox : http ://172.35.0.4/login.html
NB : Utilisez le login ”Securite” et le mot de passe ”Securite”.

Visualisez sur wireshark les traces obtenues. Il est conseillé de cliquer sur le paquet que vous
souhaitez analyser et de regarder le détail de son contenu. Vous devez observer la présence de
l’entête Authentication Header.

3
Q3 : Quelle figure décrit l’encapsulation du sous-protocole AH en mode tunnel ?

a)

b)

c)

Q4 : Quels mode et protocole d’IPsec peuvent être utilisés pour sécuriser les communications
entre deux réseaux locaux distants [2 bonnes réponses]

a) ESP mode tunnel


b) AH mode transport
c) AH mode tunnel
d) ESP mode transport

3.2 Configuration de ESP en mode tunnel


Les employés ont constaté que leurs données d’authentification sont échangées en clair et
risquent d’être volées. L’entreprise décide alors de recourir au sous-protocole ESP afin de chif-
frer le trafic échangé. Pour ce faire, éditez de nouveau le fichier de configuration ” /etc/ipsec-
tools.conf ” comme suit :

@f w1
# !/usr/sbin/setkey -f
flush ;
spdflush ;
add 172.20.0.1 172.20.0.3 esp 0x201 -m tunnel -E 3des-cbc “secretsecretsecretsecret” -A
hmac-sha1 “hmacsha1authenticati”;
add 172.20.0.3 172.20.0.1 esp 0x301 -m tunnel -E 3des-cbc “autresecretautresecretau”
-A hmac-sha1 “12345678910111213141”;
spdadd 172.25.0.0/16 172.35.0.0/16 any -P out ipsec
esp/tunnel/172.20.0.1-172.20.0.3/require ;
spdadd 172.35.0.0/16 172.25.0.0/16 any -P in ipsec
esp/tunnel/172.20.0.3-172.20.0.1/require ;

@f w2
# !/usr/sbin/setkey -f
flush ;
spdflush ;
add 172.20.0.1 172.20.0.3 esp 0x201 -m tunnel -E 3des-cbc “secretsecretsecretsecret” -A
hmac-sha1 “hmacsha1authenticati”;
add 172.20.0.3 172.20.0.1 esp 0x301 -m tunnel -E 3des-cbc “autresecretautresecretau”
-A hmac-sha1 “12345678910111213141”;
spdadd 172.25.0.0/16 172.35.0.0/16 any -P in ipsec
esp/tunnel/172.20.0.1-172.20.0.3/require ;
spdadd 172.35.0.0/16 172.25.0.0/16 any -P out ipsec
esp/tunnel/172.20.0.3-172.20.0.1/require ;

4
Relancez wireshark sur F w1.
Relancez la mise à jour sur les deux firewalls.
A partir du Client, connectez-vous en http sur Server.

Q5 : Quels sont les paramètres d’une règle IPsec ? [2 bonnes réponses]

a) Les adresses IP
b) Les types de connexion
c) Types de systèmes d’exploitation
d) RAM requise
Q6 : A quoi servent les éléments ” spdflush ” et ” flush ” dans le fichier de configuration ?
Utilisez la commande en ligne man pour répondre à la question. [2 bonnes réponses]

a) Créer une nouvelle association de sécurité


b) S’assurer que le client ne dispose d’aucune association de sécurité
c) Supprimer toutes les entrées de SAD
d) Ajouter une association de sécurité
e) Supprimer toutes les entrées de SPD
Q7 : Comment le protocole IPsec permet d’assurer la protection contre le rejeu ? [1 bonne
réponse]

a) Grâce au numéro de séquence


b) Grâce au SPI
c) Grâce aux fonctions de routage
d) Grâce au code d’authentification de message
Q8 : Quelles sont les informations visualisées sur Wireshark dans l’en-tête ESP ? [2 bonnes
réponses]

a) Condensé des données


b) SPI
c) Cryptogramme des données
d) Numéro de séquence

4 Configuration de IPsec en mode dynamique entre F w1 et F w2


(IKE pre-shared-key + ESP en mode tunnel)
L’un des employés a proposé de basculer vers le mode dynamique de IPsec c’est-à-dire
utiliser le protocole IKE pour authentifier les deux extrémités du tunnel. Dans cette partie,
le protocole IKE repose sur l’utilisation d’une clé pré-partagée qui se trouve dans le fichier
”/etc/racoon/psk.txt”. Editez le fichier pour le modifier comme suit :
@f w1

5
172.20.0.3 moocsecureseaumoocsecu

@f w2

172.20.0.1 moocsecureseaumoocsecu

4.1 Configuration de racoon


Le protocole IKE mis en œuvre par le logiciel racoon comprend deux phases pour l’établis-
sement du tunnel. Tous les éléments de la politique de sécurité des deux phases sont contenus
dans le fichier ” /etc/racoon/racoon.conf ”.
Regardez le man de racoon pour comprendre la syntaxe du fichier.

Editez ce fichier afin d’obtenir la configuration suivante :


@f w1
log notify ;
path pre shared key “/etc/racoon/psk.txt”;
remote 172.20.0.3 {
exchange mode main,aggressive ;
lifetime time 24 hour ;
proposal {
encryption algorithm 3des ;
hash algorithm sha1 ;
authentication method pre shared key ;
dh group modp2048 ;
}
}
sainfo address 172.25.0.0/16 any address 172.35.0.0/16 any {
pfs group modp2048 ;
lifetime time 1 hour ;
encryption algorithm aes ;
authentication algorithm hmac sha1 ;
compression algorithm deflate ;
}

6
@f w2
log notify ;
path pre shared key “/etc/racoon/psk.txt”;
remote 172.20.0.1 {
exchange mode main,aggressive ;
lifetime time 24 hour ;
proposal {
encryption algorithm 3des ;
hash algorithm sha1 ;
authentication method pre shared key ;
dh group modp2048 ;
}
}
sainfo address 172.35.0.0/16 any address 172.25.0.0/16 any {
pfs group modp2048 ;
lifetime time 1 hour ;
encryption algorithm aes ;
authentication algorithm hmac sha1 ;
compression algorithm deflate ;
}

? path pre shared key : sert à spécifier le chemin dans lequel se trouve la clé pré-partagée.
? remote : sert à spécifier les algorithmes utilisés pendant la phase 1 du protocole IKE.
? proposal : sert à décrire les algorithmes utilisés.
? exchange mode : sert à décrire le mode d’échange de la phase 1. En effet, il existe trois
modes : main, base et aggressive.
? encryption algorithm : sert à décrire l’algorithme de chiffrement utilisé dans la phase 1.
? hash algorithm : sert à décrire l’algorithme de ” hachage ”.
? authentication method : sert à décrire l’algorithme d’authentification de la phase 1. Dans
notre cas, on utilise une clé pré-partagée (Pre-shared Key). Dans le cas des certificats,
l’algorithme d’authentification utilisé est ” rsasig ”.
? dh group (resp. pfs group) : sert à décrire l’algorithme d’échange de clefs Diffie-Hellman de
la phase 1 (resp. phase 2) avec la codification possible suivante : 1=modp768,2=modp1024,
14=modp2048, ...,18=modp8192.

? sainfo : sert à spécifier les algorithmes utilisés pendant la phase 2 du protocole IKE.
? encryption algorithm : sert à décrire l’algorithme de chiffrement utilisé pour ESP.
? authentication algorithm : sert à décrire l’algorithme d’authentification pour ESP et AH.

4.2 Politiques de sécurité


Pour établir le tunnel, il ne reste qu’à définir la politique de sécurité dans le fichier ”
/etc/ipsec-tools.conf ” comme suit :

7
@f w1
# !/usr/sbin/setkey -f
flush ;
spdflush ;
spdadd 172.25.0.0/16 172.35.0.0/16 any -P out ipsec
esp/tunnel/172.20.0.1-172.20.0.3/require ;
spdadd 172.35.0.0/16 172.25.0.0/16 any -P in ipsec
esp/tunnel/172.20.0.3-172.20.0.1/require ;

@f w2
# !/usr/sbin/setkey -f
flush ;
spdflush ;
spdadd 172.25.0.0/16 172.35.0.0/16 any -P in ipsec
esp/tunnel/172.20.0.1-172.20.0.3/require ;
spdadd 172.35.0.0/16 172.25.0.0/16 any -P out ipsec
esp/tunnel/172.20.0.3-172.20.0.1/require ;

Relancez wireshark sur F w1.


Pour la prise en charge de la mise à jour des fichiers édités, exécutez les commandes suivantes
sur les deux firewalls :

@f w1,@f w2$sudo /etc/init.d/setkey restart


@f w1,@f w2$sudo /etc/init.d/racoon restart
NB : Si vous souhaitez lancer racoon en mode debug, vous pouvez alors vous placer dans le
répertoire /etc/racoon et lancer racoon (cf. le man de racoon) comme suit :

@f w1,@f w2$sudo racoon -d -F


A partir du Client, connectez-vous en http sur Server.

Q9 : Quel est le mode d’échange utilisé ? [1 bonne réponse]

a) Main
b) Aggressive
c) Base

Q10 : Quel(s) est le(s) type(s) de payload présent(s) en clair dans les messages ” Identity
Protection ” de ISAKMP ? [2 bonnes réponses]

a) Security Policy

b) Security Association
c) Key Exchange
d) Identification
Q11 : En utilisant Wireshark, quel est l’algorithme de chiffrement retenu pour IKE au mo-
ment de la négociation ?

a) AES-CBC

8
b) 3DES-CBC

c) 3DES-ECB
d) AES-CFB
Lancez Wireshark sur F w1 et écoutez sur l’interface eth0. Constatez que le trafic passe en
clair.

5 Configuration de IPsec en mode dynamique entre Client et


Server (IKE pre-shared-key + ESP en mode transport)
L’entreprise veut maintenant que la connexion soit sécurisée de bout en bout c’est-à-dire
du Client vers Server. L’idée est alors dans cette partie d’établir un tunnel IPsec utilisant le
protocole IKE en pre-shared-key ainsi que le sous-protocole ESP en mode transport.
Nous allons suivre les mêmes étapes que la partie précédente.

5.1 Configuration de racoon


Editez les fichiers de configuration en remplaçant les inconnus ” X.X.X.X ” par les adresses
IP correspondantes.
@client /etc/racoon/racoon.conf
log notify ;
path pre shared key “/etc/racoon/psk.txt”;
remote X.X.X.X{
exchange mode main,aggressive ;
lifetime time 24 hour ;
proposal {
encryption algorithm 3des ;
hash algorithm sha1 ;
authentication method pre shared key ;
dh group 2 ;
}
}
sainfo address X.X.X.X any address X.X.X.X any {
pfs group 2 ;
lifetime time 1 hour ;
encryption algorithm aes ;
authentication algorithm hmac sha1 ;
compression algorithm deflate ;
}

@client /etc/racoon/psk.txt

X.X.X.X moocsecureseaumoocsecu

9
@server /etc/racoon/racoon.conf
log notify ;
path pre shared key “/etc/racoon/psk.txt”;
remote X.X.X.X{
exchange mode main,aggressive ;
lifetime time 24 hour ;
proposal {
encryption algorithm 3des ;
hash algorithm sha1 ;
authentication method pre shared key ;
dh group 2 ;
}
}
sainfo address X.X.X.X any address X.X.X.X any {
pfs group 2 ;
lifetime time 1 hour ;
encryption algorithm aes ;
authentication algorithm hmac sha1 ;
compression algorithm deflate ;
}

@server /etc/racoon/psk.txt

X.X.X.X moocsecureseaumoocsecu

5.2 Politiques de sécurité


@client /etc/ipsec-tools.conf
# !/usr/sbin/setkey -f
flush ;
spdflush ;
spdadd 172.25.0.2 172.35.0.4 any -P out ipsec
esp/transport//require ;
spdadd 172.35.0.4 172.25.0.2 any -P in ipsec
esp/transport//require ;

@server /etc/ipsec-tools.conf
# !/usr/sbin/setkey -f
flush ;
spdflush ;
spdadd 172.25.0.2 172.35.0.4 any -P in ipsec
esp/transport//require ;
spdadd 172.35.0.4 172.25.0.2 any -P out ipsec
esp/transport//require ;

Relancez wireshark sur F w1 sur l’interface eth0.


Sur les Client et Server, exécutez les commandes suivantes :

@client,@server$sudo /etc/init.d/setkey restart


@client,@server$sudo /etc/init.d/racoon restart
A partir du Client, connectez-vous en http sur Server.

10
Q12 : Quel est le nombre d’associations de sécurité observé sur Wireshark du F w1 sur eth0 ?

a) 2
b) 3
c) 4

Q13 : Quels sont les champs chiffrés dans les paquets émis par Client vers Server ? [1 bonne
réponse]

a) L’en-tête IP d’origine
b) L’en-tête IP d’origine et les champs de données

c) Uniquement la charge utile (payload transporté)


Q14 : Pourquoi le volume de trafic (et en général la taille des paquets ESP) échangé entre
F w1 et F w2 est-il plus important que celui échangé entre Client et Server ? [1 bonne réponse]

a) F w1 injecte des messages IKE encapsulés dans ESP vers F w2


b) Les paquets ESP sont encapsulés dans le tunnel actif entre F w1 et F w2
c) F w1 injecte des paquets AH vers F w2
d) F w1 injecte de nouveaux paquets ESP pour assurer la confidentialité vers F w2

6 Fin du TP
Une fois le TP complété, vous pouvez stopper les conteneurs Labtainers en tapant la com-
mande dans le terminal de l’apprenant :
stop.py

11

Vous aimerez peut-être aussi