Skip to content

Installation d’un serveur VPN sous Debian avec OpenVPN

Salut les Geeks !

Aujourd’hui, je vous propose un rapide tutoriel sur l’installation d’un serveur VPN grâce à OpenVPN, sous Debian ainsi que la configuration d’un client Windows !

Comme d’habitude, un rapide rappel sur ce qu’est un VPN :

Dans les réseaux informatiques et les télécommunications, le réseau privé virtuel (Virtual Private Network en anglais, abrégé en VPN) est vu comme une extension des réseaux locaux et préserve la sécurité logique que l’on peut avoir à l’intérieur d’un réseau local. Il correspond en fait à une interconnexion de réseaux locaux via une technique de « tunnel ».  Merci Wikipedia pour cette courte définition très explicite… ou pas.

Alors pour faire simple, un VPN, c’est une sorte de câble Ethernet virtuel qui passe par votre connexion Internet et vous permet de vous connecter à un autre réseau distant.
Par exemple un réseau d’entreprise afin d’accéder à des Serveurs sur un Intranet, etc.

Dans ce tutoriel, nous allons créer un VPN entre un ordinateur sous Windows et un serveur Debian. Le but est de pouvoir utiliser la connexion Internet afin d’accéder à Internet via celui-ci afin d’être vu sur Internet en ayant l’adresse IP de ce serveur.

Pourquoi ? Pour contourner certain blocage fait par votre FAI ou votre gouvernement (Coucou HADOPI) ou palier à la médiocrité de l’Interconnexion de votre FAI avec YouTube par exemple (Coucou les Freenautes :D).

Let’s go !

Installation et configuration du serveur OpenVPN

Avant d’allez plus loin, on n’oublie pas le petit aptitude update; aptitude upgrade afin de mettre à jour notre Debian !

Une fois que ceci est fait, nous pouvons passer à l’installation et la configuration du serveur OpenVPN :

aptitude install openvpn

Il vous faut maintenant créer les certificats qui serviront à vous identifier sur le serveur. En effet, pas de mot de passe ici, mais un « jeu » de certificats.

cp -av /usr/share/doc/openvpn/examples/easy-rsa/2.0/ /etc/openvpn/keys/
cd /etc/openvpn/keys/
cp -av vars vars.original
nano vars

Les lignes qui nous intéressent se trouvent à la fin du fichier :

export KEY_COUNTRY="XX" #Où XX est le code a 2 lettres de votre Pays.
export KEY_PROVINCE="Votre région"
export KEY_CITY="Votre Ville"
export KEY_ORG="Votre organisation, si applicable..."
export KEY_EMAIL="votre@adresse-mail.tld" 

Vous pouvez mettre n’importe quoi sinon…

Maintenant que c’est fait, nous pouvons générer les certificats. Pour des questions de simplicités, je ne détaillerais pas de manière précise chaque étape/commande…


source ./vars
./clean-all
./build-dh
./pkitool --initca
./pkitool --server Mon-Serveur-VPN
openvpn --genkey --secret ./keys/ta.key
./pkitool Mon-Client-VPN

Maintenant que nous disposons de tous les certificats nécessaire, effectuons une petite copie de sauvegarde.


mkdir /root/VPN-Keys
tar cvzf /root/VPN-Keys/Mon-Serveur-VPN.tar.gz Mon-Serveur-VPN.crt Mon-Serveur-VPN.key ca.crt dh1024.pem ta.key
tar cvzf /root/VPN-Keys/Mon-Client-VPN.tar.gz Mon-Client-VPN.crt Mon-Client-VPN.key ca.crt ta.key

Bien, retournons dans le dossier d’openvpn afin de créer son fichier de configuration et d’y placer les certificats serveur précédemment créer.

cd /etc/openvpn/
touch server.conf

Voici le fichier de configuration que j’utilise, il vous suffit de l’adapter à vos besoins :

# Serveur UDP/443
mode server
proto udp

tun-mtu 1500
tun-mtu-extra 32
mssfix 1450

port 443
dev tun

# Cles et certificats
ca ca.crt
cert Mon-Serveur-VPN.crt
key Mon-Serveur-VPN.key
dh dh1024.pem
tls-auth ta.key 0
cipher AES-256-CBC

