Rapport Final de Projet de Cryptographie: Installation Et Configuration D'une Solution OPENVPN Sous Windows Et Sur Linux [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

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

III.

3.1.

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

3.2.

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

COMPLEMENTS ............................................................................................ 20

1. Dépannage ..................................................................................................... 20 Page | 2

2. Configuration d’Openvpn pour s’exécuter automatiquement au démarrage du système ................................................................................................................. 21

IV.

2.1.

Linux......................................................................................................... 21

2.2.

Windows ................................................................................................... 22

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 quelquesuns 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 parefeu.  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'entê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 easyrsa 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 [[email protected]]:

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 sousrépertoire qui a pour chemin « C :\Program Files\OpenVPN\easy-rsa\key » . Voici une explication des fichiers concernés:

Nom de fichier

ca.crt

Voulu par

serveur + tous les clients

Objectif

Certificat d'autorité de certification racine

Secret

NON

machine à signer les clés

Clé de l'autorité de

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

ca.key

OUI

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 on Feb

6 20:46:38 2005 OpenVPN 2.0_rc12 i686-suse-linux [SSL] [LZO] [EPOLL] built 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 cidessus 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 TAPWindows (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