L'installation d'Open VPN dépend de :
· OpenSSL et ses composants Dev pour le cryptage
des données
· LZO pour la compression des
données
· Brctl si vous voulez la mode
ponté
L'installation peut se faire comme d'habitude
:
Par la compilation (nécessite en plus
automake, autotools et autoconf) : . /configure && make && make
install
En récupérant un paquet RPM, DEB ou
émerge par votre yum et autre apt-get Notre serveur est une machine
Debian
Figure 6.1 : installation d'OpenVPN
Pour la version 2.3.7, le package easy-rsa n'est pas
inclus. Il faut donc l'installer par
Ousmane AMAR Page | 29
Mise en place de la téléphonie sur IP dans un
réseau multi site
(Cas de l'ESTM)
Figure 6.2 : installation d'easy-rsa
Remarque : Généralement, OpenSSL est
installé par défaut sur les machines après installation
d'OpenVPN et ne nécessite donc pas d'être
réinstallé.
L'installation d'OpenVPN crée un dossier dans
/usr/share/doc/openvpn/ contenant tous les scripts permettant de
générer facilement tous les certificats et clés
d'authentification nécessaire au fonctionnement d'Open VPN.
Nous allons créer un dossier easy-rsa dans
/etc/openvpn/ pour centraliser la configuration
Figure 6.3 : Création du dossier
easy-rsa
Puis un répertoire keys qui contiendra toutes les
clés générés dans easy-rsa
Figure 6.4 : Création du dossier
keys
Copier le contenu du dossier my_ca qui est dans
/usr/share/doc/openvpn/my_ca et le mettre dans le répertoire
easy-rsa.
Figure 6.5 : Copier de my_ca dans easy-rsa
? Initialisation
Se positionner dans le répertoire
/etc/openvpn/easy-rsa.
Ousmane AMAR Page | 30
Mise en place de la téléphonie sur IP dans un
réseau multi site
(Cas de l'ESTM)
Avant d'utiliser les scripts, il faut dans un premier
temps éditer le fichier vars afin d'initialiser différentes
variables servant à la génération des certificats
:
Figure 6.6 : Edition du fichier vars
On insère les informations personnelles par
exemple comme suit :
Figure 6.7 : Fichier vars
Enfin, on exécute le fichier afin d'initialiser
les variables :
Figure 6.8 : Exécution du fichier
vars
? Généralisation du certificat et de la
clé d'autorité de certification
OpenVPN fonctionne sous un mode PKI (Public Key
Infrastructure). Selon ce mode, le serveur et chaque client possède un
certificat généralement appelé clé public et une
clé
Ousmane AMAR Page | 31
Mise en place de la téléphonie sur IP dans un
réseau multi site
(Cas de l'ESTM)
privée qui leur sont propres. Un certificat
d'autorité de certification (master CA) et une clé privée
sont utilisés pour signer les certificats du serveur et de chaque
client.
Ce master CA permet une authentification
bidirectionnelle : chacun des clients et serveur authentifient donc l'autre
réciproquement en vérifiant dans un premier temps que le
certificat qu'ils proposent a été signé par le master
CA.
Pour générer ce master CA et la clé
correspondante, il faut exécuter les scripts suivants : . /clean-all
permet de créer ou de réinitialiser le sous dossier
keys
. /build-ca permet de créer dans
<<keys>> le certificat principal du serveur << ca.crt>>
:
ca.key est une clé privée qui va servir
à certifier les clés publique qui seront confiées à
notre serveur, autorité de certification ;
ca.crt sera le certificat de l'autorité. Il
contient la clé publique qui permet à qui en a besoin
d'authentifier les certificats qui seront émis par le
serveur.
La commande ./ build-ca donnera :
Figure 6.9 : Certificat de l'autorité de
certification
Nous trouverons dans /usr/share/doc/exemples/my_ca un
dossier key créer par ./clean-all
Ousmane AMAR Page | 32
Mise en place de la téléphonie sur IP dans un
réseau multi site
(Cas de l'ESTM)
Figure 6.10 : Contenu du fichier my_ca
Il faut utiliser des Common Name (CN) uniquement pour
chacun des clients et des serveurs sinon votre serveur risque de ne pas
fonctionner. Il faut aussi une Organization Name (ON) commun au serveur et aux
clients (c'est le nom de votre VPN). Pour les autres renseignements, la valeur
par défaut est indiquée entre crochet ([]) et correspond à
ce que vous avez mis dans le fichier vars. Lorsque l'on vous demande si les
certificats doivent etre signés répondez-y
? Certificat et clé privé du
serveur
Le script suivant permet de créer dans
<<keys>> le certificat <<srvrestm.crt>> et la
clé <<srvrestm.key>> pour le serveur VPN nommé par
exemple <<srvrestm>>.
Si tout se passe bien vous aurez quelque chose de ce
genre
Figue 6.11 : Certificat du serveur (1)
Ousmane AMAR Page | 33
Mise en place de la téléphonie sur IP dans un
réseau multi site
(Cas de l'ESTM)
Figue 6.12 : Certificat du serveur (2) Le certificat du
serveur de façon détaillé.
? Certificat client
Le script suivant permet de créer dans un keys le
certificat clientestm.crt et la clé clientestm.key pour le VPN
nommé par exemple client:
Figue 6.13 : Certificat du client (1)
Ousmane AMAR Page | 34
Mise en place de la téléphonie sur IP dans un
réseau multi site
(Cas de l'ESTM)
Figue 6.14 : Certificat du client (2)
ATTENTION : il faut renouveler cette opération
pour chaque client. Chaque Common Name de chaque client doit etre
différent.
? Création du paramètre Diffie
Hellman
Le protocole Diffie-Hellman est un protocole de
cryptographie utilisé dans échanges de clés. Le scripte
suivant permet de créer dans <<keys>> le fichier
<<dh2048.pem>> :
Son exécution donne quelque chose de ce style
:
Figure 6.15 : Paramètre Diffie
Hellman