# Reseau
server 192.168.200.0 255.255.255.0
push « redirect-gateway def1 »
push « dhcp-option DNS 8.8.8.8 »
push « dhcp-option DNS 8.8.4.4 »
keepalive 5 10

# Securite
user nobody
group nogroup
chroot /etc/openvpn/
persist-key
persist-tun
comp-lzo

# Log
verb 3
mute 20
status Mon-Serveur-VPN-Status.log
log-append Mon-Serveur-VPN.log

max-clients 10
client-to-client

Voici les directives qu’il vous faut modifier :

port -> sert à spécifier le port d’écoute du serveur VPN, c’est le port qu’utilisera votre client pour connecter.
Dans mon exemple, le port est 443 qui correspond au port utilisé par les connexions httpS, attention donc si vous avez un serveur httpS d’installer sur votre serveur !

Dans la section #Réseau :
server -> permet de définir le réseau IP Privé qui sera utilisé par votre VPN.
push « redirect-gateway def1 » ->REDIRIGE TOUT LE TRAFFIC DU CLIENT A TRAVERS LE VPN, permet de « substitué » votre IP par celle de votre serveur.
push « dhcp-option DNS XX.XX.YY.ZZ » -> vous permet de spécifier les serveurs DNS que votre client utilisera. Dans mon exemple j’ai mis les serveurs DNS publique de Google, mais j’utilise en réalité mon propre résolveur.

max-clients XX -> limite le nombre de client pouvant être simultanément connecter à votre serveur VPN
client-to-client -> permet au client connecter d’utiliser le réseau du VPN comme un véritable réseau local et donc de se « voir » et d’utiliser des fonctionnalités comme les partages réseau Windows, etc.

Maintenant que la configuration de notre serveur est terminé, nous allons extraire les certificats de notre serveur :

tar xvzf /root/VPN-Keys/Mon-Serveur-VPN.tar.gz

Et c’est fini pour la partie serveur ! Nous pouvons maintenant démarrer notre serveur VPN et passer à la configuration de notre premier client Windows !

service openvpn restart

Installation et configuration du client OpenVPN sous Windows

Commencez par télécharger et installer la dernière version de l’installateur pour Windows à cette adresse : http://openvpn.net/index.php/open-source/downloads.html

Rendez-vous ensuite dans le dossier C:\Program Files\OpenVPN\config et créer un dossier « Mon-Serveur-VPN ».

Dans ce répertoire, créer un nouveau fichier texte que vous nommerez « Mon-Serveur-VPN.ovpn » et placez y le contenu suivant :

# Client
client
dev tun
proto udp
remote ww.xx.yy.zz 443
resolv-retry infinite
cipher AES-256-CBC

# Cles
ca ca.crt
cert Mon-Client-VPN.crt
key Mon-Client-VPN.key
tls-auth ta.key 1

# Securite
nobind
persist-key
persist-tun
comp-lzo
verb 3

Ici, peu de modifications à effectuer.
Il vous suffit de modifier la directive remote afin de placer l’adresse IP de votre serveur VPN.

Télécharger maintenant l’archive « Mon-Client-VPN.tar.gz » qui contient les certificats du client, présente dans le dossier /root/VPN-Keys que nous avons précédemment créée et extrayez son contenu dans le dossier « Mon-Serveur-VPN » sur votre PC.

Et voila pour la partie client.

Il ne vous reste plus qu’à démarrer le logiciel OpenVPN GUI et à vous connecter à votre serveur VPN !
Il vous suffit de faire un clic droit sur la nouvelle icone présente dans votre barre de tâche, celle avec 2 écrans et un globe terrestre, à coté de l’horloge, de placer votre souris sur « Mon-Serveur-VPN » et enfin de cliquer sur Connect !

Attendez quelques instants afin que la connexion s’initialise et rendez-vous par exemple sur http://proof.delta-corp.eu/ afin de vérifier votre adresse IP et tester les performances de votre tout nouveau serveur VPN !

Enjoy !

Published inAdministration SystèmesTutoriels

Be First to Comment

    Laisser un commentaire

    Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.