Accueil Technologies Mise en place rapide d’un serveur VPN avec Docker
Mise en place rapide d'un serveur VPN avec Docker

Mise en place rapide d’un serveur VPN avec Docker

par Jérémy PASTOURET
Publié : Mis à jour le

La mise en place d’un serveur VPN peut être utile pour de nombreuses raisons. En s’y connectant, il est possible d’accéder à tous les services connectés de ce réseau. Par exemple : imaginons que vous ayez chez vous un serveur rempli de données importantes. En vous connectant à votre VPN maison, vous pouvez consulter ces données. Un serveur VPN permet aussi de sécuriser votre activité sur Internet. Ainsi, votre fournisseur d’accès internet ne peut pas voir ce que vous consultez sur le Web à travers votre serveur VPN. Il faut cependant avoir confiance en votre hébergeur.

Préparatifs pour installer un VPN

Il faut bien entendu avoir installé Docker sur le serveur ou la machine concerné·e. Pour réaliser une installation propre, un nom de domaine spécifique au VPN doit être indiqué. Par exemple : vpn.les-enovateurs.com

Stockage de la configuration et des clés de connexion des utilisateurs

Pour stocker ces éléments importants, je vous conseille de créer un répertoire à la racine de votre répertoire personnel. Vous pouvez cependant placer ce répertoire ailleurs, il faudra simplement le modifier dans les commandes Docker. Exécutez la commande suivante pour créer le répertoire stockant les données OpenVPN.

mkdir -p ~/openvpn/data

Association du nom de domaine

Pour générer la configuration propre à l’association d’un point d’entrée, il faut utiliser la commande suivante :

docker run -v ~/openvpn/data:/etc/openvpn --log-driver=none --rm kylemanna/openvpn ovpn_genconfig -u udp://vpn.nom_de_domaine.com

A présent, remplacez le terme vpn.nom_de_domaine.com par celui que vous avez créé. Le résultat est le suivant :

Création des fichiers de configutation pour OpenVpn

Génération des clés de sécurité

Pour initialiser les clés de sécurité, il faut utiliser la commande suivante :

docker run -v ~/openvpn/data:/etc/openvpn --log-driver=none --rm -it kylemanna/openvpn ovpn_initpki

Cette commande génère les clés d’initialisation du serveur. Pour cela, certaines informations vous sont demandées. Par exemple la passphrase, un mot de passe utile à la génération de la paire de clés.

Génération de la clé privé du serveur VPN

Ensuite, un nom commun vous est demandé pour identifier le serveur : tapez le nom et appuyez sur Entrée. Un long traitement se lance pour générer une clé de sécurité résistante.

Génération de la paire de clé sur OpenVPN

Un nouveau passphrase est demandé pour une autre clé d’authentification du serveur. Il suffit de le saisir et de taper sur Entrée.

Démarrage du serveur OpenVPN

Il existe deux manières de procéder :

  • En lançant une commande simple du type docker run.
  • En utilisant la commande docker-compose up -d, mais il faut un fichier docker-compose.yml décrivant les actions à effectuer.

Lancement du serveur avec docker run

Il suffit simplement de lancer la commande suivante :

docker run -v ~/openvpn/data:/etc/openvpn -d -p 1194:1194/udp --cap-add=NET_ADMIN kylemanna/openvpn

Le port de base utilisé est 1194.

Lancement du serveur avec docker compose

Il faut utiliser le docker-compose.yml suivant :

openvpn:
    image: "kylemanna/openvpn:latest"
    container_name: openvpn
    ports:
        - "1194:1194/udp"
    volumes:
        - "~/openvpn/data:/etc/openvpn"
    cap_add:
        - NET_ADMIN
    restart: always

Les paramètres ci-dessous sont à l’identique de la version avec un docker run. Ils sont simplement plus pratiques à lancer avec un docker-compose. Il suffit de se mettre au même endroit que le script docker-compose, et de lancer la commande suivante :

docker-compose up -d

Afin de contrôler que le conteneur s’est lancé correctement, il suffit de lancer la commande :

docker ps
Liste des conteneurs actifs

Création d’un utilisateur

Il est possible de créer un client avec ou sans passphrase. Je vous conseille vivement d’en mettre un pour plus de sécurité. Mais si vous souhaitez ne pas en mettre, il faut rajouter le paramètre suivant en fin de commande : nopass.

docker run -v ~/openvpn/data:/etc/openvpn --log-driver=none --rm -it kylemanna/openvpn easyrsa build-client-full nom_client

Remplacez le terme nom_client par celui représentant le type d’utilisateur qui se connectera au serveur VPN. De plus, il faut saisir un passphrase pour l’utilisateur créé.

Création d’un fichier complet pour une connexion rapide et simple

Le serveur OpenVPN peut générer un fichier dont l’extension se termine par ovpn. Ce fichier contient toutes les informations de connexion. Il peut être utilisé sur votre Android pour vous connecter à votre serveur VPN avec l’application OpenVPN Connect.

docker run -v ~/openvpn/data:/etc/openvpn --log-driver=none --rm kylemanna/openvpn ovpn_getclient nom_client > nom_client.ovpn

Récupérez le fichier nom_client.ovpn et envoyez-le sur votre téléphone.

Après avoir installé l’application mobile, ouvrez-la pour ajouter le fichier.

Liste des possibilités de connexion

Cliquez sur le bouton OVPN Profile qui permet de lire le type de fichier qui a été généré. Sélectionnez le fichier que vous avez téléchargé depuis votre serveur. L’application analyse le fichier et vous affiche un petit bouton pour activer la connexion.

Traffic sur le Vpn avec OpenVPN

La fenêtre ci-dessus représente les statistiques de débit au serveur VPN.

Conclusion

Bannière conclusion

Voilà, vous avez terminé votre installation. Si vous avez des remarques, les commentaires sont à votre disposition.

Pour écrire ce tuto / article, nous avons utilisé les commandes sur notre serveur chez notre partenaire IKOULA. Pour plus d’informations sur leur service, rendez-vous sur leur site ou sur notre article consacré aux solutions d’IKOULA.

Si vous aimez bien utiliser Docker, nous vous proposons une série d’article d’initiation à l’intelligence artificiel. Ces articles se servent de Docker afin de faciliter la partie installation/configuration.

Vous pourriez aussi aimer

2 commentaires

SEURRE 25 août 2020 - 15 h 58 min

l’installation s’est parfaitement bien déroulée. Debian 10 avec un VPS OVH.
un rafraichissement de docker ne pas fais de mal.

Répondre
Jérémy PASTOURET 30 août 2020 - 15 h 17 min

Merci, je suis content de savoir que le tuto fonctionne bien !

Répondre

Laisser un commentaire

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