Passer au contenu principal

WireGuard

WireGuard c'est quoi ?
WireGuard est un protocole de communication et un logiciel libre et open source permettant de créer un réseau privé virtuel (VPN)2. Il est conçu avec les objectifs de facilité d'utilisation, de performances et de surface d'attaque basse. Il vise une meilleure performance3 et une plus grande économie d'énergie que les protocoles IPsec et OpenVPN Tunneling4. Le protocole WireGuard transmet le trafic sur UDP. (Source - Wikipédia)

Sommaire :
1/ Création des dossiers
2/ Création du docker-compose
3/ Création du conteneur
4/ Ouverture de port
5/ Récupération des fichiers de configuration des clients

C'est parti ! :giggle:

1/ Création des dossiers
Je vais installer mon serveur WireGuard dans mon dossier docker, qui se situe sur /srv/disk1, je vais donc créer dans le dossier docker, un dossier wireguard qui contient un dossier config avec la commande suivante :

Code:
sudo mkdir -p /srv/disk1/docker/wireguard/config



2/ Création du docker-compose
Maintenant, toujours dans mon dossier Dashy :

Code:
cd /srv/disk1/docker/wireguard


Je crée un fichier docker-compose.yml :

Code:
sudo nano docker-compose.yml


Avec le contenu suivant :

Code:
version: "2.1"
services:
  wireguard:
    image: ghcr.io/linuxserver/wireguard
    container_name: wireguard
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Paris
      - SERVERURL=tuto-evo.fr
      - SERVERPORT=51820
      - PEERS=PC,TEL,PCPRO
      - PEERDNS=auto
      - INTERNAL_SUBNET=10.13.13.0
      - ALLOWEDIPS=0.0.0.0/0
    volumes:
      - /srv/disk1/docker/wireguard/config:/config
      - /lib/modules:/lib/modules
    ports:
      - 51820:51820/udp
    restart: unless-stopped


Ici, plusieurs choses sont a adapter suivant votre installation :
PUID et PGIDsont à modifier suivant les ID de votre utilisateur*
* Pour connaitre le PUID/GUID de l'utilisateur : [Tuto] Connaitre le PUID / PGID d'un utilisateur.

SERVERURL, ici j'ai indiqué tuto-evo.fr comme nom de domaine d'acces a mon serveur. Ceci est a remplacer par votre nom de domaine, si vous avez une IP Fixe, vous pouvez également ici indiquer l'IP Fixe plutot qu'un nom de domaine.

PEERS, contient soit un nombre soit des valeur texte séparé par une virgule, cela correspond au nombre de configuration client que vous voulez générer à la création du serveur. Ici, je souhaite créer 3 profils : "PC" , "TEL" et "PCPRO". J'aurai également pu indiquer : PEERS=3 a la seul différence que les 3 profils générer n'ont dans ce cas, pas de nom.

ALLOWEDIPS correspond à la plage d'IP autorisé a utilisé le VPN. Avec la configuration "0.0.0.0/0" alors le client VPN forcera toutes les connexions a utiliser le VPN.

- Sur la ligne "/srv/disk1/docker/wireguard/config:/config", /srv/disk1/docker/wireguard/config doit correspondre avec le dossier crée a l'étape 1 du tuto.

3/ Création du conteneur
Maintenant, toujours dans mon dossier wireguard :

Code:
cd /srv/disk1/docker/wireguard


on execute la commande :

Code:
sudo docker-compose up -d


Une fois fini, la commande renvoi "done", alors le conteneur est bien créé !
Il faut attendre quelques minutes pour que le conteneur soit bien créer et les configuration générées.

4/ Ouverture de port
Pour fonctionner correctement, Wireguard a besoin que le port 51820 UDP soit correctement ouvert et redirigé. Pensez donc a bien l'ouvrir/redirigé dans votre box et/ou pare-feu.

5/ Récupération des fichiers de configuration des clients
Dans votre dossier de configuration ( /srv/disk1/docker/wireguard/config ), nous allons trouver des dossier commençant par peer_.
Dans mon cas, 3 dossiers car nous avons configuré 3 clients ! Un dossier peer_PC, un peer_TEL et un peer_PCPRO.

Dans chacun de ces dossiers vous allez trouver un fichier .conf, qui servira a connecté votre client au serveur Wireguard !