Mémoire Préparé en Vue de L'obtention Du Diplôme de Master
Mémoire Préparé en Vue de L'obtention Du Diplôme de Master
Mémoire Préparé en Vue de L'obtention Du Diplôme de Master
No Réf :……………
Centre Universitaire
Abdelhafid Boussouf Mila
Préparé par :
Belmahboul Oussama.
Je dédie ce mémoire
A mes chers parents ma mère et mon père
Pour leur patience, leur amour, leur soutient et leur
Encouragement
A mes sœurs
A mes frères
A toute ma famille
A tous mes amis
Introduction Général 11
4
TABLE DES MATIÈRES TABLE DES MATIÈRES
5
TABLE DES MATIÈRES TABLE DES MATIÈRES
3 Réalisation technique 57
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.1 Virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.1.1 Mécanisme de virtualisation . . . . . . . . . . . . . . . . . . . . . . . . 57
3.1.2 Virtualisation Système . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.2 L’architecte DMZ(DéMilitarized Zone) . . . . . . . . . . . . . . . . . . . . . . 59
3.3 Présentation de l’architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.4 Configuration de PFsense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.4.1 Configuration générale . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.4.2 Configuration des interfaces . . . . . . . . . . . . . . . . . . . . . . . . 64
3.4.3 Règles du pare-feu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.5 OpenVPN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.5.1 présentation d’OpenVPN . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.5.2 Critères d’OpenVPN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.5.3 Fonctionnement d’OpenVPN . . . . . . . . . . . . . . . . . . . . . . . . 66
3.6 Configuration d’OpenVPN sous PFsense . . . . . . . . . . . . . . . . . . . . . 68
3.6.1 Création du tunnel OpenVPN . . . . . . . . . . . . . . . . . . . . . . . 68
3.6.2 Exemple de configuration d’OpenVPN sous PFSense . . . . . . . . . . 73
3.7 Scénarios d’exécution de l’application Nextcloud . . . . . . . . . . . . . . . . . 80
3.7.1 Scénario d’exécution normal . . . . . . . . . . . . . . . . . . . . . . . . 80
3.7.2 Scénarios d’attaque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Conclusion Générale 84
Bibliographie 84
6
Table des figures
7
TABLE DES FIGURES TABLE DES FIGURES
8
TABLE DES FIGURES TABLE DES FIGURES
9
Liste des tableaux
10
Introduction Générale
11
Introduction
privé virtuel y compris : sa définition, son principe de fonctionnement ainsi que ses différents
protocoles utilisés pour réaliser une connexion VPN.
Le deuxième chapitre est destiné à la présentation des outils nécessaires à la réalisation de
notre travail y compris : VMware Workstation 14, EVE-ng (Emulated Virtual Environment
- Next Generation), Docker et Nextcloud et aussi les étapes d’installation de ces derniers
en passant par l’étude des différents pare-feu qui supporte le VPN en choisissant le PFsense
comme une solution.
Dans le troisième chapitre, nous avons commencé par la présentation de l’architecture
adoptée puis nous avons focalisé sur le mécanisme de partage des document utilisé ( Next-
cloud). Finalement, nous avons montré le fonctionnement de l’application à travers des scé-
narios typiques qui montre le comportement de l’application en répondant aux différents
attaques possibles.
12
Chapitre 1
Introduction
L’expansion et l’importance grandissante des réseaux informatiques, ont engendré le pro-
blème de sécurité des systèmes de communication ; dans la plupart d’organisations infor-
matisées, partager les données directement entre machines est leur souci majeur. Il s’avère
indispensable de renforcer les mesures de sécurités, dans le but de maintenir la confidentialité,
l’intégrité et le contrôle d’accès au réseau pour réduire les risques d’attaques. Ce renforcement
consiste à utiliser les réseaux privés virtuels (VPN), qui sont idéals pour pouvoir exploiter au
mieux les capacités du réseau Internet et de relier des différents sites en toute sécurité.
Ce chapitre est consacré tout d’abord pour parler sur les principes de concepts cryptogra-
phiques et le principe de fonctionnement des algorithmes de cryptages et de hachage. Ensuite
s’arrive la présentation de la technologie réseau privé virtuel (VPN) et les différents protocoles
utilisés pour réaliser une connexion VPN.
I. Cryptographie
13
Chapitre 01 Cryptographie et réseau privé virtuel
a) Cryptosystème : Il est défini comme l’ensemble des clés possibles (espace de clés), des
textes clairs et chiffrés possibles associés à un algorithme donné.
c) Chiffrement : Le chiffrement consiste à transformer une donnée (texte, message, ...) afin
de la rendre incompréhensible par une personne autre que celui qui a créé le message et
celui qui en est le destinataire. La fonction permettant de retrouver le texte clair à partir
du texte chiffré porte le nom de déchiffrement.
e) Texte chiffré : Appelé également cryptogramme, le texte chiffré est le résultat de l’ap-
plication d’un chiffrement à un texte clair.[2]
14
Chapitre 01 Cryptographie et réseau privé virtuel
• L’intégrité des informations envoyer, on vérifier que le message n’a pas subi d’altéra-
tions lors de son parcours. Elle concerne plutôt une modification volontaire et malicieuse
l’information provoquée par un tiers lors du transfert sur le canal. Ces modifications sont
en générales masquées par le tiers pour être difficilement détectables. Sur la figure 1.1,
par exemple, le contrôle d’intégrité sur un message M se fait grâce à une fonction f telle
qu’il doit être très difficile de trouver deux messages M1 et M2 ayant la même image A
par f.[1]
15
Chapitre 01 Cryptographie et réseau privé virtuel
16
Chapitre 01 Cryptographie et réseau privé virtuel
17
Chapitre 01 Cryptographie et réseau privé virtuel
chacune des 16 itérations du D.E.S, (Voir figure 1.4). Ces clés sont les mêmes quel que soit le
bloc qu’on code dans un message.
18
Chapitre 01 Cryptographie et réseau privé virtuel
1. Permutation initiale.
2. Calcul médian (16 fois) : application d’un algorithme complexe appliqué en fonction de
la clé.
3. Permutation finale.
Nous notons également que le graphique est divisé en deux parties, on va expliquer en détail
chaque partie.
- La 1ère partie on applique des règles sur la clé qui sont :
1. Permutation Choice-1
La clé est constituée de 64 bits dont 56 sont utilisés dans l’algorithme.Il changer sa place
d’une façon aléatoire en utilisant des numéros variés de 1 à 56 qui sont déterminés par
le crypteur et doivent être en désordre, comme il est indiqué sur la matrice suivante :
57 49 41 33 25 17 9
1 58 50 42 34 16 18
10 2 59 51 43 35 27
19 11 3 60 52 44 36
63 55 47 39 31 23 15
7 62 54 46 38 30 22
14 6 61 53 45 37 29
21 13 5 28 20 12 4
- On commence par le nombre 57 dans la première case dans la matrice, on calcule les
bits de clé (K) jusqu’à ce que nous arrivons au Bit de numéro 57.
19
Chapitre 01 Cryptographie et réseau privé virtuel
On applique sur LK et RK le tableau 1.2, Dans la 1ère, 2éme et 9éme itération on tourne
à gauche un seul Bit, par contre dans les autres itérations on tourne 2 Bits.
Exemple :
Table 1.2 – Nombre de chiffres tournés ver la gauche dans chaque itération.
20
Chapitre 01 Cryptographie et réseau privé virtuel
- La 2ème partie
les règles appliquées sur le message sont :
1. Initial Permutation
- Les 64 bits du bloc d’entrée subissent la permutation de la table 1.3.
59 50 42 34 26 18 10 14
1 58 50 42 34 16 18 56
10 2 59 51 43 35 27 11
19 11 3 60 52 44 36 22
63 55 47 39 31 23 15 43
7 62 54 46 38 30 22 35
14 6 61 53 45 37 29 24
21 13 5 28 20 12 4 12
- On commence par le nombre 59 dans la première case dans la matrice, on calcule les
bits de message (M) jusqu’à ce que nous arrivons au Bit de numéro 59. le rang du Bit
59 est par la suite changé à la première place.
- La même chose sera faite pour le nombre 49 dans la deuxième case et ainsi de suite
jusqu’à le dernier nombre et obtenu un message (Mp) de 64 Bits .
2. Rounds 1...16
Les étapes présentées sur le schéma de la figure 1.4 sont appliquées sur le message
produit par la règle précédente tel que :
- Le message résultant du l’opération de Initial Permutation est divisé en deux partie
ML et MR.
- Expention Permutation est de même principe que celui de la permutation choice-1 et
choice-2 , mais elle augmente le nombre de bits par 16 Bits qui devient 48 Bits.
- le message de taille 48 Bits est soumis à l’opération XOR avec Sub-Key1.
- le message de taille 48 Bits est soumis à l’opération XOR avec Sub-Key1.
- dans cette étape le message MR obtenu à l’aide de l’opération XOR est soumis à
l’opération S-BOX en réduisant la taille du message à 32 Bits.
21
Chapitre 01 Cryptographie et réseau privé virtuel
22
Chapitre 01 Cryptographie et réseau privé virtuel
1. SubBytes :Est une substitution lors de laquelle chaque octet est remplacé par un autre
octet choisi dans une table particulière (une Boîte-S ).
2. ShiftRows :Est une étape de transposition où chaque élément de la matrice est décale
cycliquement vers la gauche.
3. MixColumns :Calcule chaque colonne de sortie comme le produit d’une matrice constante
et de la colonne d’entrée correspondante
4. AddRoundKey :C’est un simple XOR des clés. Il s’agit d’additionner des sous-clés
aux sous-blocs correspondants.
Le chiffré est finalement défini comme étant la sortie du dixième et dernier tour qui a pour
différence de ne pas comporter d’opération MixColumns. Le processus de chiffrement est
résumé :
– S0 = M XOR K0 (K0 = K)
– Sr = MixColumns(ShiftRows(SubBytes(Sr1))) XOR Kr (r = 1, . . . , 9)
– C = ShiftRows(SubBytes(S9 )) XOR K − 10
23
Chapitre 01 Cryptographie et réseau privé virtuel
4. Choisir un entier naturel e premier avec ϕ(n) et strictement inférieur à ϕ(n), appelé
exposant de chiffrement.
24
Chapitre 01 Cryptographie et réseau privé virtuel
b) Chiffrement du message
Si M est un entier naturel strictement inférieur à n représentant un message, alors le
message chiffré sera représenté par :C ≡ M e modn
L’entier naturel C étant choisi strictement inférieur à n.
c) Déchiffrement du message
Pour déchiffrer C, on utilise d, l’inverse de e modulo (p − 1)(q − 1), et l’on retrouve le
message clair M par : M ≡ C d modn
On a alors : C d mod n ≡ (M e )d mod n ≡ (Me )d mod n
Exemple
• Ahmed choisit p = 17 et q = 19
– On a : n = p ∗ q = 323, ϕ(n) = (p-1) * (q-1) = 288
• Elle choisit e = 5
– On détermine, alors, que d =173 (inverse modulaire de e sur Zϕ(n) : 173∗5=
3∗288+1)
– La clé publique est donc (5, 323) et la clé privée est (173, 323).
• Supposons que Khaled veut envoyer à Ahmed le message « BONJOUR » en se servant
de la position des lettres dans l’alphabet pour les transformer en nombres. Cela donne :
B O N J O U R
2 15 14 10 15 21 18
• Après avoir chiffré en remplaçant chaque nombre b par (be mod n) on obtient le mes-
sage que Khaled envoie à Ahmed :
2 15 14 10 15 21 18
2 15 14 10 15 21 18
B O N J O U R
qui est bien le message initial.
25
Chapitre 01 Cryptographie et réseau privé virtuel
d) Attaques
Il existe deux approches pour attaquer le RSA :
1. Recherche par force brute de la clé (impossible étant donné la taille des données).
2. Attaques mathématiques (basées sur la difficulté de calculer ϕ(n), la factorisation
du module n) :
– Factoriser n = p∗q et par conséquent trouver ϕ(n) et puis d.
– Déterminer ϕ(n) directement et trouver d.
– Trouver d directement.
Conseils d’utilisation du RSA Pour garantir une bonne sécurité, il faut respecter certains
règles telles que :
– Ne jamais utiliser de valeur n trop petite.
– N’utiliser que des clés fortes (p-1 et q-1 ont un grand facteur premier).
– Ne pas utiliser de n communs à plusieurs clés.
1.4.1 MD5
Message Digest 5 est une fonction de hachage cryptographique conçue par Ronald Rivest,
c’est le dernier d’une série (MD2, MD4), cet algorithme est utilisé pour produire une empreinte
ou une signature de 128 bits d’un fichier ou d’un message.[2] L’implémentation de l’algorithme
se faire par les étapes suivantes :
a) Préparation du message
MD5 travaille avec un message de taille variable. Le message est divisé en blocs de
512 bits comme illustré à la figure 1.8 on applique un complétion de manière à avoir un
message dont la longueur est un multiple de 512. La complétion se présente comme suit :
• On ajoute un 1 à la fin du message.
• On ajoute une séquence de ’0’ (le nombre de zéros dépend de la longueur du padding
nécessaire).
• On ajoute la longueur réelle du message (64 bits) après les 448 bits. En conséquence,
la taille totale de dernier bloc atteint 512 bits.
26
Chapitre 01 Cryptographie et réseau privé virtuel
b) Fonction de compression
Le calcule de l’empreinte s’appuie sur des registres A, B, C, D de longueur de 32 bits.
Pour le premier bloc de 512 bits, ces registres sont initialisés avec les valeurs suivants
(vecteur d’initialisation) en hexadécimal.
• A = 67452301
• B = EFCDAB89
• C = 98BADCFE
• D = 10325476
Pour les blocs suivants de 512 bits, ces registres sont initialisés à partir des valeurs
obtenues pour le bloc précédent de 512 bits. Lorsque l’ensemble des blocs de 512 ont été
traités, l’empreinte finale correspond à la concaténation des valeurs des registres A, B, C,
D ( Voir la figure 1.9).
Les opération sur un bloc de 512 bits se décomposent en 04 étapes, elle même sub-
divisées de 16 itérations élémentaire basées sur une fonction qui varie selon l’étape. Les
quatre fonctions définies sont les suivant :
• Etape 1 : F(B,C,D) = (B ∧ C) ∨ (¬B∧ D)
• Etape 2 : G(B,C,D) = (B ∧ D) ∨ (¬D ∧ C)
• Etape 3 : H(B,C,D) = B ⊕ C ⊕ D
• Etape 4 : I(B,C,D) = C ⊕ (¬D ⊕ B)
27
Chapitre 01 Cryptographie et réseau privé virtuel
28
Chapitre 01 Cryptographie et réseau privé virtuel
1.4.2 SHA-1
SHA-1 fut publié en 1995 par le NIST sous la forme d’une norme. La fonction de com-
pression de SHA-1 utilise des blocs B de b = 512 bits pour produire une empreinte de n =
160 bits. Comme pour MD5, le bloc B est d’abord découpé en 16 sous-blocs Bi (0≤i≤15) de
32 bits chacun, qui sont ensuite étendus en 80 nouveaux blocs Wi (0≤i≤79).
L’algorithme travaille donc sur un état de 160 bits subdivisés en 5 registres, de 32 bits chacun :
A, B, C, D et E (initialisés au début avec des constantes).
Les tours sont divisées en 4 étapes comme l’algorithme MD5, (voir figure 1.9) où la fonction
F prendra les valeurs successives suivantes :
V V
1. Étape 1 : F = (B C) ∨ (¬B D)
2. Étape 2 : F = B ⊕ C ⊕ D
V V V
3. Étape 3 : F = (B C) ⊕ (B D)⊕(C D)
4. Étape 4 : F = B ⊕ C ⊕ D
des Wt , dérivés des blocs de messages est donné à la figure 1.12. Pour ce calcul, on applique
la formule suivante :
– 0≤16 : les 16 premiers valeur de bloc.
– 16≤t : Wt = (W (t − 16) ⊕ W (t − 14) ⊕ W (t − 8) ⊕ W (t − 3) <<< 1)
29
Chapitre 01 Cryptographie et réseau privé virtuel
1.4.3 SHA-256
SHA-256 est une amélioration plus robuste (et supportant une taille d’empreinte plus
grande) que SHA-1 publiée en 2000. Elle se base sur un chiffrement à clef secrète par bloc
(SHACAL-2) et utilise des blocs B de b = 512 bits pour produire une empreinte de n = 256
bits.
Sécurité de SHA-256 : La taille d’empreinte dans SHA-256 est de 256 bits. La recherche
de collisions par force brute (attaque de Yuval) nécessite 2128 calculs d’empreintes. à l’heure
actuelle, il n’y a pas d’attaque efficace connue contre SHA-256 qui est donc considérée comme
encore sûre.[2]
30
Chapitre 01 Cryptographie et réseau privé virtuel
fois. Le HMAC se calcule alors suivant la formule suivante : HMAC(K,m) = H ((K ⊕ opad)
⊕ H ((K ⊕ ipad) k m)).[4]
a) Autorité(s) de certification
Une autorité de certification (CA) est une entitée de confiance qui se charge de délivrer
des certificats. Elle peut être est elle même reconnus/certifiée (elle possède un certificat)
par une autorité supérieure, ou bien par elle même(son certificat est auto-signé). Le niveau
de confiance d’une CA dépend des mécanismes pratiques qu’elle met en œuvre pour
certifier (signer des certificats).[5]
b) Certificat électronique
Est une carte d’identité de la clé publique, délivrée par une autorité de certification.
Il contient un ensemble des informations d’identification permettant aux clients et les
serveurs de prouver l’authenticité de leur identité en ligne. Les certificats sont des petits
fichiers divisés en deux parties :
– La partie contenant les informations.
– La partie contenant la signature de l’autorité de certification.
la fonction de signature doit répondre à plusieurs critères :
• Authentique : L’identité du signataire doit pouvoir être retrouvée de manière cer-
taine.
• Infalsifiable : La signature ne peut pas être falsifiée. Quelqu’un ne peut se faire
passer pour un autre.
• Inaltérable : Un document signé est inaltérable. Une fois qu’il est signé, on ne peut
plus le modifier.
• Non réutilisable : La signature n’est pas réutilisable. Elle fait partie du document
signé et ne peut être déplacée sur un autre document.
31
Chapitre 01 Cryptographie et réseau privé virtuel
La structure des certificats est normalisée par le standard X.509, qui contient les informations
suivante :
32
Chapitre 01 Cryptographie et réseau privé virtuel
Lorsqu’un utilisateur désire communiquer avec une autre personne, il lui suffit de se
procurer le certificat du destinataire (Voir figure 1.14). Il est donc possible de vérifier la
validité du message en appliquant les étapes suivant :
• Il hash votre certificat avec du SHA-256 (défini dans le certificat).
• Il déchiffre la signature du certificat avec la clé publique récupérée dans le certificat.
• Il compare le résultat du hash avec le résultat du déchiffrement de la signature.
c) Usages du certificat Les certificats servent principalement dans deux types de contextes :
• Le certificat client, stocké sur le poste de travail de l’utilisateur ou embarqué dans
un conteneur tel qu’une carte à puce, permet d’identifier un utilisateur . Dans la
plupart des scénarios il est transmis au serveur lors d’une connexion, qui affecte des
droits en fonction de l’accréditation de l’utilisateur.
• Le certificat serveur, installé sur un serveur web permet d’assurer le lien entre
le service et le propriétaire du service. Dans le cas d’un site web, il permet de
garantir que l’URL et en particulier le domaine de la page web appartiennent bien
à telle ou telle entreprise. Par ailleurs il permet de sécuriser les transactions avec
les utilisateurs grâce au protocole SSL.
33
Chapitre 01 Cryptographie et réseau privé virtuel
34
Chapitre 01 Cryptographie et réseau privé virtuel
• Cryptage des données : Lors de leurs transports sur le réseau public les données
doivent être protégées par un cryptage efficace.
• Gestion de clés :Les clés de cryptage pour le client et le serveur doivent pouvoir être
générées et régénérées.
35
Chapitre 01 Cryptographie et réseau privé virtuel
• Inconvénients :
– Il faut beaucoup de temps nécessaire de configuration.
– Plus lent que OpenVPN.
36
Chapitre 01 Cryptographie et réseau privé virtuel
1.8.4 SSL/TLS
A l’heure actuelle, SSL (Secure Sockets Layer) et TLS (Transport Layer Security) une très
bonne solution de tunnelisation. C’est une famille qui prend de plus en plus de place dans les
implémentations de tunnels et nombreux sont maintenant les pare-feu proposant des tunnels
SSL.
L’origine de ces protocoles remonte à un des navigateurs historiques : Netscape. Les équipes
de développement de ce produit ont cherché dès 1994 à mettre en place un canal sécurisé afin
de permettre l’échange de données confidentielles (authentification, carte bancaire...) entre le
navigateur et le serveur. C’est ainsi qu’ont été successivement développées la version SSLv1
peu diffusée, puis la version SSL v2. Mais cette version souffrant d’un certain nombre de
défauts importants en matière de sécurité a été remplacée fin 1995 par la v3.
En 1996 l’IETF (Internet Engineering Task Force) souhaita normaliser un protocole de
type SSL. C’est ainsi que fut mis en place un groupe de travail TLS (Transport Layer Se-
curity). Après diverses péripéties le groupe décida de publier le résultat de ses travaux sous
le nom TLS v1.0 dans le RFC 2246 (janvier 1999). En avril 2006 la version TLS v1.1 a été
publiée dans la RFC 2 4346, puis en août 2008 la v1.2 dans la RFC 5246. Les mécanismes
fournis par ces protocoles sont : l’authentification du serveur, l’authentification du client et
l’authentification du serveur. le mécanisme d’établissement d’un tunnel SSL entre un client
et un serveur présenter dans dernié chapitre.
SSL est un protocole de couche 7 utilise par une application par une application pour
établir un canal de communication sécurité avec une autre application.
SSL a deux grandes fonctionnalités : l’authentification du serveur et de client à l’établis-
sement de la connexion et le chiffrement des données durant la connexion.[3]
2. RFC «requests for commentssont» : une série numérotée de documents officiels décrivant les aspects et
spécifications techniques de l’Internet
37
Chapitre 01 Cryptographie et réseau privé virtuel
Conclusion
Ce chapitre nous a permis de prendre connaissance des différents concepts et généralités
associés à la cryptographie et au réseau privé virtuel(VPN).
Dans le chapitre suivant on s’intéressera à la présentation des outils nécessaires à la confi-
guration de l’environnement de travail et ceux nécessaire à la création d’un réseau VPN.
38
Chapitre 2
Introduction
Dans ce chapitre, nous allons présenter les outils utilisés dans notre Lab pour implémenter
notre solution, notamment :
- VMware Workstation 14.
- EVE-ng.
- PFsense.
puis, nous présenterons le gestionnaire des conteneurs (Docker) qui est l’outil utilisé pour le
téléchargement, la configuration et l’exécution de l’application Nextcloud.
39
Chapitre 02 Les outils de réalisation
c) L’adaptateur virtuel hôte : Est un adaptateur éthernet virtuel permet d’assurer la com-
munication entre l’hôte et les machines virtuelles. Il est utilisé dans les configurations
host-only et NAT.
e) Le serveur DHCP (Dynamic Host Configuration Protocol) : Fournit des adresses réseau
aux machines virtuelles,hors les réseaux bridgées,à un réseau externe, par exemple, les
configurations host-only et NAT.
40
Chapitre 02 Les outils de réalisation
b) Le réseau NAT :
Le réseau NAT traduisant les adresses des machines virtuelles en adresses de la ma-
chine hôte. Lorsqu’une machine virtuelle envoie une demande d’accès à une ressource
réseau, cette dernière interprète cette requête comme si elle provenait de la machine hôte.
NAT utilise les ressources réseau de l’hôte pour se connecter au réseau externe.
Le périphérique NAT est connecté au commutateur virtuel vmnet8. Les machines vir-
tuelles connectées au réseau NAT utilisent également ce commutateur. Le périphérique
NAT attend l’arrivée de paquets des machines virtuelles sur le réseau virtuel vmnet8.
Lorsqu’un paquet arrive, le périphérique NAT traduit l’adresse de la machine virtuelle en
une adresse de l’hôte avant de transférer le paquet au réseau externe. Lorsque des données
arrivent du réseau externe à la machine virtuelle sur le réseau privé, le périphérique NAT
reçoit les données, remplace l’adresse réseau par celle de la machine virtuelle et transfère
les données à la machine virtuelle sur le réseau virtuel.
Les machines virtuelles fonctionnant sur le réseau avec le périphérique NAT peuvent
obtenir leur adresse IP de façon dynamique en envoyant des requêtes DHCP au serveur
DHCP VMware, (Voir figure 2.2).[8]
41
Chapitre 02 Les outils de réalisation
c) Le réseau host-only :
– La configuration «host-only» fournit une connexion réseau entre la machine virtuelle
et l’ordinateur hôte, au moyen d’un adaptateur éthernet virtuel.
– Les machines virtuelles et l’hôte sont connectés dans un réseau privé.
– Les machines virtuelles sont isolées et ne peuvent se connecter sur le réseau externe,
ni sur internet.
– Les machines virtuelles obtiennent des adresses IP par le serveur DHCP VMware,
(Voir figure 2.3).
2.2 EVE-ng
Pour construire un réseau virtuel interactif sur une interface graphique et observer son
fonctionnement, on utilise EVE-ng.
42
Chapitre 02 Les outils de réalisation
- Après l’ouverture du dossier, nous cliquons sur l’icône ajouter un nouveau laboratoire "add
new lab".
43
Chapitre 02 Les outils de réalisation
- Une boîte de dialogue s’affiche pour demander des informations sur le laboratoire. Ici, nous
devons entrer le nom du laboratoire et la version, des champs facultatifs sont aussi disponibles
comme le champ description qui permet de fournir des informations aux utilisateurs ayant le
droit de manipuler le fichier crié.
- Le fichier de laboratoire sera créé après qu’on clique sur le bouton enregistrer. Vous trou-
verez ci-dessous un ensemble de boutons qui permet à un utilisateur de gérer le laboratoire,
l’utilisateur peut ouvrir le fichier lab, modifier ses informations ou supprimer le fichier.
44
Chapitre 02 Les outils de réalisation
- On clique sur le bouton Ouvrir, une interface graphique vide s’affiche. La barre d’outils à
gauche est utilisée pour créer et gérer les éléments de la topologie.
- Si nous voulons ajouter un équipement, il faut visualiser la liste complète des équipements
réseaux supportés, qui est vide,par défaut on va donc ajouter quelques équipements pour
qu’ils puissent être disponibles sur la liste
- Pour pouvoir ajouter certains équipements réseaux, comme un hôte Windows, un hôte linux
ou des routeurs Cisco, il faut d’abord télécharger ses fichiers images qui seront importés dans
la machine EVE en utilisant l’outil WInscap.
45
Chapitre 02 Les outils de réalisation
Dans ce qui suit, nous allons présenter quelques pares-feux Open source les plus utilisé :
a) IPcop :[11]
Est une distribution linux (Open Source) gratuite, basée sur Linux From Scratch 1 , et
il est téléchargeable sous forme d’un fichier image. Dans le but est de protéger un réseau
des menaces Internet, surveiller son fonctionnement et fournir une connexion fiable entre
différents réseaux.
Ses principaux Caractéristiques sont :
• Complet (routeur, DHCP, Firewall, proxy, DNS, VPN).
• l’administration facile depuis un navigateur.
• Possibilité d’ajouter des modules (extensible).
1. Linux From Scratch(LFS) : Le projet Linux From Scratch est un livre qui décrit les diverses étapes pour
créer un système Linux à partir des sources logiciels et permet de comprendre le fonctionnement de noyau du
système d’exploitation Linux.
46
Chapitre 02 Les outils de réalisation
• IPcop peut gérer jusqu’à 4 réseaux différents, classé par colleurs comme suite :
– Interface Verte : Correspond au réseau local protégé par IPCOP. Ce réseau a le
droit d’accès aux 3 autres réseaux (sauf paramétrage spéciaux : URL Filter qui
limite l’accès au Web).
– Interface Orange(optionnelle) : Ce réseau est une sorte de DMZ (Demilitarized
Zone = Zone Démilitarisée) qui permet de relier des serveurs au réseau Internet.
Les ordinateurs de ce réseau ne peuvent pas accéder aux ordinateurs des interfaces
Bleu et Verte sauf mise en place de règles explicites.
– Interface Bleu(optionnelle) : C’est une interface spécifique aux réseaux sans fil.
Elle permet aux ordinateurs connectés d’accéder au réseau rouge et orange sans
accéder au réseau Vert.
– Interface Rouge : Ce interface correspond au réseau Internet.
b) ClearOS[10] :
Anciennement appelé Clark Connect, est une distribution linux, basé sur CentOS
et Red Hat Entreprise Linux, conçu pour une utilisation dans les petites et moyennes
entreprises comme une passerelle réseau et le serveur de réseau avec une interface d’ad-
ministration basé sur le Web.
Caractéristiques :
– Pare-feu stateful (iptable), la mise en réseau et de la sécurité.
– Proxy Web, avec le filtrage de contenu et antivirus (Squid, DansGuardian).
– Réseaux virtuels utilisant IPsec, L2TP et OpenVPN.
Le(s)limite(s) :
– ClearOS n’offre pas beaucoup de fonctionnalité dans sa version gratuite.
c) OPNsense[11] :
Est une distribution de pare-feu open source basé sur FreeBSD 2 . Débuté en janvier
2015 en tant que branche du pare-feu pfSense. Déploiements typiques sont les pares-feux
à états de périmètre, routeurs, points d’accès sans fil, serveurs DHCP et DNS et points
de terminaison VPN.
IL peut être configuré et mise a jour par le biais d’une interface Web, et ne nécessite
aucune connaissance du système FreeBSD sous-jacent à gérer.
Caractéristiques :
– Complet(DHCP, VLAN, multi-NAT, multi-WAN, DNS dynamique...etc).
2. FreeBSD : Est un système d’exploitation UNIX libre. L’objectif du projet FreeBSD est de fournir un
logiciel pour n’importe quelle utilisation, ce avec le moins de restrictions possibles.
47
Chapitre 02 Les outils de réalisation
d) PFsense [11] :
Packet Filter Sense est une distribution FreeBSD développée en 2004. L’objectif de
départ est d’assurer les fonctions de pare-feu et de routeur, dant l’installation se fait fa-
cilement via une distribution dédiée et toutes les configurations peuvent se faire soit en
ligne de commande (SSH) ou via l’interface web. PFsense est basé sur PF (packet filter),
comme iptables sur GNU/Linux et il est réputé pour sa fiabilité. Distribution PFsense as-
sure une évolution constante grâce à des mises à jour régulières dont l’installation est gérée
automatiquement dans une partie au niveau du panneau d’administration. La sauvegarde
et la restauration de configuration est disponible à travers une interface web.
48
Chapitre 02 Les outils de réalisation
a) Obtention de PFsense :
La versions de pfSense sont téléchargeables dans la rubrique «download» du site
www.pfSense.org.
b) Pré requis :
Via l’interface web de EVE en click sur l’onglet +add on object puis Node, après
choisi le template PFsense et on crée une machine virtuelle dans la quelle PFsense sera
installé. Pour cela on a besoin de la configuration suivant : interface(LAN, WAN, MGT,
DMZ), un CPU et 2048 Go de RAM.
- Taper 1 pour choisir le boot PFsense ou laisser démarrer avec l’option par défaut.
49
Chapitre 02 Les outils de réalisation
- Ici, on n’a pas encore configuré le VLAN, la réponse à la question de la figure sera "n".
- Ensuite on détermine l’interface WAN parmi : vtnet0, vtnet1, vtnet2 et vtnet3. Sachent
que,dans notre cas, "vtnet0" est notre interface WAN. Ensuite, on fait la même chose pour
la carte réseau LAN, choisissant "vtnet1", et pareillement pour les autres interfaces.
FreeBSD résume l’attribution des cartes réseaux aux différentes interfaces et nous validons
avec "y".
50
Chapitre 02 Les outils de réalisation
- Une fois l’installation terminée, le menu de console PFsense apparaîtra. La plupart des
options présents dans ce menu sont également disponibles via l’interface web. Le serveur
DHCP fonctionne sur l’interface WAN, donc automatiquement avoir une adresse IP.
- Nous choisissant l’option 2 du menu afin de configurer une adresse IP pour l’interface
LAN, en répondant aux questions de la configurer d’interfaces suivant :
• Entrez le numéro de l’interface que nous souhaitez configurer ( en choisie : 2 pour
l’interface LAN).
• Entrer la nouvelle adresse IPv4 LAN, par exemple 192.168.120.1
• Entrer le nouveau nombre de bits du sous-réseau LAN IPv4 (1 à 31). Exemple, 24
(équivalent à 255.255.255.0, c’est-à-dire 254 adresses IP).
• Dans la question suivante, une passerelle doit être définie. Ce n’est pas nécessaire
pour une interface LAN, Appuyer simplement sur ENTER.
• Entrer la nouvelle adresse IPv6 du réseau local. Appuyer sur <ENTER>
• Vouloir revenir à HTTP en tant que protocole webConfigurator ? y
51
Chapitre 02 Les outils de réalisation
2.4 Docker
Pour faciliter le développement des applications et résoudre le problème d’exécution causé
par des versions dotées des bibliothèques manquantes dans différents environnements, on
propose Docker comme solution.
52
Chapitre 02 Les outils de réalisation
• Client docker :
Se présente sous la forme de l’exécutable docker. Il accepte des commandes de l’utilisa-
teur (docker run, docker build, docker push.) et les transmet au daemon Docker.
• Registre :
Docker registre est un service permet de stocker et de télécharger des images. Les re-
gistres publics incluent le Docker Hub et Docker Cloud, Les commandes courantes lors
l’utilisation ces registres est : docker push, docker pull, docker run.
• Host Docker :
L’hôte Docker fournit un environnement complet pour exécuter des applications. Il
comprend le démon Docker, les images et les conteneurs.
– Démon Docker :
écoute les demandes client Docker et gère les images et les conteneurs.
– Image :
Est un paquet exécutable qui inclut tout ce qui est nécessaire pour exécuter une
application : le code, les outils, les bibliothèques et les fichiers de configuration.
– Conteneur : Est une instance d’exécution d’une image. Il ressemble à une machine
virtuelle basé ce le noyau Linux de notre machine physique qui charge une application
avec tous les éléments nécessaire pour sa fonctionnement : outils, bibliothèques, fiches
... etc. L’exécution de l’application et ces éléments se fait directement dans le système
d’exploitation de serveur comme des processus.
Docker permet d’exécuter l’application dans un environnement isolé (conteneur), contrai-
rement à La virtualisation qui ne permet de créer des machines virtuelle, chacune d’elle se
comporte comme un machine intégrant son propre SE sur lequel les applications seront dé-
ployées et exécutées, (Voir figure 2.18).
53
Chapitre 02 Les outils de réalisation
sudo apt-get update
curl -fsSL https ://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
3. Vérifiez que vous avez bien installé cette clé en comparant avec les 8 derniers ca-
ractères de l’empreinte ci-dessous : 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C
0EBF CD88 Pour cela, taper :
3. Advanced Packaging Tool est un système complet et avancé de gestion de paquets en ligne de commande
qui automatise le processus d’installation, désinstallation, mise à jour de logiciels installés sur les systèmes
d’exploitation basés sur Unix, tels GNU/Linux.
54
Chapitre 02 Les outils de réalisation
' $
sudo apt-key fingerprint 0EBFCD88
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unknown] Docker Release (CE deb) <docker@docker.com>
sub rsa4096 2017-02-22 [S]
& %
b) Installer docker(CE) :
1. Mettre à jour APT : sudo apt-get update
2. Installer la dernière version de Docker CE : sudo apt-get install docker-ce
3. Une fois Docker installé, vous pouvez lancer le service : sudo service docker start
4. Une fois Docker installé, vous pouvez lancer le service : docker run hello-world
2.5 Nextcloud
55
Chapitre 02 Les outils de réalisation
Conclusion
Dans ce chapitre, après que nous avant décri les outils nécessaire pour la réalisation de
l’architecture, nous avons explicitement fourni les différentes étapes d’installation et de confi-
guration des outils et d’application. Le chapitre suivant va consacrer à la phase de la réalisation
technique tels que le paramétrage de réseau et les configurations spéciales de PFsense et la
configuration OpenVPN.
56
Chapitre 3
Réalisation technique
Introduction
Dans ce chapitre, nous allons expliquer tout d’abord le mécanisme et la technique de virtu-
lisation du système et introduire c’est quoi la DMZ. Ensuite, nous présenterons l’architecture
réseau utilisée. Après la mise en œuvre de PFsense, nous allons configurer OpenVPN et décrire
les déférents scénarios possibles d’exécution de l’application Nextcloud.
3.1 Virtualisation
La virtualisation est l’ensemble des technologies matérielles et/ou logiciels qui permettent
de faire fonctionner sur une seule machine plusieurs systèmes et/ou plusieurs applications, sé-
parément les uns des autres, comme s’ils fonctionnaient sur des machines physiques distinctes.[15]
57
Chapitre 03 Réalisation technique
a) Machine virtuelle(VM) :
Une machine virtuelle est un environnement fourni par un logiciel qui permet de
simuler une machine physique au sein d’un système hôte ou directement sur le matériel
physique. L’interaction avec une machine virtuelle est la même qu’avec un matériel dédié.
Une machine virtuelle (VM) se comporte exactement comme un ordinateur physique. Elle
contient son propre matériel virtuel : CPU, mémoire RAM, disque dur et carte d’interface
réseau (NIC) basés sur du logiciel.
b) Hyperviseur (VMM)
Un hyperviseur est une plateforme de virtualisation permettant à différents systèmes
d’exploitation de s’exécuter parallèlement sur une même machine physique tout en par-
tageant les ressources de cette dernier. Le rôle de l’hyperviseur est de permettre aux
différents environnements de s’exécuter sur l’ordinateur hôte tout en isolant les environ-
nements les uns des autres de la même façon comme ils s’étaient exécutés sur des machines
physiques distinctes.
L’hyperviseur ayant la responsabilité de fournir les ressources matérielles nécessaires
aux différents environnements virtuels.
Il existe deux types d’hyperviseurs.
• Hyperviseur type 1 : Un logiciel qui s’exécute directement sur le matériel de l’or-
dinateur hôte sans dépendance avec le système d’exploitation de celui-ci pour le
partage des ressources matérielles. Les systèmes d’exploitation invités restent donc
près des ressources physiques de l’hôte, ce qui n’est pas influ les performance ac-
centue les performances (Voir Figure 3.2).Comme exemple d’hyperviseur de type 1
nous avant : Hyper-V, Xen, ESXI...
• Hyperviseur type 2 : Est un logiciel qui s’exécute directement sur le système d’ex-
ploitation de l’ordinateur hôte. L’exécution des machines virtuels dépend alors di-
rectement du système d’exploitation de l’hôte. Il y a donc deux couches logicielles
qui s’insèrent entre les systèmes d’invités et les ressources physiques de l’hôte. Ce
58
Chapitre 03 Réalisation technique
qui peut affecter les performances (Voir Figure 3.2). Comme exemple d’hyperviseur
de type deux nous avant : VMware Workstation, QEMU, VirtualBox...
Il existe plusieurs façons d’organiser le réseau mais, pour que cette organisation soit bien
sécurise en doit adoptée une architecture bien structurer comme DMZ.
59
Chapitre 03 Réalisation technique
60
Chapitre 03 Réalisation technique
Cette dernière est reliée par défaut en mode bridge avec la cartes réseau03 (Network
adapter 3), donc on peut accéder au page web de PFsense à travers la machine hôte.
Alors :
cloud 2 –> Network adapter 3 –> Vmnet2 –> VMware Network Adapter Vmnet2
• WAN : lié avec cloud01 est donc l’interface pnet1. Cette dernière est reliée par défaut en
mode bridge avec la cartes réseau02 (Network adapter2), donc on peut connecter aux
réseau WAN à travers cette interface.
Alors :
WAN –> cloud01 –> Network adapter2 –> Vmnet0 –> Carte réseau wifi
61
Chapitre 03 Réalisation technique
62
Chapitre 03 Réalisation technique
- Une fois le nom d’utilisateur qui est par défaut "admin" et le mot de passe qui est par
défaut"pfsense" sont saisis sur la page de configuration générale, les paramètres permettant
d’attribuer un nom d’hôte au pare-feu s’affichent, le domaine et saisir l’adresse du serveur
DNS primaire et secondaire(dans notre cas nous n’avons pas créé un serveur DNS, nous avons
utilisé celui du fournisseur d’accès Internet),(Voir figure 3.8). Dans les étapes suivantes, nous
allons vérifier à nouveau la configuration de l’interface WAN et LAN et attribuer un nouveau
mot de passe administrateur.
- Après avoir terminé la configuration, sur la page d’accueil de PFsense, les informations
globales sur le logiciel (version, dernier changement de configuration, version du noyau, uti-
lisation de la mémoire, le nombre d’interfaces connectées etc..)s’affichent, (Voir figure 3.9).
63
Chapitre 03 Réalisation technique
64
Chapitre 03 Réalisation technique
Dans l’onglet Firewall, on clique sur la section Rules puis on sélectionne une interface
sur laquelle on veut définir des règles. La politique de sécurité mise en œuvre sur la topologie
est la suivante :
a) WAN :
– Le trafic du réseau externe (WAN) vers la DMZ : autorisé.
– Trafic du réseau externe (WAN) vers le réseau interne(LAN) : interdit.
b) LAN :
– Trafic du réseau interne (LAN) vers la DMZ : autorisé.
– Trafic du réseau interne (LAN) vers le réseau externe(WAN) : autorisé.
c) DMZ :
– Trafic de la DMZ vers le réseau interne (LAN) : interdit.
– Trafic de la DMZ vers le réseau externe (WAN) : refusé.
d) MGT :
– Le trafic du réseau externe (laptop) vers pare-feu (PFsense) : autorisé.
3.5 OpenVPN
65
Chapitre 03 Réalisation technique
66
Chapitre 03 Réalisation technique
Avant de connecter par OpenVPN, de nombreuses options doivent être considérées, tels
que :
a) Interfaces virtuelles (TUN/TAP)
OpenVPN fonctionne avec des interfaces virtuelles TUN/TAP, ces interfaces sont vues
comme des interfaces physiques, mais elles renvoient le trafic vers le logiciel OpenVPN
plutôt que sur un lien physique.
OpenVPN peut fonctionner avec deux types d’interfaces virtuelles selon le type de
tunnel. i) Si on souhaite créer un tunnel de niveau 2 (on se basant sur le modèle OSI),
c’est-à-dire un tunnel Ethernet on utilisera une interface virtuelle de type TAP. ii) Si on
veut créer un tunnel de niveau 3, c’est-à-dire un tunnel IP, on utilisera une interface de
type TUN. .
– En mode routeur (TUN) : nous créons un tunnel de couche 3, nos connexions
prendront l’aspect d’un routeur. C’est à dire que OpenVPN devra maintenir une
table de routage pour rediriger les clients dans les bonnes directions.
– En mode bridge (TAP) : le client OpenVPN se connecte directement sur le réseau
local. Symboliquement, c’est exactement comme brancher le client directement sur
le réseau. La configuration dans ce cas nécessite de créer une interface de bridge
sur le serveur OpenVPN, et de rattacher l’interface réseau physique du serveur et
l’interface créée par OpenVPN à ce bridge.
b) Choix du protocole
OpenVPN peut utiliser le protocole UDP ou TCP, ceci pour augmenter les possibilités
de connexion aux utilisateurs.
• OpenVPN avec TCP
Signifie « Transmission Control Protocol ». Contrairement à UDP, TCP est orienté
connexion, c’est à dire, il assure un circuit virtuel entre les clients et les ser-
veurs Openvpn. Le protocole TCP établit un mécanisme d’acquittement et de ré-
transmission de paquets manquants. c’est à dire, lorsqu’un paquet se perd et ne
parvient pas au destinataire, TCP permet de prévenir l’expéditeur et lui réclame
de renvoyer les informations non parvenues. Il permet donc de garantir une certaine
fiabilité des transmissions. Cependant la majorité des applications utilisent TCP,
OpenVPN ne se bases pas sur le port TCP car la création du tunnel TCP sur un
autre tunnel TCP (TCP over TCP) permet de retransmettre de paquets à l’inté-
rieur du tunnel et provoque des interruptions fréquentes de la connexion. Ce qui
peut conduire à la dégradation des performances d’OpenVPN.
67
Chapitre 03 Réalisation technique
• OpenVPN avec UDP UDP est le protocole le plus adéquat avec UDP, qui est
généralement plus rapide. UDP signifie « User Datagram Protocol ». C’est le pro-
tocole de transport sans confirmation qui permet aux applications d’échanger des
datagrammes sans accusé de réception ni remise garantie. Cela réduit la charge
et rend UDP plus rapide parce qu’il ne fournit pas de mécanisme de vérification
d’erreur comme le fait TCP.
c) Méthodes d’authentification Lors d’une négociation HANDSHAKE, il faut s’assurer
de l’identité du client, il faut aussi assurer que le serveur auquel on parle est bien celui
qu’il prétend être. OpenVPN propose plusieurs méthodes d’authentifications, comme par
exemple :
– Remote Access (User Auth) : qu’il s’agit d’une méthode simple utilise un paire nom
d’utilisation/mot de passe.
– Remote Access (pre-shared key) : tous les clients doivent avoir une clef pour pouvoir
s’authentifier.
– Remote Access (SSL/TLS) : Une méthode d’authentification par certificat où chaque
client possède un certificat (et donc une clef privée) validé par une autorité de cer-
tification.
– Remote Access (SSL/TLS + User Auth) : Nécessite un certificat et un nom d’uti-
lisateur/mot de passe. Chaque utilisateur dispose d’une configuration client unique
qui inclut son certificat et sa clé personnels.
68
Chapitre 03 Réalisation technique
HMAC et les clés symétriques qui se servir au chiffrement avant que l’application trans-
mette son premier octet.
– Protocol CCS (ChangeCipherSpec) : Ce protocole comprend un et un seul message
(1 octet) qui porte le même nom que le protocole, il permet d’indiquer au protocole
Record les algorithmes de chiffrement négociés.
– Protocol Alert : Le message de ce protocole est dans le but de i) signaler une erreur
fatale (qui va donc provoquer la fermeture de la session) ii) ou une simple alerte qui
laisse le choix à l’autre extrémité de fermer connexion ou non. Dans les deux cas, le
message comporte un code spécifiant la raison de l’alerte. La liste des codes utilisés
peut indiquer : une notification de fermeture, certificat expiré, accès refuse...etc. Ce
message peut également être employé pour signaler la fin normale de la connexion.
– Protocol Record : Ce protocole intervient après l’émission du message ChangeCi-
pherSpec. Il permet de garantir la confidentialité et l’intégrité des données.
La création du tunnel OpenVPN se fait en deux phases : une phase de négociation des para-
mètres de sécurité (échangés 1 à 9 dans le schéma ci-après) et une phase de transfert sécurisé
de données.
69
Chapitre 03 Réalisation technique
70
Chapitre 03 Réalisation technique
4. Server Key Exchange : Pour ce qui concerne les paramètres d’échange de clé, (Ser-
verKeyExchange), leur envoi n’a lieu que si les certificats du serveur ne contiennent
pas toutes les informations nécessaires pour créer un premastersecret. Dans le cas
du Diffie-Hellman, ce message contiendra notamment la clé publique du serveur.
5. Certificat Request :
Si le serveur souhaite également authentifie le client par un certificat, il va le de-
mander au moyen du message CertificateRequest. Celui-ci contient la liste des types
de certificats (RSA, DSS, RSA-DH, DSS-DH) que le serveur accepte et, optionnel-
lement, la liste des autorités de certifications qu’il reconnait. Dans le cas de TLS, la
liste des algorithmes de signature reconnus par le serveur est également spécifiée.
7. Client certificat :
Dans le cas d’une requête CertificateRequest été émise par le serveur, ce message
permet au client d’envoyer son certificat.
71
Chapitre 03 Réalisation technique
9. Certificate Verify :
Ce message n’est émis que si un certificat client est envoyé du client au serveur par
un message ClientCertificate.
72
Chapitre 03 Réalisation technique
3. Chiffrement : le paquet obtenu est chiffré par le clé récupérée lors de la négociation.
4. Un en-tête de 5 octets est ajouté. Le champ “Type= Application Data” de cet en-tête
définit le type du protocole de niveau supérieur au Record Protocol.
2. Déchiffrage du paquet.
3. Vérification du champ HMAC (en appliquant la même fonction que celle décrite
ci-dessus, aux données déchiffrées puis en comparant le résultat au HMAC reçu).
- Afin de faciliter l’intégration sur les postes clients, nous allons installer Le paquetage
«OpenVPN Client Export Utility». Cet outil permet l’export directement à partir de PFsense
d’un client préconfiguré OpenVPN pour Windows ou d’un fichier de configuration pour
android (Voire figure 3.15).
3. Choisir «openvpn-client-export».
73
Chapitre 03 Réalisation technique
- La première étape à faire sur PFSense est de créer une autorité de certification Comme suite
(Voir figure 3.16)) :
74
Chapitre 03 Réalisation technique
4. Si vous avez une résolution DNS, choisissez le nom du serveur comme « Common
Name » même si cela n’influ pas sur la sécurité des certificats : nous laissons «
internal-ca » qui est la valeur par défaut.
5. Remplir les différents champs qui concerne le sujet d’autorité du certificat. Par défaut
tous les certificats émis par cette CA auront ces valeurs : AL pour le pays Algeria.
- Le CA est maintenant créée. Vous pouvez la visualiser dans la page d’accueil des CA (Voir
figure 3.18).
- L’étape suivante consiste à créer le certificat du serveur OpenVPN, que les clients utiliseront
pour vérifier l’identité du serveur lors de la connexion. Nous utilise ons le certificat généré
précédemment qui est la CA pour le certificat de serveur.
- Nous devons ensuite remplir le formulaire que nous utilisons pour créer le certificat de serveur
avec l’identification du type de certificat "Server Certificate ou Client Certificate" . par l’accès
à l’onglet Certificats en cliquant sur "+Ajouter/Signer" (Voir figure 3.19).
75
Chapitre 03 Réalisation technique
- L’étape suivante de la configuration consiste à créer une autorité de certification pour l’émis-
sion de certificats. S’il existe déjà une autorité de certification configurée dans PFSense, vous
pouvez choisir de l’utiliser pour OpenVPN au lieu d’en créer une nouvelle. Nous choisissons
l’autorité de certification « certificate-authority ».
- Si on crée une nouvelle autorité de certification, vous devrez remplir tous les champs de
l’assistant pour pouvoir continuer. La longueur de clé par défaut est 2048 bits(suffisant),
mais on peut utiliser une clé plus longue. Les tailles de clé plus importantes sont plus sûres
mais elles nécessiteront plus de performance.
76
Chapitre 03 Réalisation technique
- Après que nous avants sélectionné l’autorité de certificat, nous choisissons le certificat du
serveur que nous avons déjà créé auparavant.
Sous "Cryptographic Settings", laissez tout comme valeur par défaut, mais modifiez l’algo-
rithme Auth Digest en SHA256.
- Dans les Paramètres de tunnel, nous faisons entrer la plage d’adresses IP pour le réseau
de tunnels (il s’agit de la plage d’adresses IP que OpenVPN utilise pour effectue l’adressage
IP aux clients VPN). Vous devez également cocher la case intitulée passerelle de redirection
pour assurer que tous les clients utilisent uniquement le VPN pour tout leur trafic. Puis nous
saisissons la plage d’adresses IP du réseau local(il s’agit de notre réseau dmz), puis on défini
le nombre maximal de connexions simultanées.
77
Chapitre 03 Réalisation technique
78
Chapitre 03 Réalisation technique
- Après que la configuration côté serveur est terminée, il nous reste simplement qu à filtrer
nos flux transitant à travers notre nouvelle interface OpenVPN. Les règles qu’on doit ajouter
sont les suivantes :
– Trafic de client OpenVPN vers réseau externe (WAN) : autorisé.
– Trafic de client OpenVPN vers la DMZ : autorisé, (Voir figure 3.26).
- Pour ajouter un nouveau utilisateur OpenVPN, ouvrez le menu System et cliquez sur User
Manager.
- Entrez un nom d’utilisateur, un mot de passe et cliquez sur la case à cocher Certificat pour
générer un certificat utilisateur. Assurez-vous de définir un nom dans le champ nom descriptif,
puis cliquez sur le bouton Enregistrer pour terminer le processus d’ajout de l’utilisateur, (Voir
figure 3.27).
79
Chapitre 03 Réalisation technique
PFsnse permet, grâce au package installé « OpenVPN Client Export Utility », d’exporter un
exécutable pour l’installation du client sous Windows ou autre systèmes (Voir figure 3.28). Si
tout est configuré correctement, différentes options de téléchargement vous seront, on click
sur :
VPN -> OpenVPN -> onglet’Client Export’.
Dans ce scénario, nous déroulons les actions réalisé par l’enseignant. L’enseignant choisit
l’emplacement dans laquelle il importe ses ficher de configuration de l’application OpenVpn
installée sur son smartphone, il saisit sont login et clique sur le bouton ajouter, (Voir figure
3.29).
80
Chapitre 03 Réalisation technique
- Si l’enseignant veut connecter avec l’application Nextcloud, il doit cliquer sur bouton
Connecter où une boite s’affiche sur laquelle il s’authentifier est demandé d’entrer son mot
de passe afin d’établir la connexion avec le serveur OpenVPN, (Voir figure 3.30).
- Ensuite, l’enseignant saisi l’URL de l’application dans la barre d’adresse d’un navigateur
web quelconque : http ://192.168.110.12 :8080/ pour accéder à l’interface Nextcloud où il est
demandé d’entrer un nom d’utilisateur et un mot de passe, (Voir figure 3.31).
- Maintenant, la page d’accueil de son compte apparue, c’est à lui de faire les différents fonc-
tionnalités(Télécharger un fichier depuis le serveur vers son smartphone, Ajouter un fichier,
partage le cour avec un étudiant ou un groupe des étudiants), (Voir figure 3.32).
81
Chapitre 03 Réalisation technique
– Modification des données par autres tiers :les messages transmis par de nombreux
points avant qu’ils nous parvient, il est donc tout à fait possible de les capturer et les
modifier en chemin. Imaginez un fichier contient les résultats d’une recherche envoyés à
l’université, une modification du bénéficiaire en cours de route serait fâcheuse. Afin de
contrer cette menace, chaque portion de message qui passe par le tunnel OpenVPN est
munie d’un mécanisme de détection des modifications. En cas d’altération de contenu
du message sera écarté.
– Voler l’identité :sur internet, les identités d’une personne peut être usurpé facilement
par quelqu’un d’autre. Dans notre exemple il convient d’être certain que seules les
personnes autorisées auront accès aux données de l’université. C’est pourquoi les VPN
utilisent des systèmes de contrôle d’identité. Le système que nous avons choisi se base
sur les mots de passes et les certificats.
82
Chapitre 03 Réalisation technique
Conclusion
Dans ce chapitre, nous avons pu décrit la procédure de configuration concernant le VPN
par le protocole OpenVPN sous le pare-feu PFsense.
L’objectif était d’inter-connecter le client et le serveur sur le quel est installée l’application
Nextcloud via un tunnel sécurisé, nous avons atteint notre objectif comme nous avons pu le
constater grâce aux captures ci-haut.
83
Conclusion Générale
Mon projet consistait à la mise en œuvre d’un VPN d’accès pour le centre universitaire
Abdelhafid Boussoufe -Mila-, ayant comme objectif principal d’offrir un moyen sûr et sécurisé
qui permettra au enseignants et étudiants d’accéder au réseau interne de l’université par
l’Internet, depuis l’extérieur du réseau (leur domicile, place publiques) afin de poursuivre
leurs activités sans pour autant risquer de compromettre la sécurité du réseau interne.
Au travers de ce travail, la mise en œuvre du VPN s’est basée sur la solution SSL OpenVPN
qui présente l’avantage d’offrir une facilité de configuration et offre une authentification en
deux niveaux, au niveau de la machine avec des certificats SSL et au niveau des utilisateurs
avec un login et un mot de passe.
Pour conclure, ce contexte ma permit de réaliser un travail dans des conditions similaires à
celle d’un vrai poste dans l’administration réseau et faisant appel aux différentes connaissances
et un maximum de recherches. En guise de perspectives, nous envisageons de développer
une application de partage des fichiers au lieu de Nextcloud dans la plateforme docker et
implémenter le VPN dans une université ou au sein d’une entreprise publique ayant plusieurs
sites.
84
Bibliographie
[3] Jean-paul.A, 2013, Les VPN(Foncionnement, mise en oeuvre et maintenance des réseaux
privés virtuqls), Editions ENI, France, pp335-360.
85
Bibliographie
86
Résumé
Dans ce mémoire, nous nous somme basés sur des solutions de sécurité standardisées
pour mettre en place une architecture sécurisée de partage des documents universitaires
(examen, cours...). Ce qui permet l’échange des documents entre les différents acteurs de
l’université notamment les étudiants et les enseignants d’une manière fiable et sécurisé.
L’architecture proposée se base sur l’OpenVPN qui est considéré comme un standard
pour le VPN. L’OpenVPN se base sur SSL/TLS, il est très répondu et fournit des ser-
vices de sécurité comme la confidentialité, l’intégrité, l’authentification.
L’architecture proposé est fondu sur trois élément principales, i) La plateforme EVE-ng
pour simuler notre topologie, ii )le pare-feu PFsense pour la configuration de OpenVPN
et iii) docker pour la mise en œuvre de partage des fichiers Nextcloud.
Mots.clés : VPN, OpenVPN, SSL/TLS, Certificat, PFsense, Docker, EVE-ng.
Abstract
In this thesis, we have based ourselves on standardized security solutions to set up a
secure architecture for sharing university documents (exam, courses...). This allows the
exchange of documents between the different actors of the university, in particular stu-
dents and teachers, in a reliable and secure way.
The proposed architecture is based on three main elements, i)The EVE-ng platform to
simulate our topology, ii)the PFsense firewall for OpenVPN configuration and iii) docker
for Nextcloud file sharing implementation.
Keywords : VPN, OpenVPN, SSL/TLS, Certificat, PFsense, Docker, EVE-ng.