[Tuto] Installation d'un serveur VPN WireGuard en Docker ( docker-compose )

EVOTk

Modérateur
Membre du personnel
[Tuto] Installation d'un serveur VPN WireGuard en Docker


Bonjour,
Un nouveau petit tuto pour vous apprendre à installer un serveur WireGuard en docker-compose.

wireguard.svg


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 !

Have Fun !
 

thelab

Nouveau membre
Salut,
Merci pour le tuto.
J'ai essayé à deux reprises mais je ne vois pas les fichier dans le dossier config...
Une idée du pourquoi?
Merci & bonne soirée
 

EVOTk

Modérateur
Membre du personnel
Salut,
As tu bien modifier le chemin vers ton dossier config ?
As tu bien renseigné le PUID/GUID ?

Que dise les logs du conteneur ?
 

Romain12362

Nouveau membre
Bonjour,

Lors de l'installation du docker Wireguard, j'ai rencontré le problème suivant :

Code:
[cont-init.d] 10-adduser: exited 0.,
[cont-init.d] 30-config: executing... ,
Uname info: Linux 7da7cb63d51d 3.10.105 #23739 SMP Tue Jul 3 19:50:10 CST 2018 x86_64 x86_64 x86_64 GNU/Linux,
RTNETLINK answers: Operation not supported,
**** The wireguard module is not active, will attempt kernel header install and module compilation. ****,
**** Attempting kernel header install ****,
Get:1 http://archive.ubuntu.com/ubuntu bionic InRelease [242 kB],
Get:2 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB],
Get:3 http://archive.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB],
Get:4 http://archive.ubuntu.com/ubuntu bionic/main Sources [1,063 kB],
Get:5 http://archive.ubuntu.com/ubuntu bionic/restricted Sources [5,823 B],
Get:6 http://archive.ubuntu.com/ubuntu bionic/multiverse Sources [216 kB],
Get:7 http://archive.ubuntu.com/ubuntu bionic/universe Sources [11.5 MB],
Get:8 http://archive.ubuntu.com/ubuntu bionic/restricted amd64 Packages [13.5 kB],
Get:9 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages [1,344 kB],
Get:10 http://archive.ubuntu.com/ubuntu bionic/universe amd64 Packages [11.3 MB],
Get:11 http://archive.ubuntu.com/ubuntu bionic/multiverse amd64 Packages [186 kB],
Get:12 http://archive.ubuntu.com/ubuntu bionic-updates/main Sources [647 kB],
Get:13 http://archive.ubuntu.com/ubuntu bionic-updates/multiverse Sources [16.4 kB],
Get:14 http://archive.ubuntu.com/ubuntu bionic-updates/universe Sources [576 kB],
Get:15 http://archive.ubuntu.com/ubuntu bionic-updates/restricted Sources [27.1 kB],
Get:16 http://archive.ubuntu.com/ubuntu bionic-updates/restricted amd64 Packages [537 kB],
Get:17 http://archive.ubuntu.com/ubuntu bionic-updates/multiverse amd64 Packages [33.6 kB],
Get:18 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages [2,694 kB],
Get:19 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages [2,194 kB],
Get:20 http://archive.ubuntu.com/ubuntu bionic-security/main Sources [324 kB],
Get:21 http://archive.ubuntu.com/ubuntu bionic-security/restricted Sources [23.6 kB],
Get:22 http://archive.ubuntu.com/ubuntu bionic-security/multiverse Sources [8,780 B],
Get:23 http://archive.ubuntu.com/ubuntu bionic-security/universe Sources [348 kB],
Get:24 http://archive.ubuntu.com/ubuntu bionic-security/universe amd64 Packages [1,420 kB],
Get:25 http://archive.ubuntu.com/ubuntu bionic-security/main amd64 Packages [2,258 kB],
Get:26 http://archive.ubuntu.com/ubuntu bionic-security/restricted amd64 Packages [505 kB],
Get:27 http://archive.ubuntu.com/ubuntu bionic-security/multiverse amd64 Packages [26.7 kB],
Fetched 37.7 MB in 5s (6,961 kB/s),
Reading package lists...,
**** No kernel headers found in the Ubuntu or Debian repos!! Will try the headers from host (if mapped), may or may not work ****,
**** Kernel headers don't seem to be available, can't compile the module. Sleeping now. . . ****

Il me semble comprendre que ce docker a plus de facilité à s'installer sur les systèmes partageant la base debian.

J'ai cependant réussi à le faire fonctionner sur mon NAS grâce à la résolution apporté à ce problème : https://github.com/linuxserver/docker-wireguard/issues/40

Pour faire simple, l'installation de cette adaptation officieuse de Wireguard pour syno apporte au système le kernel header manquant et permet au docker de se lancer
https://github.com/runfalk/synology-wireguard

