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

Pas sur de tout comprendre (désolé).
Je ne connais pas du tout le vocabulaire spécifique à ce genre d'application.

J'utilise les services de no-ip pour mon serveur et j'ai ouvert le port 51820 avec ma livebox (NAT)

Dans address il faut que je note : xxx.dyndns.org c'est ca ?

Merci en tout cas pour l'aide rapide.
 
Au risque d'être lourd, mais lorsque je rentre comme address: xxx.dyndns.org dans le client windows, il me met une erreur.
Je précise que le fichier de configuration que j'ai mis est celui du client windows et pas du serveur...
----
Mon réseau pro :
Livebox (NAT UDP 51820 ouvert)
Range IP 192.168.1.0/24 (j'espère avoir bon)
Redirection IP dynamique -> No-Ip (ex: test.dyndns.org)
Serveur Wireguard sur Docker via VM proxmox IP: 192.168.1.50 (Debian 10)

Réseau Perso:
Livebox
Range IP 192.168.1.0/24
Pc: Windows 11 avec Client Wireguard
----

J'ai configuré le stack Wireguard de docker comme suit :

Code:
version: "2.1"
services:
  wireguard:
    image: lscr.io/linuxserver/wireguard:latest
    container_name: wireguard
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Paris
      - SERVERURL=test.dyndns.org
      - SERVERPORT=51820
      - PEERS=3
      - PEERDNS=auto
      - INTERNAL_SUBNET=10.13.13.0 #optional
      - ALLOWEDIPS=0.0.0.0/0
  
    volumes:
      - /srv/docker/wireguard/config:/config
      - /lib/modules:/lib/modules
    ports:
      - 51820:51820/udp
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
    restart: unless-stopped

Mon fichier wg0.conf :

Code:
[Interface]
Address = 10.10.10.1
ListenPort = 51820
PrivateKey = xxx
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth+ -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth+ -j MASQUERADE

[Peer]
# peer_PC
PublicKey = xxx
PresharedKey = xxx
AllowedIPs = 10.10.10.2/32

[Peer]
# peer_TEL
PublicKey = xxx
PresharedKey = xxx
AllowedIPs = 10.10.10.3/32

[Peer]
# peer_PCPRO
PublicKey = xxx
PresharedKey = xxx
AllowedIPs = 10.10.10.4/32










Est ce bon ?
 
Dernière édition:
Bonjour,
J'ai fais ce type d'installation qui fonctionne super, cependant je cherche à faire de même avec une configuration client.
Merci
 
Bonsoir,
J'ai un souci (j'imagine très simple) dont je connais la cause mais dont je n'ai pas réussi à résoudre le problème : je n'arrive pas à avoir internet via le vpn (mon test était de voir l'IP que j'avais en utilisant la 4G et en passant par le vpn)

La configuration est la meme qu'indiqué.
J'ai changé les PUID/PGID

J'ai un petit doute sur ce que je dois mettre sur SERVERURL. J'hésite entre wireguard.nomdomaine.fr ou juste nomdomaine.fr (Dans le premier cas, faut-il que je fasse un fichier .conf dans le reverse proxy swag ?). Mais j'ai testé tout ça ne change pas grand chose.

J'en suis venu à la conclusion qu'il fallait ouvrir le port 51820, et là je bloque.
J'ai une box sfr, j'ai donc ouvert le port 51820 en UDP, sur l'adresse interne ip de mon NAS, mais ça change rien.

A tout les coups c'est un truc basique mais comme je connais pas les bons termes j'ai pas du faire les bonnes manips
Merci d'avance pour l'aide
 
Salut,

J'ai un petit doute sur ce que je dois mettre sur SERVERURL. J'hésite entre wireguard.nomdomaine.fr ou juste nomdomaine.fr (Dans le premier cas, faut-il que je fasse un fichier .conf dans le reverse proxy swag ?). Mais j'ai testé tout ça ne change pas grand chose.
Uniquement nomdedomaine.fr, et celui-ci doit pointé vers l'adresse ip public de ta box

et celle ci doit avoir le port ouvert 51820 en UDP et redirigé vers le NAS

Tu est sur que ta box accepte l'ouverture de port ? tu n'est pas en CG-NAT IPv4 ou Carrier Grade ?
 
  • J'aime
Réactions: exemple54
Tu est sur que ta box accepte l'ouverture de port ? tu n'est pas en CG-NAT IPv4 ou Carrier Grade ?
Non je ne suis pas sûr que ça accepte l'ouverture du coup mais je sais que je suis en IPV4 full stack donc normalement je devrais être bon sur l'ouverture du port

En soit j'utilise déjà d'autre service présent sur le n'as (nextcloud par exemple) en dehors du réseau local avec swag en reverse proxy
 
C'est bon j'ai compris, j'ai oublié de faire : ouverture du port + mettre uniquement nomdedomaine.fr
Je pensais l'avoir fait
Désolé de t'avoir pris du temps pour si peu et merci de l'aide
 
  • J'aime
Réactions: EVO
Bonjour @EVOTk et merci pour ce tuto.
Je suis sous DSM 7.2.

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 mon dossier de configuration (/volume1/docker/wireguard/config/), je ne trouve pas les dossiers en question. J'y trouve deux sous-dossiers désespérément vides "coredns" et "templates".

Dans mon fichier de config, j'ai indiqué les PUID et PGID d'un utilisateur dédié qui a les droits en lecture en écriture sur le dossier partagé docker. J'ai bien ouvert le port 51820/udp sur la box internet et dans le pare-feu du NAS.

Dans le log en pièce jointe je trouve un problème à propos du RTNETLINK. Je joins également mon docker-compose au cas où.

YAML:
services:
  wireguard:
    # image: lsrc.io/linuxserver/wireguard
    image: linuxserver/wireguard:latest
    container_name: wireguard
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    environment:
      - PUID=1039               # wireguard_agent droits R/W
      - PGID=100
      - TZ=Europe/Paris
      - SERVERURL=ndd.fr
      - SERVERPORT=51820
      - PEERS=MAC,PC,IPHONE
      - PEERDNS=auto
      - INTERNAL_SUBNET=10.13.13.0
      - ALLOWEDIPS=0.0.0.0/0    # le client VPN forcera toutes les connexions a utiliser le VPN
    volumes:
      - /volume1/docker/wireguard/config:/config
      - /lib/modules:/lib/modules
    ports:
      - 51820:51820/udp         # PORT À OUVRIR SUR LE NAS ET À AUTORISER DANS LE PARE-FEU
    restart: unless-stopped
 

Pièces jointes

  • log.jpg
    log.jpg
    157.3 KB · Affichages: 4