Professional Documents
Culture Documents
1 Prérequis
Les packages RPM Open VPN, LZO, OpenSSL doivent être présent sur le PC de chaque
étudiant avant le début du TP dans le répertoire /usr/installable.
Un Serveur FTP doit aussi être installé.
2 Objectif du TP
L’objectif de ce TP est de mettre en œuvre un Virtual Private Network (VPN) avec Open
VPN sous Linux.
3.2 LZO
1- Ouvrir une fenêtre et se positionner dans le répertoire /usr/installables.
2- Cliquer avec le bouton droit de la souris sur le fichier lzo-1.08.tar.gz et choisir
la commande Ouvrir avec puis File-roller.
3- Cette commande lance l’outils de décompression de fichiers, cliquer sur
l’icône Extract, choisir le répertoire /usr/installable et valider. Un répertoire
lzo-1.08 est maintenant créé.
4- Lancer un shell et se positionner dans le répertoire installable.
5- Taper la commande ./configure pour créer le fichier makefile, qui sera utilisé
par l’utilitaire make, pour la compilation.
Durant l’exécution de ./configure, le système est analysé, pour savoir, entre
autres, la distribution, la version du noyau, les possibilités du compilateur, etc.
6- Taper la commande make pour compiler le source.
7- Taper la commande make install pour lancer l’installation de LZO.
Mise en œuvre d’un VPN avec OpenVPN sous Linux Page 1/8
TP Sécurité Réseaux
Pour vérifier que l’installation est réussie, taper la commande whereis lzolib, si
l’installation est réussie, le chemin d’accès aux fichiers est affiché.
3.3 OpenSSL
Cliquer avec le bouton droit de la souris sur le fichier openssl-0.9.6b-29.i386.rpm
et choisir la commande Ouvrir avec puis Install Packages. L’installation du
package se lance.
Pour vérifier que l’installation est réussie, ouvrir un shell tapez la commande
openvpn version, si l’installation est correcte, le message suivant « OpenSSL
0.9.6b [engine] 9 Jul 2001 » s’affiche à l’écran.
Mise en œuvre d’un VPN avec OpenVPN sous Linux Page 2/8
TP Sécurité Réseaux
Tutoriel : OpenVPN
La configuration d’un VPN est souvent d’une très grande utilité pour la sécurité de vos
équipements mais aussi pour une facilité d’accès accrue. Cet article va vous présenter
comment mettre en place un serveur VPN en utilisant OpenVPN, ainsi que la
configuration des clients Windows et Linux.
TAP simule en software un périphérique Ethernet (niveau 2). Il est utile pour faire des
bridge.
cd /usr/share/doc/openvpn/examples/easy-rsa/2.0
Dans ce répertoire se trouvent quantité de petits scripts très utiles pour la génération de
clé et de certificats.
Mise en œuvre d’un VPN avec OpenVPN sous Linux Page 3/8
TP Sécurité Réseaux
Dans un premier temps, on va éditer le fichier "vars" qui va contenir des données par
défaut pour les scripts. Cette étape n’est pas indispensable mais elle va bous faire
gagner beaucoup de temps. fichier "vars" :
export KEY_COUNTRY=FR
export KEY_PROVINCE=France
export KEY_CITY=Paris
export KEY_ORG="moro server"
export KEY_EMAIL="monemail@moroblog.info"
On prépare les variables que l’on vient de définir et on nettoie le répertoire des clefs :
. ./vars
./clean-all
gunzip openssl.cnf.gz
./build-ca
Une série de question va vous être posé, tout est déjà rempli grâce au fichier "vars",
mais vous devez impérativement choisir un "Common Name" pour le server.
./build-key-server MonServeurVPN
--BEGIN CERTIFICATE--
//bloc de données
--END CERTIFICATE--
Mise en œuvre d’un VPN avec OpenVPN sous Linux Page 4/8
TP Sécurité Réseaux
Attention, le Common Name doit être différent pour chaque entité, sinon vous aurez
l’erreur :
./build-dh
Ceci créé dans "keys/" un fichier "dh1024.pem". C’est une opération relativement
longue.
cp
./keys/{ca.crt,ca.key,MonServeurVPN.crt,MonServeurVPN.key,dh1024.pem}
/etc/openvpn
Par défaut, l’utilisateur "nobody" est utilisé, ce qui n’est pas optimal.
groupadd openvpn
useradd -d /dev/null -g openvpn -s /bin/false openvpn
cd /usr/share/doc/openvpn/examples/sample-config-files/
gunzip server.conf.gz
cp server.conf /etc/openvpn/
On édite "/etc/openvpn/server.conf" :
On modifie les noms des certificats/clés et le nom du user à utiliser pour le démon :
ca ca.crt
cert MonServeurVPN.crt
key MonServeurVPN.key # This file should be kept secret
Mise en œuvre d’un VPN avec OpenVPN sous Linux Page 5/8
TP Sécurité Réseaux
dh dh1024.pem
user openvpn
group openvpn
$ ifconfig
tun0 Lien encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-
00-00-00-00-00
inet adr:10.8.0.1 P-t-P:10.8.0.2 Masque:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:487260 errors:0 dropped:0 overruns:0 frame:0
TX packets:302913 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:100
RX bytes:40797602 (38.9 MiB) TX bytes:99006324 (94.4 MiB)
Il faut copier dans "C :/Program Files/OpenVPN/config/" les fichiers que l’on a
précedemment créé sur notre serveur : "ca.crt", "Syrius.crt" et "Syrius.key". On utilise
ensuite le fichier de configuration d’exemple situé dans "sample-config/" :
"client.ovpn". On le copie dans le répertoire "config/" et on édite les champs :
ca ca.crt
cert Syrius.crt
key Syrius.key
On démarre OpenVPN : Démarrer > Programmes > OpenVPN > OpenVPN GUI. Pour
se connecter, on clique droit sur l’icone d’OpenVPN à côté de l’heure, puis "Se
connecter".
Mise en œuvre d’un VPN avec OpenVPN sous Linux Page 6/8
TP Sécurité Réseaux
Il faut bien sûr créer un nouveau couple (certificat/clef) pour ce client. On les copiera
avec l’autorité de certification "ca.crt" dans /etc/openvpn.
4.3.9 Déboguage
log /var/log/openvpn.log
verb 6
Enfin, on peut activer un accès en local pour des commande direct sur le démon :
La procédure est exactement la même que lors de l’installation, vous devrez faire :
# cd /usr/share/doc/openvpn/examples/easy-rsa/
# . ./vars
# cd keys
# ../build-key Client04
(...)
Ce qui va vous générer un Client04.crt et Client04.key, que vous copierez sur votre
nouveau client. Il vous faudra également paramétrer son fichier de configuration
comme nous l’avons déjà vu.
Important
Mise en œuvre d’un VPN avec OpenVPN sous Linux Page 7/8
TP Sécurité Réseaux
/usr/share/doc/openvpn/examples/easy-rsa/
serial : contient le numéro à affecter au prochain client
index.txt : liste de tous les clients créés
*.crt : les certificats
*.key : les clefs privées
*.csr : les demandes de certificats, qui devront être signés pour créer le certificat
/etc/openvpn
ipp.txt : garde une association entre IP et client
Mise en œuvre d’un VPN avec OpenVPN sous Linux Page 8/8