Dans cet article, je vous propose de créer votre propre serveur OpenVPN avec Docker.
Prérequis :
Pour réaliser cette installation, vous aurez bien sûr besoin de Docker et d’un serveur ! Il sera aussi nécessaire de pointer un nom de domaine sur votre serveur OpenVPN…
Installer Docker (Ubuntu/Debian) :
sudo apt install docker docker-compose
« Cette installation à été testé sur un VPS OVH avec Ubuntu 20.04 »
Mise en place du serveur OpenVPN :
Dans un premier temps, nous allons créer les dossiers et fichiers :
mkdir -p /mnt/docker/ovpn/data/openvpn/ && cd /mnt/docker/ovpn/
Créer le fichier « docker-compose.yml » :
touch /mnt/docker/ovpn/docker-compose.yml
Ajouter ceci au fichier :
nano docker-compose.yml
############## ATTENTION RESPECTER LES LIGNES & ESPACES (TYPO & SYNTAXE) (Voir doc Docker) #################
version: "3" # Version du fichier (docker-compose)
services: # Début de section des containers à installer
openvpn: # Début de section pour kylemanna/openvpn
image: kylemanna/openvpn:2.4 # Image à installer
#restart: ${RESTART_MODE} # Rédémarrer le container si le serveur redémarre (prod)
container_name: openvpn # Nom du container
volumes: # Répertoire à monter
- ${VOLUMES_ROOT_PATH}/data/openvpn:/etc/openvpn
ports: # Permet de définir un port
- "443:1194/tcp"
cap_add:
- NET_ADMIN
restart: always
Créer le fichier « .env » pour Docker :
touch /mnt/docker/ovpn/.env
Ajouter ceci au fichier :
nano .env
# Ce fichier est utilisé pour définir les variables d'environnement à utiliser
# pour la substitution de variable dans votre fichier de docker-composition.yml.
# https://docs.docker.com/compose/env-file/
#
# OBLIGATOIRE
# /!\ Si ces variables ne sont pas définies, le serveur ne démarrera pas.
#
# Dossier parent des volumes Docker
VOLUMES_ROOT_PATH=/mnt/docker/ovpn
Générer la configuration :
docker run -v /mnt/docker/ovpn/data/openvpn:/etc/openvpn --log-driver=none --rm kylemanna/openvpn:2.4 ovpn_genconfig -u tcp://mondomaine.com:443
Générer vos clés :
docker run -v /mnt/docker/ovpn/data/openvpn:/etc/openvpn --log-driver=none --rm -it kylemanna/openvpn:2.4 ovpn_initpki
Exécuter le serveur :
docker-compose up -d
Votre serveur OpenVPN devrais fonctionner !
Trucs et astuces :
Créer un utilisateur :
docker exec -it openvpn easyrsa build-client-full myuser nopass
Exporter le fichier « .ovpn » :
docker exec -it openvpn ovpn_getclient myuser > /mnt/docker/ovpn/data/openvpn/ovpn/myuser.ovpn
Il vous reste plus à importer votre fichier « .ovpn » dans un client OpenVPN !! Et voila, vous avez un serveur OpenVPN personnel !!!
Pour en savoir plus, je vous laisse découvrir le Git de « kylemanna » qui fourni cette base d’OpenVPN avec Docker : https://github.com/kylemanna/docker-openvpn
Si vous avez trouvé cet article intéressant, veuillez prendre une minute pour le partager ! Bye Bye !