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 !
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