Si d'autres rencontre ce problème, j'espère que cette piste vous aidera à trouver la solution :)
 

EVOTk

Modérateur
Membre du personnel
Wireguard n'est effectivement pas compatible avec DSM officiellement, il faut bidouiller !
 

thelab

Nouveau membre
Salut,

Merci pour ta réponse

Les logs sont les mêmes que ceux de Romain12362

Je vais essayer de comprendre comment m'en sortir grâce aux liens fournis

++
 

thelab

Nouveau membre
Question peut-être bête Romain mais es-tu sur DSM7?
Je ne trouve pas comment modifier le trust level pour installer le spk...
Une idée?





Romain12362 a dit:
Bonjour,

Lors de l'installation du docker Wireguard, j'ai rencontré le problème suivant :

Code:
[cont-init.d] 10-adduser: exited 0.,
[cont-init.d] 30-config: executing... ,
Uname info: Linux 7da7cb63d51d 3.10.105 #23739 SMP Tue Jul 3 19:50:10 CST 2018 x86_64 x86_64 x86_64 GNU/Linux,
RTNETLINK answers: Operation not supported,
**** The wireguard module is not active, will attempt kernel header install and module compilation. ****,
**** Attempting kernel header install ****,
Get:1 http://archive.ubuntu.com/ubuntu bionic InRelease [242 kB],
Get:2 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB],
Get:3 http://archive.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB],
Get:4 http://archive.ubuntu.com/ubuntu bionic/main Sources [1,063 kB],
Get:5 http://archive.ubuntu.com/ubuntu bionic/restricted Sources [5,823 B],
Get:6 http://archive.ubuntu.com/ubuntu bionic/multiverse Sources [216 kB],
Get:7 http://archive.ubuntu.com/ubuntu bionic/universe Sources [11.5 MB],
Get:8 http://archive.ubuntu.com/ubuntu bionic/restricted amd64 Packages [13.5 kB],
Get:9 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages [1,344 kB],
Get:10 http://archive.ubuntu.com/ubuntu bionic/universe amd64 Packages [11.3 MB],
Get:11 http://archive.ubuntu.com/ubuntu bionic/multiverse amd64 Packages [186 kB],
Get:12 http://archive.ubuntu.com/ubuntu bionic-updates/main Sources [647 kB],
Get:13 http://archive.ubuntu.com/ubuntu bionic-updates/multiverse Sources [16.4 kB],
Get:14 http://archive.ubuntu.com/ubuntu bionic-updates/universe Sources [576 kB],
Get:15 http://archive.ubuntu.com/ubuntu bionic-updates/restricted Sources [27.1 kB],
Get:16 http://archive.ubuntu.com/ubuntu bionic-updates/restricted amd64 Packages [537 kB],
Get:17 http://archive.ubuntu.com/ubuntu bionic-updates/multiverse amd64 Packages [33.6 kB],
Get:18 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages [2,694 kB],
Get:19 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages [2,194 kB],
Get:20 http://archive.ubuntu.com/ubuntu bionic-security/main Sources [324 kB],
Get:21 http://archive.ubuntu.com/ubuntu bionic-security/restricted Sources [23.6 kB],
Get:22 http://archive.ubuntu.com/ubuntu bionic-security/multiverse Sources [8,780 B],
Get:23 http://archive.ubuntu.com/ubuntu bionic-security/universe Sources [348 kB],
Get:24 http://archive.ubuntu.com/ubuntu bionic-security/universe amd64 Packages [1,420 kB],
Get:25 http://archive.ubuntu.com/ubuntu bionic-security/main amd64 Packages [2,258 kB],
Get:26 http://archive.ubuntu.com/ubuntu bionic-security/restricted amd64 Packages [505 kB],
Get:27 http://archive.ubuntu.com/ubuntu bionic-security/multiverse amd64 Packages [26.7 kB],
Fetched 37.7 MB in 5s (6,961 kB/s),
Reading package lists...,
**** No kernel headers found in the Ubuntu or Debian repos!! Will try the headers from host (if mapped), may or may not work ****,
**** Kernel headers don't seem to be available, can't compile the module. Sleeping now. . . ****

Il me semble comprendre que ce docker a plus de facilité à s'installer sur les systèmes partageant la base debian.

J'ai cependant réussi à le faire fonctionner sur mon NAS grâce à la résolution apporté à ce problème : https://github.com/linuxserver/docker-wireguard/issues/40

Pour faire simple, l'installation de cette adaptation officieuse de Wireguard pour syno apporte au système le kernel header manquant et permet au docker de se lancer
https://github.com/runfalk/synology-wireguard

Si d'autres rencontre ce problème, j'espère que cette piste vous aidera à trouver la solution :)
 
Haut