[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 :)
 

elicopetaire56

Nouveau membre
Bonjour, J’ai vu votre tuto EVOTk pour installer le VPN WireGuard et j’ai vu que ça permettait de créer un réseau privé virtuel. Mais j’ai plusieurs questions, pour commencer, cette installation est-elle gratuite ? Parce que par exemple, jusqu'à présent quand je faisais des recherches je tombais souvent sur des VPN payants ! Par exemple sur https://www.monpetitforfait.com/vpn/ je vois qu’ils sont tous payant. Et aussi je voulais savoir si ce VPN WireGuard proposait les mêmes choses que NordVPN par exemple. Et est-ce-que si je veux regarder des séries qui sont que dans d’autres pays ça fonctionne ? Merci pour les autres, si je dois l’installer ça sera plus facile avec ses conseils, sachant qu’en plus je ne suis vraiment pas très doué dans ce genre de chose ! Voilà si vous pouvez me répondre ça serait super cool ! Merci beaucoup et bonne journée
 

EVOTk

Modérateur
Membre du personnel
Ce qui tu décrit comme VPN ce sont des fournisseur vpn.

Ici le but est d'installer un serveur vpn, chez soit.

Donc non, ce n'est pas adapté a ce que tu souhaite faire.
 

elicopetaire56

Nouveau membre
Ce qui tu décrit comme VPN ce sont des fournisseur vpn.

Ici le but est d'installer un serveur vpn, chez soit.

Donc non, ce n'est pas adapté a ce que tu souhaite faire.
Bonjour, merci de m'avoir répondu ! Maintenant je saurais que c'est deux choses différentes 🤓 Bonne journée à vous !
 

Drthrax74

Apprenti
Bonjour,
Il faut juste comprendre l'utilité d'un VPN.

Premier cas: Accéder à l'infrastructure à distance via un tunnel crypté .
Second cas: Caché son IP WAN au vu du monde.
 
Haut Bas