Catégories
Mailtrix

Créer votre VPN en 5 minutes avec Docker

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 !

Laisser un commentaire

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