Vous êtes sur la page 1sur 29

ESMT/INGC2/2020

RAPPORT DE CRYPTOGRAPHIE

VPN avec OpenVPN sous Windows


et sous Linux

Enseignant :

Dr. Demba SOW

NOM et Prénom (s) des étudiants :

 DIABATE Moumouni
 KIENDREBEOGO Moctar
 TAPSOBA Wendsom Djafar J.

Année scolaire : 2019 – 2020


Table des matières
INTRODUCTION ........................................................................................................ 4

I. PRESENTATION ET INSTALLATION DE OPENVPN ......................................... 5

1. Présentation...................................................................................................... 5

1.1. Généralités ................................................................................................. 5

1.2. Principe de fonctionnement ........................................................................ 5

2. Installation......................................................................................................... 6

2.1. Notes Linux (en utilisant le package RPM)................................................. 6

2.2. Notes Linux (sans RPM) ............................................................................ 7

2.3. Notes Windows .......................................................................................... 7

II. Mise en œuvre ..................................................................................................... 8

1. Configuration de votre propre autorité de certification (CA) et la génération de


certificats et de clés pour un serveur Openvpn et plusieurs clients ......................... 8

1.1. Générer le certificat et la clé de l'autorité de certification principale ........... 9

1.2. Générer un certificat et une clé pour le serveur ....................................... 12

1.3. Générer des certificats et des clés pour 3 clients ..................................... 12

1.4. Générer des paramètres Diffie Hellman ................................................... 13

1.5. Fichiers clés ............................................................................................. 13

2. Création de fichiers de configuration pour le serveur et les clients ................. 16

2.1. Obtention des exemples de fichiers de configuration ............................... 16

2.2. Modification du fichier de configuration du serveur .................................. 16

2.3. Modification des fichiers de configuration client ....................................... 17

3. Démarrage du Vpn et test de la connectivité initiale ....................................... 18

3.1. Démarrage du serveur ............................................................................. 18

3.2. Démarrage du client ................................................................................. 19

III. COMPLEMENTS ............................................................................................ 20

1. Dépannage ..................................................................................................... 20
Page | 2
2. Configuration d’Openvpn pour s’exécuter automatiquement au démarrage du
système ................................................................................................................. 21

2.1. Linux......................................................................................................... 21

2.2. Windows ................................................................................................... 22

IV. DEMONSTRATION ........................................................................................ 22

1. Configuration .................................................................................................. 22

2. Démarrage ...................................................................................................... 24

3. Test de connectivite ........................................................................................ 25

Conclusion ................................................................................................................ 29

Page | 3
INTRODUCTION

Un VPN ou réseau privé virtuel est un tunnel sécurisé entre votre appareil et Internet. Le VPN
protège votre trafic web privé contre les interférences, l'espionnage et la censure. Votre adresse
IP est masquée et vos données chiffrées. Même votre fournisseur d'accès Internet ne peut
accéder à vos données de navigation. Un VPN comporte certains avantages. Voici quelques-
uns de ces avantages :

 Sécurité : Le VPN offre un niveau de protection meilleur et plus élevé puisque toutes
les données sont cryptées. Cela offre une sécurité supplémentaire par rapport aux pare-
feu.
 Accès à distance : pour assurer une haute sécurité, de nombreuses organisations,
administrations et bureaux de la défense n’autorisent l’accès à distance qu’à travers leur
VPN.
 Chiffrement FAI : FAI est l’abréviation de Fournisseur d’accès à Internet. Si vous
utilisez une connexion Wi-Fi publique, le FAI peut lire toutes vos données non
cryptées. Grâce à un VPN, vous pouvez garder vos données sécurisées et cryptées en
ne permettant même pas au FAI de les lire.
 Anonymat : un VPN permet aux utilisateurs de rester anonymes tout en naviguant sur
Internet. Les IP ne sont pas traçables.
 Changement d’IP : Le VPN permet aux utilisateurs de changer leurs IP et de naviguer
en toute sécurité. Ceci est utilisé dans certains cas dans les régions qui ont des
restrictions basées sur la localisation.
 Restriction : Certains FAI restreignent la bande passante des utilisateurs en fonction du
contenu. Un tel blocage peut être évité en utilisant un VPN.

En outre, un VPN sécurise vos transactions en utilisant le cryptage.

Page | 4
I. PRESENTATION ET INSTALLATION DE OPENVPN

1. Présentation
1.1.Généralités

OpenVPN est un VPN SSL complet qui implémente une extension de réseau sécurisée OSI
couche 2 ou 3 en utilisant le protocole SSL / TLS standard de l'industrie. Il prend en charge des
méthodes d'authentification client flexibles basées sur des certificats, des cartes à puce et / ou
des informations d'identification de nom d'utilisateur / mot de passe, et permet à l'utilisateur ou
des stratégies de contrôle d'accès spécifiques au groupe utilisant des règles de pare-feu
appliquées à l'interface virtuelle VPN. OpenVPN n'est pas un proxy d'application Web et ne
fonctionne pas via un navigateur Web.

