Objectif :
Interconnecter différents ordinateurs connectés à intenet dans le but d'établir un reseau privé virtuel sous windows (Virtual Private Network).
Pour établir une interconnexion entre différentes machines nous allons utiliser OpenVPN. En effet nous ne pouvons pas utiliser l'outils fournit par windows Xp puisque celui-ci nous limite très rapidement en ne permettant qu'une seule connexion. Cependant il est possible d'utiliser d'autre logiciel tel que Wingate VPN (logiciel payant). Mais notre choix s'est arrêté sur OpenVPN qui est un projet Open Source.
Avant d'aller plus loin il est nécessaire de récupérer OpenVPN (ici nous utiliserons la version graphique).
Configuration utilisée:
Sommaire :
Etape 1: Installation d'OpenVPN:
La premiere étape consiste donc à installer OpenVPN.
Lors du choix des composants qui devront être installés vous pouvez choisir si vous voulez que OpenVPN soit lancé ou pas au démarrage de windows.
Par la suite au cours de l'installation un message d'alerte va vous signaler que le logiciel n'a pas réussi le test de validation de windows. Ne prenez pas en compte ce message et cliquez sur continuer.
Une fois l'installation terminée, 2 icones se rajoutent dans la barre des tâches (près de l'heure):
Le premier permet d'accéder à l'interface graphique d'openVPN, tandis que le deuxième correspond à la nouvelle interface reseau créée. Allez dans "Connexion reseau" et renommez là en OpenVPN.
Etape 2: Configurations.
En premier lieu il faut savoir que pour sécuriser un reseau VPN il existe 2 solutions, soit le chiffrement symétrique soit le chiffrement asymétrique. Dans un premier temps nous allons nous contenter de mettre en oeuvre la première solution, qui faut savoir est moins performante que la deuxième. Si vous désirez avoir plus d'informations sur la cryptographie vous en trouverez pas mal sur le site de Mr Christian CALECA.
La configuration dépendant de l'organisation des postes, nous allons prendre un cas concret:
Nous avons donc ici 3 machines. Alice et Bob seront les clients, tandis que Cox sera le serveur.
Génération de la clé
La génération de la clé peut se faire par l'intermédiaire du racourci qui se trouve dans le menu "Démarrer" ("OpenVPN > Generate a static OpenVPN key"). La clé est placée par défaut dans un fichier nommé key.txt qui se trouve dans le répertoire config de OpenVPN. Ce fichier devra être placée par la suite dans le répertoire config du serveur mais aussi dans ceux des clients (les client doivent avoir la même clé que le serveur).
Attention, le chiffrement symétrique n'a de valeur que si cette clé reste secrète.
Configuration du serveur
Avec OpenVPN nous pouvons utiliser le mode serveur que si l'on utilise le chiffrement asymétrique. Pour pouvoir utiliser uniquement le chiffrement symétrique nous devons utiliser une astuce qui consiste à connecter tous les clients à une même machine, pour ensuite créer un pont entre ces différentes connexions de telle manière à ce que tous les clients puissent communiquer entre eux.
Pour chaque connexion "la machine serveur" ici Cox doit disposer "d'une interface reseau" telle que celle qui a été créée lors de l'installation d'OpenVPN. Pour rajouter un tel dispositif il suffit de lancer le "addtap.bat" (vous le trouverez dans le répertoire "bin" de OpenVPN).
Note: Lors de l'exécution de addtap.bat il est possible qu'un message d'alerte de windows apparaisse, ignorez le.
Ainsi dans les Connexions reseau de Cox on retrouve les connexions suivantes:
OpenVPN 1 et OpenVPN 2 correspondent au dispositif pour le VPN, et Rezo Grenoble correspond à la connexion au reseau local.
Si on voulez connecter une troisième machine au VPN, on devrait rajouter un dispositif (OpenVPN 3) par l'intermédiaire du addtap.bat.
Pour que Alice, Bob et Cox puissent faire partie d'un même réseau privé virtuel, il faut créer un pont entre les dispositifs VPN. Pour cela vous devez sélectionner les différents dispositifs VPN et faire un click droit pour ouvrir le menu contextuel et ainsi sélectionner l'option "Connexions de pont". La fenêtre suivante s'ouvre:
Ensuite dans vos "Connexions réseau" vous obtenez le détails suivant:
Vous sélectionner ensuite le "Pont réseau" et vous faite "Propriétés":
Là vous sélectionner "Protocole Internet (TCP/IP)" et vous faite "Propriétés":
L'adresse du réseau privé virtuel sera donc 10.3.0.0 dans notre cas, et Cox disposera de l'IP 10.3.0.1.
Maintenant il nous reste à créer les fichiers de configurations d'OpenVPN de Cox. Nous avons vu précédement que l'on devait disposer d'un dispositif par connexion VPN. De même nous devons disposer d'un fichier de configuration par connexion. Dans notre cas nous devons donc en avoir deux, un pour Alice et un autre pour Bob.
#serveur1.ovpn
dev tap
#Numéro du port TCP/UDP pour les deux hôtes (distant et local).
port 5000
#nom de la connexion (cf. panneau de configuration > Connexion reseau)
dev-node "OpenVPN 1"
#active le mode de chiffrement statique par secret partagé
secret key.txt
persist-key
#Utiliser la compression dynamique LZO
comp-lzo
ping 10
push "ping 10"
#Régler le niveau de traces
verb 4
#Au bout de 10x la même ligne, plus de trace.
mute 10 |
|
#serveur 2.ovpn
dev tap
#Numéro du port TCP/UDP pour les deux hôtes (distant et local).
port 5001
#nom de la connexion (cf. panneau de configuration > Connexion reseau)
dev-node "OpenVPN 2"
#active le mode de chiffrement statique par secret partagé
secret key.txt
persist-key
#Utiliser la compression dynamique LZO
comp-lzo
ping 10
push "ping 10"
#Régler le niveau de traces
verb 4
#Au bout de 10x la même ligne, plus de trace.
mute 10 |
On remarquera que les seules différences résident dans le port d'écoute et le dispositif ("dev-node"). Il important de noter que la chaine "OpenVPN x" qui succède la commande dev-node correspond au nom de la connexion visible dans les Connexions réseau. Ainsi si vous n'avez pas renommé la connexion vous devez avoir un nom similaire à "Connexion au réseau local x". A noter aussi que chaque client (Alice et Bob) doit se connecter à Cox sur un port différent.
Récapitulatif des informations à adapter selon son cas:
- le port
- le dev-node
- et éventuellement le nom du fichier ou se trouve la clé ("secret key.txt").
Il suffit maintenant de placer ces deux fichiers (serveur1.ovpn et serveur2.ovpn) dans le répertoire config d'OpenVPN.
La dernière étape de la configuration de Cox consiste à créer les règles de routage. Cette étape est nécessaire uniquement pour les personnes qui disposent d'une Freebox branchée en ethernet avec le mode routeur activé, dans le cas contraire vous pouvez aller directement à l'étape suivante.
Configuration des clients
Maintenant que nous avons configurer Cox, il ne nous reste plus qu'à nous occuper d'Alice et Bob (les clients).
Comme on la vu précédement, la configuration du logiciel OpenVPN consiste à créer un fichier portant l'extansion .ovpn que l'on place ensuite dans le répertoire config de celui-ci.
#client.ovpn (Alice)
#adresse à laquelle le client doit se connecter
remote 82.67.xx.x
dev tap
#adresse ip de la machine dans le VPN
ifconfig 10.3.0.2 255.255.255.0
#Numéro du port TCP/UDP pour les deux hôtes (distant et local).
port 5000
#active le mode de chiffrement statique par secret partagé
secret key.txt
persist-key
#Utiliser la compression dynamique LZO
comp-lzo
pull
#Régler le niveau de traces
verb 4
#Au bout de 10x la même ligne, plus de trace.
mute 10 |
|
#client.ovpn (Bob)
#adresse à laquelle le client doit se connecter
remote 82.67.xx.x
dev tap
#adresse ip de la machine dans le VPN
ifconfig 10.3.0.3 255.255.255.0
#Numéro du port TCP/UDP pour les deux hôtes (distant et local).
port 5001
#active le mode de chiffrement statique par secret partagé
secret key.txt
persist-key
#Utiliser la compression dynamique LZO
comp-lzo
pull
#Régler le niveau de traces
verb 4
#Au bout de 10x la même ligne, plus de trace.
mute 10 |
A noter que Alice et Bob doivent disposer de 2 adresses IP différentes au sein du VPN, les ports doivents correspondre à ceux mis dans les fichiers de configuration du serveur.
Récapitulatif des informations à adapter selon son cas:
- le remote : adresse IP à laquelle le client doit se connecter (adresse publique, celle utilisée sur internet et non celle du VPN).
- le ifconfig : adresse du client dans le VPN.
- le port.
- et éventuellement le nom du fichier ou se trouve la clé ("secret key.txt").
Etape 3: Exécution d'OpenVPN.
Pour l'exécution il suffit de lancer OpenVPN (à partir du menu démarrer "OpenVPN > OpenVPN GUI" s'il n'est pas déjà lancé) un icone se rajoute dans la barre des tâches. Maintenant vous faite bouton droit sur l'icone, vous trouverez en haut du menu contextuel soit le nom des fichiers de configuration si vous en disposez de plusieurs, soit directement les options de connexion (si vous ne disposez que d'un fichier de config). Il suffit donc de faire "connect". La fenêtre suivante s'ouvre :
L'icone dans la barre des tâches devient alors jaune. OpenVPN est alors en attente de connexion. Lorsque la connexion avec le client sera établie, la fenêtre se réduira et l'icone deviendra vert, et le tour sera joué !!!!
Note: Pour le serveur, vous disposez de plusieurs fichiers de config, il faut donc faire "connect" pour chacun des fichiers auquel vous voulez qu'un client se connect. Pour chacun des fichiers de configuration lancé, une fenêtre apparait.
Etape 4: Les tests
Pour voir si la configuration marche il suffit d'ouvrir "l'invite de commande" et de faire un ping sur les autres machines.
Cox fait -> ping 10.3.0.2 et ping 10.3.0.3
Alice fait -> ping 10.3.0.1 et ping 10.3.0.3
Bob fait -> ping 10.3.0.1 et ping 10.3.0.2
Si tout les pings fonctionnent alors c'est gagné !!!!
Dans le cas contraire, n'oubliez pas de vérifier la configuration de vos firewall.
Conclusion
La configuration présentée dans ce tutorial n'est probablement ni optimisée ni sécurisée, celui-ci n'avait uniquement pour but de vous présenter une configuration qui a été testée comme étant fonctionnelle. Dans les meilleurs délai j'essayerai d'optimiser cette configuration mais aussi j'essayerai de rajouter le chiffrement asymétrique.
|