top of page
cloud-vds.png
  • 2 Base de données

  • 2 VPS AMD

  • 4 instances ARM

  • Stockage 100 Go

  • 50k appels API

theme-light-dark-white.png

Créez votre propre VPN avec WireGuard sur Docker

Dernière mise à jour : 5 oct. 2021

Nous allons voir ensemble comment créer facilement votre propre serveur VPN privé avec WireGuard fonctionnant dans un conteneur Docker. Je vais vous guider pas à pas à travers l'installation, la configuration et l'ajout des clients à votre serveur VPN.


Avant de pouvoir créer et démarrer des conteneurs, nous devons installer Docker et Docker-compose. Si vous avez déjà installé docker et docker-compose sur votre serveur, vous pouvez ignorer ces étapes.


Installation de Docker

curl -fsSL https://get.docker.com/ | sh

Ajout d'un utilisateur au groupe de docker pour exécuter la commande docker

sudo usermod -aG docker username

Installation de docker-compose

sudo curl -L https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

Ajout des droits d'exécution sur docker-compose

sudo chmod +x /usr/local/bin/docker-compose


Créer un fichier docker-compose


Ensuite, nous devons créer un fichier docker-compose pour gérer facilement notre conteneur WireGuard. Pour ce faire, j'utilise une image et un modèle de docker du site Web https://linuxserver.io. Les gars de linuxserver.io sont des passionnés et gèrent beaucoup d'images pour la communauté de docker.


Tout d'abord, nous allons créer un nouveau dossier dans le répertoire /opt appelé /opt/wireguard-server et crée un nouveau fichier docker-compose.yaml dans ce répertoire. Vous devez également changer la propriété de ce dossier pour votre utilisateur Linux.

sudo mkdir /opt/wireguard-server
nano /opt/wireguard-server/docker-compose.yaml

Dans ce fichier, nous allons utiliser le modèle suivant, veuillez vous référer à la documentation linuxserver/wireguard: https://hub.docker.com/r/linuxserver/wireguard

version: "2.1"
services:
  wireguard:
    image: linuxserver/wireguard
    container_name: wireguard
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Paris
      - SERVEURURL=wireguard.domain.com #optional
      - SERVERPORT=51820 #optional
      - PEERS=1 #optional
      - PEERDNS=auto #optional
      - INTERNAL_SUBNET=10.10.10.0 #optional
    volumes:
      - /opt/wireguard-server/config:/config
      - /lib/modules:/lib/modules
    ports:
      - 51820:51820/udp
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
    restart: unless-stopped

Remplacez SERVEURURL par un nom de domaine ou par l'adresse IP publique de votre serveur WireGuard, car vos clients devront se connecter depuis l'extérieur de votre réseau local. Vous pouvez également le définir sur auto, le conteneur docker déterminera automatiquement votre adresse IP publique et l'utilisera dans la configuration du client.


Démarrez votre serveur WireGuard


Vous pouvez maintenant démarrer votre conteneur WireGuard avec la commande suivante et les clients devraient pouvoir se connecter.

cd /opt/wireguard-server
docker-compose up -d

Distribuez les fichiers de configuration aux clients


Le plus pratique pour vos ordinateurs clients est d'installer l'application WireGuard directement sur le système. Si vous voulez savoir comment faire cela, vous pouvez également vous référer à notre article.


Vous pourrez trouver les fichiers .cnf nécessaires lors de la connexion depuis un client WireGuard dans le dossier /opt/wireguard-server/config. Chaque peer.cnf est enregistré en fonction de son numéro dans un dossier appelé peer1, peer2, peer3 ect...

cd /opt/wireguard-server/config/peer1

Ajouter des clients supplémentaires


Si vous voulez ajouter des clients supplémentaires, vous pouvez simplement augmenter le PEERS paramètre dans le fichier docker-compose.yaml. Après avoir modifié cette valeur, vous devez redémarrer votre conteneur Docker avec le paramètre –force-recreate.

docker-compose up -d --force-recreate

En espérant que cela vous à plu ! A très bientôt sur Awoui !

3 commentaires

3 Comments


Bonsoir,

J'ai suivi à la lettre votre tuto, mais je n'arrive pas à récupérer les fichiers *.cnf dans le répertoire /config répertoire que j'ai du créer avec la commande mkdir sinon la commande "docker-compose up -d" ne fonctionnait pas.

Auriez vous une idée

Like
Replying to

je n'ai aucun message d'erreur il répond "wireguard is up-to-date", on est d'accord que pour chercher le ou les fichiers *.cnf il faut le faire en SSh et en root.

Like

Titre

CONTENU

CONTENU

Chargement...

Chargement...

Chargement...

bottom of page