OpenVPN 2.0 étend les capacités d’OpenVPN1.x en offrant un mode client / serveur évolutif,
permettant à plusieurs clients de se connecter à un seul processus serveur OpenVPN sur un seul
port TCP ou UDP. OpenVPN 2.3 comprend un grand nombre d’améliorations, notamment la
prise en charge complète d'IPv6 et la prise en charge de PolarSSL.

OpenVPN cumule de nombreux avantages car il est :

 Open source et fiable ;


 Gratuit au niveau logiciel ;
 Multi-plates-formes (c'est-à-dire compatible Windows, Linux, Mac OS X, ...) ;
 Très répandu ;
 Capable de tourner sur n'importe quel port en écoute côté serveur (y compris 80 ou 443).
Par contre, les protocoles qu'il utilise ne sont pas pris en charge nativement par les systèmes
d'exploitations, et il est donc nécessaire d'installer son client sur votre ordinateur.

1.2.Principe de fonctionnement

Pour accepter une connexion, OpenVPN passe par ces étapes :

1. Le serveur doit recevoir la clé partagée (clé publique)

2. Il envoie son certificat électronique, qui est vérifié par le client

Page | 5
3. Le client envoie son compte/mot de passe ou son certificat

4. Le serveur vérifie le compte/mot de passe auprès du serveur Radius, ou il vérifie le certificat


de manière autonome.

Une fois la session établie, le serveur attribue au client une adresse virtuelle de la plage du
réseau alloué au serveur lors de la configuration. Ainsi le client passera désormais par cette
adresse IP sur internet.

2. Installation

Le code source d'OpenVPN et les programmes d'installation de Windows peuvent être au lien
https://openvpn.net/community-downloads/. Les versions récentes (2.2 et ultérieures) sont
également disponibles sous forme de packages Debian et RPM. Pour plus de détails vous
pouvez visiter le site https://community.openvpn.net/openvpn.

Pour des raisons de sécurité, c'est une bonne idée de vérifier la signature de libération
(https://openvpn.net/community-resources/sig/) du fichier après le téléchargement.

L'exécutable OpenVPN doit être installé sur les machines serveur et client, car l'exécutable
unique fournit des fonctions client et serveur.

2.1.Notes Linux (en utilisant le package RPM)

Si vous utilisez une distribution Linux qui prend en charge les packages RPM (SuSE, Fedora,
Redhat, etc.), il est préférable d'installer en utilisant ce mécanisme. La méthode la plus simple
consiste à rechercher un fichier RPM binaire existant pour votre distribution. Vous pouvez
également créer votre propre fichier RPM binaire :

rpmbuild -tb openvpn- [version] .tar.gz

Une fois que vous avez le fichier ‘’.rpm’’, vous pouvez l'installer avec le

rpm -ivh openvpn- [détails] .rpm

Ou mettre à niveau une installation existante avec

rpm -Uvh openvpn- [détails] .rpm

Page | 6
L'installation d'OpenVPN à partir d'un package RPM binaire a ces dépendances :

 « openssl »
 « lzo »
 « pam »

De plus, si vous créez votre propre package RPM binaire, il existe plusieurs dépendances
supplémentaires :

 « openssl-devel »
 « lzo-devel »
 « pam-devel »

2.2.Notes Linux (sans RPM)

Si vous utilisez Debian, Gentoo ou une distribution Linux non basée sur RPM, utilisez votre
mécanisme d'empaquetage spécifique à la distribution tel que « apt-get » sur Debian
ou « emerge » sur Gentoo.

Il est également possible d'installer OpenVPN sur Linux en utilisant la méthode universelle ‘’.
/configure ‘’. Développez d'abord le fichier ‘’.tar.gz’’ :

tar xfz openvpn- [version] .tar.gz

Puis cd dans le répertoire de niveau supérieur et tapez:

./configure
make
make install

2.3.Notes Windows

OpenVPN pour Windows peut être installé à partir du fichier « exe » autoinstallable sur la page
de téléchargement d’OpenVPN. Il est bon à noter que OpenVPN ne fonctionnera que sur
Windows XP ou version ultérieure. Notez également que OpenVPN doit être installé et exécuté
par un utilisateur disposant de privilèges administratifs (cette restriction est imposée par

Page | 7
Windows, pas OpenVPN). La restriction peut être contournée en exécutant OpenVPN en
arrière-plan en tant que service, auquel cas même les utilisateurs non administrateurs pourront
accéder au VPN, une fois celui-ci installé.

Les programmes d'installation officiels d'OpenVPN pour Windows incluent une interface
graphique OpenVPN, qui permet de gérer les connexions OpenVPN à partir d'une applet dans
la barre d'état système. D'autres applications GUI sont également disponibles.

Après avoir exécuté le programme d'installation de Windows, OpenVPN est prêt à l'emploi et
s'associera aux fichiers portant l’extension « .ovpn » . Pour exécuter OpenVPN, vous pouvez :

 Faites un clic droit sur un fichier de configuration OpenVPN (.ovpn) et


sélectionnez Démarrer OpenVPN sur ce fichier de configuration . Une fois en cours
d'exécution, vous pouvez utiliser la touche F4 pour quitter.
 Exécutez OpenVPN à partir d'une fenêtre d'invite de commandes avec une commande
telle que :

openvpn myconfig.ovpn

Une fois exécuté dans une fenêtre d'invite de commandes, OpenVPN peut être arrêté
par la touche F4.

 Exécutez OpenVPN en tant que service en plaçant un ou plusieurs fichiers de


configuration ayant comme extension toujours « .ovpn » dans \ Program Files \
OpenVPN \ config et en démarrant le service OpenVPN, qui peut être contrôlé à partir
du menu Démarrer -> Panneau de configuration -> Outils d'administration -> Services.

II. Mise en œuvre

1. Configuration de votre propre autorité de certification (CA) et la


génération de certificats et de clés pour un serveur Openvpn et
plusieurs clients

La première étape de la construction d'une configuration OpenVPN 2.x consiste à établir une
PKI (infrastructure à clé publique). L'ICP comprend:

Page | 8
 Un certificat séparé (également appelé clé publique) et une clé privée pour le serveur et
pour chaque client ;
 Un certificat et une clé d'Autorité de Certification principale (CA) qui sont utilisés pour
signer chacun des certificats de serveur et de client.

OpenVPN prend en charge l'authentification bidirectionnelle basée sur des certificats, ce qui
signifie que le client doit authentifier le certificat de serveur et que le serveur doit authentifier
le certificat client avant d'établir une confiance mutuelle.

Le serveur et le client authentifieront l'autre en vérifiant d'abord que le certificat présenté a été
signé par l'Autorité de Certification principale (CA), puis en testant des informations dans l'en-
tête du certificat maintenant authentifié, telles que le nom commun du certificat ou le type de
certificat (client ou serveur).

Ce modèle de sécurité possède un certain nombre de fonctionnalités souhaitables du point de


vue VPN:

 Le serveur n'a besoin que de son propre certificat / clé ; il n'a pas besoin de connaître
les certificats individuels de chaque client qui pourraient éventuellement s'y connecter.
 Le serveur n'acceptera que les clients dont les certificats ont été signés par le certificat
CA maître (que nous générerons ci-dessous). Et parce que le serveur peut effectuer cette
vérification de signature sans avoir besoin d'accéder à la clé privée CA elle-même, il est
possible que la clé CA (la clé la plus sensible de l'ensemble de l'ICP) réside sur une
machine complètement différente, même sans connexion réseau.
 Si une clé privée est compromise, elle peut être désactivée en ajoutant son certificat à
une CRL (liste de révocation de certificats). La liste de révocation de certificats permet
de rejeter sélectivement les certificats compromis sans nécessiter la reconstruction
complète de la PKI.
 Le serveur peut appliquer des droits d'accès spécifiques au client en fonction des champs
de certificat intégrés, tels que le nom commun.

Notez que les horloges du serveur et du client doivent être à peu près synchronisées ou que les
certificats peuvent ne pas fonctionner correctement.

1.1. Générer le certificat et la clé de l'autorité de certification principale

Page | 9
Dans cette section, nous allons générer un certificat / clé d'autorité de certification maître, un
certificat / clé de serveur et des certificats / clés pour 3 clients distincts.

Pour la gestion de l'ICP, nous utiliserons easy-rsa 2, un ensemble de scripts fourni avec
OpenVPN 2.2.x et versions antérieures. Si vous utilisez OpenVPN 2.3.x, vous devez
télécharger easy-rsa 2 séparément d'ici.

Pour la gestion de l'ICP, nous utiliserons easy-rsa 2, un ensemble de scripts fourni avec
OpenVPN 2.2.x et versions antérieures. Si vous utilisez OpenVPN 2.3.x, vous devrez peut-être
télécharger easy-rsa 2 séparément de la page du projet easy-rsa-old. Un package easy-rsa 2 est
également disponible pour Debian et Ubuntu dans les dépôts du logiciel OpenVPN. Sur les
plateformes * NIX, vous devriez plutôt utiliser easy-rsa 3 ; reportez-vous à sa propre
documentation pour plus de détails.

Si vous utilisez Linux, BSD ou un système d'exploitation de type Unix, ouvrez un « shell » et
un « cd » dans le sous - répertoire easy-rsa . Si vous avez installé OpenVPN à partir d'un
fichier RPM ou DEB, le répertoire easy-rsa se trouve généralement dans /usr/share
/doc/packages/openvpn ou /usr/share/doc/openvpn (il est préférable de copier ce répertoire
vers un autre emplacement tels que /etc/openvpn, avant toute modification, afin que les futures
mises à niveau du package OpenVPN n'écrasent pas vos modifications). Si vous avez installé
à partir d'un fichier « .tar.gz », le répertoire easy-rsa sera dans le répertoire de niveau supérieur
de l'arborescence source développée.

Si vous utilisez Windows, ouvrez une fenêtre d'invite de commandes (appui simultané du
bouton « Windows + R » puis écrire « cmd » et validé en cliquant sur « OK », ou si vous
trouvez ça compliqué, allez-y juste faire un clic droit sur le menu démarré Windows, puis
sélectionné « Invite de commandes (admin) ») et accédez au chemin du répertoire easy-
rsa C:\Program Files\OpenVPN\easy-rsa en tapant sur l’invite de commandes :

cd C:\Program Files\OpenVPN\easy-rsa

Exécutez le fichier de commandes suivant pour copier les fichiers de configuration en place
(cela remplacera tous les fichiers vars.bat et openssl.cnf préexistants):

init-config

Page | 10
Modifiez maintenant le fichier vars (appelé vars.bat sous Windows) et définissez les
paramètres KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG et
KEY_EMAIL. Ne laissez aucun de ces paramètres vide.

Ensuite, initialisez l'ICP :

 Sous Linux / BSD / Unix, on tapera d’abord la première commande, puis la deuxième
et ensuite la troisième :

./vars
./clean-all
./build-ca

 Sous Windows, on tapera d’abord la première commande, puis la deuxième et ensuite


la troisième :

vars
clean-all
build-ca

La commande finale (build-ca) créera le certificat et la clé de l'Autorité de Certification (CA)


en appelant la commande interactive openssl. Le résultat sera donc :

ai:easy-rsa # ./build-ca
Generating a 1024 bit RSA private key
............++++++
...........++++++
writing new private key to 'ca.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [KG]:
State or Province Name (full name) [NA]:
Locality Name (eg, city) [BISHKEK]:

Page | 11
Organization Name (eg, company) [OpenVPN-TEST]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:OpenVPN-CA
Email Address [me@myhost.mydomain]:

Notez que dans la séquence ci-dessus, la plupart des paramètres interrogés ont été définis par
défaut sur les valeurs définies dans les fichiers vars ou vars.bat . Le seul paramètre à entrer
explicitement est le « nom commun ou Common name ». Dans l'exemple ci-dessus, j'ai
utilisé « OpenVPN-CA ».

1.2. Générer un certificat et une clé pour le serveur

Ensuite, nous générerons un certificat et une clé privée pour le serveur.

 Sous Linux / BSD / UNIX :

./build-key-server server

 Sous Windows:

build-key-server server

Comme à l'étape précédente, la plupart des paramètres peuvent être définis par défaut. Lorsque
le nom commun est demandé, entrez « nomDuServer ». Deux autres requêtes nécessitent des
réponses positives (c’est-à-dire répondre en entrant « y » comme réponse) à savoir : « Signer le
certificat? [y / n] » et « 1 demande de certificat sur 1 certifiée, validée? [y / n] ».

1.3. Générer des certificats et des clés pour 3 clients

La génération de certificats clients est très similaire à l'étape précédente.

 Sous Linux / BSD / UNIX:

./build-key client1
./build-key client2
./build-key client3

 Sous Windows:

Page | 12
build-key client1
build-key client2
build-key client3

Si vous souhaitez protéger par mot de passe vos clés client, remplacez le script « build-key »
par « build-key-pass » suivi du nom.

N'oubliez pas que pour chaque client, il faut s’assurer de taper le nom
commun approprié lorsque vous y êtes invité, c'est-à-dire « client1 », « client2 » ou « client3
». Utilisez toujours un nom commun unique pour chaque client.

1.4. Générer des paramètres Diffie Hellman

Les paramètres Diffie Hellman doivent être générés pour le serveur OpenVPN. Cette opération
consiste à la génération d’un grand nombre premier. Cette opération dure plusieurs dizaines de
secondes à plusieurs minutes selon votre configuration. Le fichier généré s’appelle «
dh1024.pem » et doit uniquement être copié dans le dossier config du serveur. Ce fichier n’est
pas pour autant confidentiel.

 Sous Linux / BSD / Unix:

./build-dh

Sous Windows :

build-dh

Production :

ai:easy-rsa # ./build-dh
Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
.................+...........................................
...................+.............+.................+.........
......................................

1.5. Fichiers clés

Page | 13
Nous allons maintenant trouver nos clés et certificats nouvellement générés dans le sous-
répertoire qui a pour chemin « C :\Program Files\OpenVPN\easy-rsa\key » . Voici une
explication des fichiers concernés:

Nom de
Voulu par Objectif Secret
fichier

Certificat d'autorité de
ca.crt serveur + tous les clients NON
certification racine

machine à signer les clés Clé de l'autorité de


ca.key OUI
uniquement certification racine

dh {n} .pem serveur uniquement Paramètres Diffie Hellman NON

server.crt serveur uniquement Certificat de serveur NON

server.key serveur uniquement Clé du serveur OUI

client1.crt client1 uniquement Certificat Client1 NON

client1.key client1 uniquement Clé Client1 OUI

client2.crt client2 uniquement Certificat Client2 NON

client2.key client2 uniquement Clé Client2 OUI

client3.crt client3 uniquement Certificat Client3 NON

Page | 14
client3.key client3 uniquement Clé Client3 OUI

La dernière étape du processus de génération de clés consiste à copier tous les fichiers sur les
machines qui en ont besoin dans le répertoire config, ou dans un autre répertoire mais en
précisant cette fois-ci le chemin du répertoire dans le fichier de configuration, en prenant soin
de copier les fichiers secrets sur un canal sécurisé.

Et même quand on ne dispose pas de canal sécurisé, il est toujours possible de configurer
l'ICP. Dans l'exemple ci-dessus, par souci de concision, nous avons généré toutes les clés
privées au même endroit. Avec un peu plus d'efforts, nous aurions pu procéder
différemment. Par exemple, au lieu de générer le certificat client et les clés sur le serveur, nous
aurions pu demander au client de générer sa propre clé privée localement, puis de soumettre
une demande de signature de certificat (CSR) à la machine de signature de clé. À son tour, la
machine à signer les clés aurait pu traiter la CSR et renvoyer un certificat signé au client. Cela
aurait pu être fait sans jamais exiger qu'un fichier .key secret quitte le disque dur de la machine
sur laquelle il a été généré.

On pourrait s’en arrêter là, mais on va ajouter une dernière clé pour plus de sécurité :

 Sous Linux / BSD / UNIX :

./openvpn -–genkey –-secret ta.key

Sous Windows:

build openvpn –-genkey –-secret ta.key

Cette clé va permettre d’ajouter une couche de sécurité supplémentaire avec une
authentification TLS. Cela va créer un pare-feu HMAC et aidera à contrer les attaques de type
DoS et le flood de port UDP. Cette clé est à copier dans le répertoire config, ou dans un autre
répertoire mais en précisant cette fois-ci le chemin du répertoire dans le fichier de configuration
de chaque machine et sa prise en compte nécessitera une modification dans le fichier de
configuration. Ce fichier est partagé entre les machines et est secret. Vous devriez donc utiliser
une connexion sécurisée préexistante pour le transmettre aux clients.

Page | 15
2. Création de fichiers de configuration pour le serveur et les clients
2.1. Obtention des exemples de fichiers de configuration

Il est préférable d'utiliser les exemples de fichiers de configuration OpenVPN comme point de
départ pour votre propre configuration. Ces fichiers se trouvent également dans

 Le répertoire « sample-config-files » de la distribution source OpenVPN ;


 Le répertoire « sample-config-files » dans /usr/share/doc/packages/openvpn
ou /usr/share/doc/openvpn si vous avez installé à partir d'un package RPM ou DEB.
 Menu Démarrer -> Tous les programmes -> OpenVPN -> Exemples de fichiers de
configuration OpenVPN sous Windows

Notez que sous Linux, BSD ou des systèmes d'exploitation de type Unix, les exemples de
fichiers de configuration sont nommés server.conf et client.conf. Sous Windows, ils sont
nommés server.ovpn et client.ovpn.

2.2. Modification du fichier de configuration du serveur

L'exemple de fichier de configuration de serveur est un point de départ idéal pour une
configuration de serveur OpenVPN. Il créera un VPN à l'aide d’une interface
réseau virtuelle TUN (pour le routage), écoutera les connexions client sur le port UDP
1194 (numéro de port officiel d'OpenVPN) et distribuera des adresses virtuelles aux clients se
connectant à partir du sous-réseau 10.8.0.0/24.

Avant d'utiliser l'exemple de fichier de configuration, vous devez d'abord modifier les
paramètres du chemin de ca, cert, key et dh pour pointer vers les fichiers que vous avez
générés dans la section PKI ci-dessus.

À ce stade, le fichier de configuration du serveur est utilisable, mais vous pouvez toujours le
personnaliser davantage:

 Si vous utilisez un pontage Ethernet, vous devez utiliser bridge-serveur et dev


tap au lieu de server et dev tun .
 Si vous souhaitez que votre serveur OpenVPN écoute sur un port TCP au lieu d'un port
UDP, utilisez proto tcp au lieu de proto udp (si vous voulez qu'OpenVPN écoute à la
fois sur un port UDP et TCP, vous devez exécuter deux instances OpenVPN distinctes).

Page | 16
 Si vous souhaitez utiliser une plage d'adresses IP virtuelles autre que 10.8.0.0/24, vous
devez modifier la directive server. N'oubliez pas que cette plage d'adresses IP virtuelles
doit être une plage privée qui n'est actuellement pas utilisée sur aucun des réseaux
locaux utilisés (serveur, client) sinon il y aura conflit de passerelle.
 Dé-commentez la directive client to client si vous souhaitez que les clients se
connectant puissent se joindre via le VPN. Par défaut, les clients ne pourront accéder
qu'au serveur.
 Si vous utilisez Linux, BSD ou un système d'exploitation de type Unix, vous pouvez
améliorer la sécurité en dé-commentant les directives user nobody et group nobody.

Si vous souhaitez exécuter plusieurs instances OpenVPN sur la même machine, chacune
utilisant un fichier de configuration différent, il est possible si vous:

 Utilisez un numéro de port différent pour chaque instance (les protocoles UDP et TCP
utilisent des espaces de port différents afin que vous puissiez exécuter un démon en
écoute sur UDP-1194 et un autre sur TCP-1194).
 Si vous utilisez Windows, chaque configuration OpenVPN doit avoir son propre
adaptateur TAP-Windows. Vous pouvez ajouter des adaptateurs supplémentaires en
allant dans le menu Démarrer -> Tous les programmes -> TAP-Windows -> Ajouter
un nouvel adaptateur Ethernet virtuel TAP-Windows.
 Si vous exécutez plusieurs instances OpenVPN à partir du même répertoire, veillez à
modifier les directives qui créent des fichiers de sortie afin que plusieurs instances ne
se remplacent pas mutuellement. Ces directives incluent log, log-
append, status et ifconfig-pool-persist.

2.3. Modification des fichiers de configuration client

L'exemple de fichier de configuration client (client.conf sous Linux / BSD / Unix


ou client.ovpn sous Windows) reflète les directives par défaut définies dans l'exemple de
fichier de configuration du serveur.

 Comme le fichier de configuration du serveur, modifiez d'abord les


paramètres ca, cert et key pour pointer vers les fichiers que vous avez générés dans la
section PKI ci-dessus. Notez que chaque client doit avoir sa propre paire

Page | 17
de certificats / clés. Seul le fichier ca est universel sur le serveur OpenVPN et tous les
clients.
 Ensuite, modifiez la directive distante pour pointer vers le nom d'hôte / l'adresse IP et
le numéro de port du serveur OpenVPN (si votre serveur OpenVPN s'exécute sur une
seule machine NIC derrière un pare-feu / passerelle NAT, utilisez l'adresse IP publique
de la passerelle et un numéro de port que vous avez configuré pour passer la passerelle
au serveur OpenVPN).
 Enfin, assurez-vous que le fichier de configuration client est cohérent avec les directives
utilisées dans la configuration du serveur. La principale chose à vérifier est que
les directives dev (tun ou tap) et proto (udp ou tcp) sont cohérentes. Assurez-vous
également que comp-lzo et fragment, s'ils sont utilisés, sont présents dans les fichiers
de configuration client et serveur.

3. Démarrage du Vpn et test de la connectivité initiale


3.1. Démarrage du serveur

Tout d'abord, assurez-vous que le serveur OpenVPN sera accessible depuis Internet. Cela
signifie:

 Ouvrir le port UDP 1194 sur le pare-feu (ou quel que soit le port TCP / UDP que vous
avez configuré), ou ;
 Configurer une règle de transfert de port pour transférer le port UDP 1194 du pare-feu
/ passerelle vers la machine exécutant le serveur OpenVPN.

Ensuite, assurez-vous que l'interface TUN / TAP n'est pas pare-feu .

Pour simplifier le dépannage, il est préférable de démarrer initialement le serveur OpenVPN à


partir de la ligne de commande (ou de cliquer avec le bouton droit sur le fichier .ovpn sous
Windows), plutôt que de le démarrer en tant que démon ou service:

openvpn [fichier de configuration du serveur]

Un démarrage normal du serveur devrait ressembler à ceci (la sortie variera d'une plateforme à
l'autre):

Page | 18
Sun Feb 6 20:46:38 2005 OpenVPN 2.0_rc12 i686-suse-linux [SSL] [LZO] [EPOLL] built
on Feb 5 2005

Sun Feb 6 20:46:38 2005 Diffie-Hellman initialized with 1024 bit key
Sun Feb 6 20:46:38 2005 TLS-Auth MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ]
Sun Feb 6 20:46:38 2005 TUN/TAP device tun1 opened
Sun Feb 6 20:46:38 2005 /sbin/ifconfig tun1 10.8.0.1 pointopoint 10.8.0.2 mtu 1500
Sun Feb 6 20:46:38 2005 /sbin/route add -net 10.8.0.0 netmask 255.255.255.0 gw
10.8.0.2
Sun Feb 6 20:46:38 2005 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:23 ET:0
EL:0 AF:3/1 ]
Sun Feb 6 20:46:38 2005 UDPv4 link local (bound): [undef]:1194
Sun Feb 6 20:46:38 2005 UDPv4 link remote: [undef]
Sun Feb 6 20:46:38 2005 MULTI: multi_init called, r=256 v=256
Sun Feb 6 20:46:38 2005 IFCONFIG POOL: base=10.8.0.4 size=62
Sun Feb 6 20:46:38 2005 IFCONFIG POOL LIST
Sun Feb 6 20:46:38 2005 Initialization Sequence Completed

3.2. Démarrage du client

Comme dans la configuration du serveur, il est préférable de démarrer initialement le serveur


OpenVPN à partir de la ligne de commande (ou sous Windows, en cliquant avec le bouton droit
sur le fichier client.ovpn ), plutôt que de le démarrer en tant que démon ou service:

openvpn [fichier de configuration client]

Un démarrage normal du client sous Windows ressemblera à la sortie du serveur ci-


dessus et devrait se terminer par le message Séquence d'initialisation terminée.

Maintenant, essayez un ping sur le VPN à partir du client. Si vous utilisez le routage
(c.-à-d. Dev tun dans le fichier de configuration du serveur), essayez:

ping 10.8.0.1

Si vous utilisez le pontage (c’est à dire Dev tap dans le fichier de configuration du serveur),
essayez d'envoyer une requête ping à l'adresse IP d'une machine sur le sous-réseau Ethernet du
serveur.

Page | 19
Si le ping réussit, alors félicitation car vous avez réussi ! Vous avez maintenant un VPN
fonctionnel.

III. COMPLEMENTS

1. Dépannage

Si le ping a échoué ou que l'initialisation du client OpenVPN n'a pas abouti, voici une liste de
contrôle des symptômes courants et de leurs solutions:

 Vous obtenez le message d'erreur: Erreur TLS: la négociation de la clé TLS n'a pas
pu se produire dans les 60 secondes (vérifiez votre connectivité réseau). Cette erreur
indique que le client n'a pas pu établir de connexion réseau avec le serveur. Solutions :
 Assurez-vous que le client utilise le nom d'hôte / l'adresse IP et le numéro de
port corrects qui lui permettront d'atteindre le serveur OpenVPN.
 Si la machine du serveur OpenVPN est un boîtier à une seule carte réseau à
l'intérieur d'un réseau local protégé, assurez-vous que vous utilisez une règle de
transfert de port correcte sur le pare-feu de la passerelle du serveur. Par exemple,
supposons que votre boîte OpenVPN se trouve au 192.168.4.4 à l'intérieur du
pare-feu, à l'écoute des connexions client sur le port UDP 1194. La passerelle
NAT desservant le sous-réseau 192.168.4.x doit avoir une règle de transfert de
port qui indique le port UDP 1194 de transfert de mon adresse IP publique
à 192.168.4.4.
 Ouvrez le pare-feu du serveur pour autoriser les connexions entrantes vers le
port UDP 1194 (ou le port TCP / UDP que vous avez configuré dans le fichier
de configuration du serveur).
 Vous obtenez le message d'erreur : Séquence d'initialisation terminée avec des
erreurs - Cette erreur peut se produire sous Windows si (a) vous n'avez pas le service
client DHCP en cours d'exécution, ou (b) vous utilisez certains pare-feu personnels tiers
sur XP SP2. Solution : démarrez le serveur client DHCP et assurez-vous que vous
utilisez un pare-feu personnel qui fonctionne correctement sous XP SP2.
 Vous obtenez le message Séquence d'initialisation terminée mais le test ping échoue
- Cela indique généralement qu'un pare-feu sur le serveur ou le client bloque le trafic
réseau VPN en filtrant sur l'interface TUN/TAP. Solution : désactivez le pare-feu client

Page | 20
(s'il en existe un) pour filtrer l'interface TUN/TAP sur le client. Par exemple, sur
Windows XP SP2, vous pouvez le faire en accédant au Centre de sécurité Windows -
> Pare-feu Windows -> Avancé et décocher la case qui correspond à l'adaptateur TAP-
Windows (désactiver le pare-feu client pour filtrer l'adaptateur TUN/TAP est
généralement raisonnable du point de vue de la sécurité, car vous dites essentiellement
au pare-feu de ne pas bloquer le trafic VPN authentifié). Assurez-vous également que
l'interface TUN/TAP sur le serveur n'est pas filtrée par un pare-feu (cela dit, notez que
le pare-feu sélectif de l'interface TUN/TAP côté serveur peut conférer certains
avantages en matière de sécurité. Voir la section sur les politiques d'accès ci-dessous.
).
 La connexion se bloque au démarrage lors de l'utilisation d'une configuration proto
udp, le fichier journal du serveur affiche cette ligne :

TLS: paquet initial de xxxx: x, sid = xxxxxxxx xxxxxxxx

Toutefois, le journal client n'affiche pas de ligne équivalente.

Solution : vous disposez d'une connexion unidirectionnelle entre le client et le serveur. La


direction du serveur vers le client est bloquée par un pare-feu, généralement côté client. Le
pare-feu peut être (a) un pare-feu logiciel personnel fonctionnant sur le client, ou (b) la
passerelle de routeur NAT pour le client. Modifiez le pare-feu pour permettre au retour des
paquets UDP du serveur d'atteindre le client.

2. Configuration d’Openvpn pour s’exécuter automatiquement au


démarrage du système

L'absence de normes dans ce domaine signifie que la plupart des systèmes d'exploitation ont
une manière différente de configurer les démons / services pour le démarrage automatique au
démarrage. La meilleure façon de configurer cette fonctionnalité par défaut est d'installer
OpenVPN en tant que package, par exemple via RPM sous Linux ou en utilisant le programme
d'installation de Windows.

2.1. Linux

Page | 21
Si vous installez OpenVPN via un package RPM ou DEB sous Linux, le programme
d'installation configurera un ‘’initscript’’. Une fois exécuté, l'initscript recherchera les fichiers
de configuration .conf dans /etc/openvpn et, s'il est trouvé, démarrera un démon OpenVPN
distinct pour chaque fichier.

2.2. Windows

Le programme d'installation de Windows configurera un wrapper de service, mais laissez-le


désactivé par défaut. Pour l'activer, accédez à Panneau de configuration / Outils
d'administration / Services, sélectionnez le service OpenVPN, cliquez avec le bouton droit sur
les propriétés et définissez le Type de démarrage sur Automatique. Cela configurera le service
pour un démarrage automatique au prochain redémarrage.

Une fois démarré, OpenVPN Service Wrapper analysera le dossier C :\Program


Files\OpenVPN\config pour les fichiers de configuration .ovpn , en démarrant un processus
OpenVPN distinct sur chaque fichier.

IV. DEMONSTRATION

1. Configuration

 Configuration du server

Nous configurons ici le VPN pour utiliser le réseau 10.1.5.0 en mode tunnel sur le port d’écoute
1194 qui est le port par défaut de OpenVPN (utiliser le port par défaut est fortement déconseillé,
nous l’utilisons ici juste par contrainte et pour besoin d’expérimentation). Nous utilisons
également comme algorithme de chiffrement AES-128-CBC et comme algorithme de
compression comp-lzo.

Page | 22
 Configuration du client

Page | 23
2. Démarrage

 Démarrage server

Sur Linux

Sur Windows

Page | 24
 Démarrage client

Sur Linux

Sur Windows

3. Test de connectivite

Page | 25
 Du coté serveur

Sur Linux

Nous envoyons une requête ping à l’adresse ip 10.4.1.1 qui est celle de notre client :

Sur Windows

Nous envoyons une requête ping à l’adresse ip 10.5.1.6 qui est celle de notre client :

La réussite de ce ‘ping’ nous montre bien que le serveur peut communiquer avec le client.

 Du coté client

Page | 26
Sur Linux

Nous envoyons une requête ping à l’adresse IP 10.4.1.2 qui est celle de notre serveur:

Sur Windows

Nous envoyons une requête ping à l’adresse IP 10.5.1.1 qui est celle de notre serveur:

La réussite de ce ‘ping’ nous montre bien que le client peut communiquer avec le serveur.

Page | 27
Ainsi nous venons d’établir une connexion sécurisée fonctionnelle entre deux machines
distances en choisissant le réseau 10.5.1.0 /255.255.255.0.

Page | 28
Conclusion

Au terme de notre travail, ce sujet nous a permis de savoir ce qu’est un Vpn et à quoi il sert.
L’usage des Vpn renferme de nombreux avantages tels que la sécurité dans la transmission de
nos données à travers un canal sécurisé, l’accès sécurisé à distance à site distant, etc.
Particulièrement OpenVpn présente de nombreux autres avantages tel que la gratuité du
logiciel, sa fiabilité, sa grande communauté interactive, elle est ‘’facile’’ à implémenter, et
existe en plusieurs versions, et pour plusieurs systèmes d’exploitation. Comme tous les autres
Vpn, son implémentation rencontre le souci majeur de l’accès aux paramètres du routeur pour
la redirection des ports.

Son installation et sa configuration ont été nécessaire pour mieux comprendre son mode de
fonctionnement. Mais fort heureusement que nous avons réussi à remplir les conditions de mise
en service du serveur OpenVpn mais aussi à la connexion par les différents clients voulant
accéder au serveur.

Page | 29

Vous aimerez peut-être aussi