
28 Juin 2016
Tout d'abord vous aurez besoin de Docker et Docker Compose. Ce dernier est dans l'absolu facultatif, mais va nous permettre de déployer notre stack Docker beaucoup plus facilement.
1. Créer un nouveau nom de domaine
Pour faire les choses proprement j'ai choisi de créer un domaine spécialement pour notre serveur OpenVPN, il nous permettra de le configurer plus facilement. J'ai simplement ajouté un champ de type A
pointant sur mon serveur dans la zone DNS de mon hébergeur.
2. Préparer le terrain
Sur votre serveur, dans l'emplacement de votre choix, créez un dossier openvpn/
puis à l'intérieur un dossier data/
et un fichier docker-compose.yml
comme suit :
mkdir openvpn mkdir openvpn/data touch openvpn/docker-compose.yml
Le dossier data/
contiendra les fichiers relatifs à chaque utilisateur, de manière locale et donc persistante. Quant à notre fichier docker-compose.yml
il contiendra la configuration du docker permettant de faire fonctionner OpenVPN.
3. On préconfigure OpenVPN
On doit lancer une première vague de commande pour préconfigurer notre serveur OpenVPN et surtout générer notre clé de sécurité ! Remplacez le '/home/monuser/openvpn/data
' par le chemin absolu de votre dossier "openvpn/data
" et remplacer "votredomain.tld
" par votre domaine configuré la l'étape 1.
docker run -v /home/monuser/openvpn/data:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u udp://votredomain.tld docker run -v /home/monuser/openvpn/data:/etc/openvpn --rm -it kylemanna/openvpn ovpn_initpki
Pendant la procédure, n'oubliez pas de préciser une passe-phrase de sécurité. Suivant votre serveur la génération de la clé ça peut prendre pas mal de temps.
4. Faire le fichier docker-compose.yml
On a presque fini ! Dans le fichier docker-compose.yml
créé plus haut, nous allons simplement écrire la procédure de lancement de notre Docker :
app: image: 'kylemanna/openvpn' volumes: - './data:/etc/openvpn' ports: - "1194:1194/udp" cap_add: - NET_ADMIN restart: always
Voilà, c'est déjà terminé. Il ne vous reste plus qu'à démarrer votre serveur VPN. Vous devrez toujours vous positionner dans le dossier "openvpn" puis taper la commande :
docker-compose up -d
Créer un utilisateur
Pour créer un nouvel utilisateur il vous suffira de lancer la commande suivante en remplaçant VOTRELOGIN
par le nom d'utilisateur que vous souhaitez:
docker run -v /home/monuser/openvpn/data:/etc/openvpn --rm -it kylemanna/openvpn easyrsa build-client-full VOTRELOGIN nopass
Récupérer le fichier .ovpn de l'utilisateur
Pour pouvoir connecter vos devices à votre serveur VPN, vous aurez besoin du fichier .ovpn correspondant à l'utilisateur que vous avez créé, pour le récupérer c'est très simple :
docker run -v /home/monuser/openvpn/data:/etc/openvpn --rm kylemanna/openvpn ovpn_getclient VOTRELOGIN > VOTRELOGIN.ovpn
Vous obtenez ainsi un fichier du type VOTRELOGIN.ovpn