Dans un premier temps nous allons voir comment monter un VPN simple basé sur une clé symétrique. Nous aborderons ensuite l'utilisation de certificat sur une architecture Client/Serveur.
L'installation d'OpenVPN reste classique.
Téléchargez une version stable d'openVPN en cliquant sur ce lien: openvpn-2.0-gui-1.0
Lors de l'installation l'application va créer une interface réseau virtuelle. Pour qu'elle soit visible, il ne faut pas cocher la case:
Hide the TAP-Win32 Virtual Ethernet Adapter
Windows nous avertit de la création de cette interface, cliquez sur "continuer":
L'application va créer les raccourcis:
L'installation est terminée, le "Readme" nous donne l'URL du fichier d'aide d'OpenVPN.
Nous n'avons pas besoin de redémarrer le système. OpenVPN a créé l'icône de l'application et celle de la carte virtuelle dans la zone de notification de la barre des tâches:
Dans Démarrer/Programmes/OpenVPN, nous obtenons:
C'est le menu qui va nous permettre de configurer notre réseau virtuel.
La clé obtenue est de ce type:
- Nous devons attribuer une adresse IP à l'interface TAP sur chacune des machines. Nous renseignerons par la suite le fichier de configuration Sample.ovpn
Il y a trois fichiers de configuration type . Nous allons copier le fichier Sample.ovpn et le coller dans le dossier /config. Ce dossier est aussi accessible par le menu en cliquant sur OpenVPN configuration file directory.
Modification du fichier de configuration /config/Sample.ovpn:
Double cliquez sur le fichier pour l'éditer en texte. Les champs suivants seront à modifier sur les deux PC.
nb: Les # et ; servent à mettre les valeurs en commentaire.
# Change 'myremote' to be your remote host,
# or comment out to enter a listening
# server mode.
remote 192.168.0.15
(Adresse IP réelle du PC distant)
# Uncomment this line to use a different
# port number than the default of 1194.
port 57845
(Numéro de port non utilisé par un autre processus)
# Choose one of three protocols supported by
# OpenVPN. If left commented out, defaults
# to udp.
proto udp
(Choix du protocole)
# Enable 'dev tap' or 'dev tun' but not both!
dev tun
(Ne pas prendre en compte les MAC adresses => tun)
# This is a 'dev tap' ifconfig that creates
# a virtual ethernet subnet.
# 10.3.0.1 is the local VPN IP address
# and 255.255.255.0 is the VPN subnet.
# Only define this option for 'dev tap'.
;ifconfig 10.3.0.1 255.255.255.0
(Mettre cette ligne en commentaire avec le ;)
# Make sure to include the "tun-mtu" option
# on the remote machine, but swap the order
# of the ifconfig addresses.
;tun-mtu 1500
ifconfig 10.3.0.2 10.3.0.1
(IP du réseau virtuel, la première est notre machine, la deuxième la machine distante)
# If you have set up more than one TAP-Win32 adapter
# on your system, you must refer to it by name.
dev-node VPN1
(Nom de la carte réseau virtuelle)
# Place key.txt in the same directory as this
# config file.
secret key.txt
(Nom du fichier contenant la clé de cryptage)
Nous avons maintenant dans notre fichier /config, les fichiers Sample.ovpn et key.txt. Cela suffit pour communiquer avec un PC distant avec un cryptage de données.
Cette opération doit être faite sur le PC distant (IP.virtuelle = 10.3.0.1) et le PC local (IP.virtuelle = 10.3.0.2). L'ordre de démarrage du VPN n'a pas d'importance, l'application se met en écoute d'une connexion sur le port spécifié.
Pour démarrer OpenVPN, cliquez droit sur l'icone de la zone de notification:
Cliquez sur: Connect.
OpenVPN démarre et se met en écoute. L'icône de l'application passe du rouge au jaune
Nous obtenons:
Lorsque le PC distant démarre OpenVPN, la mise en relation est signifiée par le changement de couleur de l'icône avec une notification sur l'adressage IP.
Pour mieux nous rendre compte du cryptage fait par OpenVPN, nous allons utiliser ethereal pour la capture de trames. Un lien est disponible dans la rubrique Téléchargements du site.
Nous avons sniffé les trames des deux cartes réseaux en faisant un ping sur le PC2:
ping -t 10.3.0.1
Tous les packets sont passés, il n'y a pas eu de perte de données.
Pour la carte réseau virtuelle:
L'interface va tout d'abord faire une requête ARP pour trouver le PC2. Ensuite, nous retrouvons bien le protocole ICMP en clair avec "32 bytes" de données.
Pour la carte réseau qui supporte le tunnel:
Nous retrouvons le protocole UDP sur le port 57845 comme spécifié dans /config/Sample.ovpn.
Au niveau du contenu du paquet, les données du protocole ICMP ne sont plus visibles et prennent maintenant "100 bytes". Ceci est le résultat du cryptage.
Nous venons de réaliser un VPN point à point. En cliquant sur l'image qui suit vous allez à la procèdure liée au certificat. Cela nous sera utile pour créer un tunnel par OpenVPN sur une configuration Client / serveur. Pour continuer directement sur OpenVPN en C/S cliquez sur: VPN, Client / Serveur.