Aller au contenu

[TUTO][Docker] linuxserver/wireguard + Wireguard-UI


Messages recommandés

Posté(e)
il y a 7 minutes, Lelolo a dit :

C'est là qu'est l'os 😜

Et pourtant ce n'est pas ça qui coinçait mais WGUI_ENDPOINT_ADDRESS. Pour le coup j'ai fait une recherche pointilleuse dans le fichier de config afin de repérer et de corriger tous les wiregard qui pouvaient traîner.

WireGuard (avec un u...) est vraiment une Rolls comparé à OpenVPN !

Posté(e)

Bon, la partie serveur fonctionne correctement, il ne me reste plus qu'à installer des clients. Un grand merci à @loli71 pour son travail !

Une question, à quoi sert la variable SESSION_SECRET ?

Posté(e) (modifié)
il y a 38 minutes, .Shad. a dit :

C'est expliqué dans la doc ici : https://github.com/ngoduykhanh/wireguard-ui

J'ai parcouru le Web du Japon aux Etats-Unis sans tomber sur cette page qui est une mine d'or ! Merci @.Shad..

J'ai créé un compte sur le serveur Wireguard puis généré un QR code. L'iPhone a récupéré un tunnel à partir de ce QR code et a pu lancer une connexion. Le problème est que je n'arrive à me connecter à aucun site. Dans la page Status de Wireguard aucune connexion n'apparaît. Sous "List of connected peers for device with name wg0" rien n'apparaît. J'ai ajouté une règle pour Wireguard dans le firewall du NAS mais cela ne change rien.

Je sens que je touche au but mais ce sont les derniers cent mètres qui sont les plus durs...

PJ.jpg

Modifié par CyberFr
Posté(e)

Ce sont les règles de pare-feu de ton interface LAN 1, qui n'est pas 10.13.13.1

Si l'interface WG0 n'apparaît pas dans la liste déroulante, tu dois passer par une règle dans "toutes les interfaces"

Posté(e) (modifié)
il y a 34 minutes, .Shad. a dit :

Ce sont les règles de pare-feu de ton interface LAN 1, qui n'est pas 10.13.13.1

J'ai modifié en 10.13.13.1/255.255.255.0 et j'ai placé la règle dans "Toutes les interfaces" mais le problème perdure.

EDITION :

J'ajoute que sue le smartphone les adresses sont 10.13.13.1/32 et que le port d'écoute est 52561, je ne sais pas d'où il sort.

Modifié par CyberFr
Posté(e)

Tu as essayé depuis la 4g ? Car il faut que tu aies aussi du NAT sur le port 51820 en udp depuis ta box vers le NAS, et une règle correspondante dans le pare-feu de LAN 1 (autorisé pour la France par exemple)

Posté(e)
il y a 31 minutes, CyberFr a dit :

@MilesTEG1, puisque tu es dans un environnement Mac, as-tu pu installer Wireguard avec succès ?

Sur macOS , le client s’installe très bien ,

par contre je n’ai jamais réussi à installer sur le nas le serveur WireGuard.

J’ai laissé tombé depuis , et installe un serveur WireGuard sur un NUC avec docker et Firezone. 

Posté(e)

@MilesTEG1, on se complète toi et moi,. J'ai pu installer le serveur mais n'arrive pas à me connecter depuis un iPhone. Toi, tu as pu installer un client mais pas le serveur :neutral: Avec le fichier de config que j'ai publié ici je suis parvenu à faire tourner le serveur.

Posté(e)

J'en ai eu assez de me prendre la tête avec ce container Wireguard, c'est pourquoi j'ai adopté WG-EASY. Mise en place rapide et simple. Tests réussis et il fonctionne sur le NAS et sur mon smartphone.

Posté(e)

Je complète. Wiregard fonctionne avec wg-easy sur le NAS, sur mon smartphone mais aussi sur mon Mac connecté en 4G depuis aujourd'hui. Goodbye OpenVPN :biggrin:

PS : On nous aurait changé les émoticons ? Je préférais ceux d'avant.

Posté(e)

J'ai abandonné wg-easy et suis revenu à l'implémentation de ce tuto.

Je rencontre décidément toujours le même problème, je n'arrive pas à joindre DNS Server sur son IP locale. Quand au niveau du client je modifie le serveur DNS en mettant celui de quad9 part exemple, tout rentre dans l'ordre. C'est à désespérer !

Chose étonnante bien qu’anecdotique pour le moment, lorsque le client est connecté au VPN rien n'apparaît dans la page Status de Wireguard UI et pourtant je me promène bien sur le Web. J'accède même au portail de connexion de DSM.

@.Shad.j'ai placé la règle VPN dans la partie VPN du pare-feu. Je vais déplacer la règle dans la partie LAN 1 pour voir si ça change quelque chose sans trop y croire.

Posté(e)

Le paramétrage d'un de mes clients :

[Interface]
PrivateKey = "Ma clé très privée"
Address = 10.6.0.2/32 'mon IP de connexion au serveur Wireguard'
DNS = 192.168.1.101 'le serveur DNS local du NAS' (on peut en spécifier plusieurs, les IP séparées par des virgules)

[Peer]
PublicKey = La clé publique du serveur Wireguard'
AllowedIPs = 192.168.1.0/24 'plage d'IP du réseau de destination'
Endpoint = NDDDuDomaineDeDestination:51820 'c'est le port de destination par défaut mais on peut en choisir un autre'
PersistentKeepalive = 25

 

Posté(e)
Il y a 12 heures, Mic13710 a dit :
AllowedIPs = 192.168.1.0/24

Tu n'as pas indiqué 10.6.0.2/32 dans ce champ ?

 

Il y a 12 heures, Mic13710 a dit :
Endpoint = NDDDuDomaineDeDestination:51820

Je n'ai pas indiqué le port mais juste le nom de domaine. Je vais poster mon config.yaml mais attendre un peu pour qu'il ne soit pas fondu avec ma réponse.

L'histoire retiendra que j'ai été le premier à poster dans ce tuto et le premier, à ma connaissance, qui l'a mi,s en œuvre 😀

Posté(e)
version: "3.6"
services:
  wireguard:
    image: lscr.io/linuxserver/wireguard:latest
    container_name: wireguard
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
      - net.ipv6.conf.all.disable_ipv6=1
      - net.ipv6.conf.default.disable_ipv6=1
    ports:
      - 51820:51820/udp
      - 51821:5000/tcp
    volumes:
      - /lib/modules:/lib/modules
      - ./config/:/config
      - ./custom-files/custom-cont-init.d:/custom-cont-init.d:ro
      - ./custom-files/custom-services.d:/custom-services.d:ro
      - ./db:/app/db
      - ./wireguard-ui:/wireguard-ui:ro

    environment:
      - PUID=100
      - PGID=101
      - TZ=Europe/Paris

      - SERVERURL=ndd.fr
      - SERVERPORT=51820
      - PEERDNS=192.168.1.X                  # IP de DNS Server dans la partie serveur de Wireguard
      - INTERNAL_SUBNET=10.8.0.0
      - ALLOWEDIPS=192.168.1.0/24,10.8.0.0/24
      - LOG_CONFS=false

      - SESSION_SECRET=***********
      - WGUI_USERNAME=cyberfr
      - WGUI_PASSWORD=******************
      - WGUI_ENDPOINT_ADDRESS=ndd.fr
      - WGUI_DNS=192.168.1.X                 # IP de DNS Server dans la partie UI de Wireguard
      - WGUI_SERVER_INTERFACE_ADDRESSES=10.8.0.0/24
      - WGUI_SERVER_LISTEN_PORT=51820
      - WGUI_DEFAULT_CLIENT_ALLOWED_IPS=192.168.1.0/24,10.8.0.0/24
      - WGUI_SERVER_POST_UP_SCRIPT=iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth+ -j MASQUERADE
      - WGUI_SERVER_POST_DOWN_SCRIPT=iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth+ -j MASQUERADE

    restart: unless-stopped

 

Posté(e)
Il y a 4 heures, CyberFr a dit :

Tu n'as pas indiqué 10.6.0.2/32 dans ce champ ?

Non, cette ip est celle que je demande à Wireguard, qui est associée aux clés publiques et privées du serveur et qui sera attribuée au PC.

Les AllowedIPs sont les adresses ou plages d'adresses autorisées dans le tunnel. C'est ce qui permet de faire du split tunneling. Si je veux joindre mon NAS en 192.168.1.101 (qui est aussi le serveur DNS), il faut bien que l'IP soit autorisée à transiter par le tunnel. Dans le cas de mon exemple, 192.168.1.0/24 couvre toutes les IP privées du réseau local de destination. Toute autre IP sera rejetée et envoyée vers le net.

Par défaut les allowedIPs est 0.0.0.0 qui fait tout passer par le tunnel.

Posté(e)
Il y a 5 heures, Mic13710 a dit :

Toute autre IP sera rejetée et envoyée vers le net.

Correctif : En dehors des AllowedIPs, toute IP dans la plage du réseau local du client sera traitée localement, les autres seront dirigées vers le net.

Il en est (presque) de même pour les ndd: ceux qui sont dans le périmètre du serveur DNS du réseau distant transitent par le tunnel. Les autres qui sont résolus via les redirecteurs de ce même serveur DNS sont directement renvoyés sur le net. Ce qui de facto élimine un éventuel serveur DNS local. C'est en tout cas ce qui se passe chez moi. Lorsque j'établis un tunnel vers un réseau distant, mon serveur DNS local est inopérant car mes adresses locales ne peuvent plus être résolues localement. Seule mon IP publique est renvoyée.

Pas encore essayé, il faudrait que je rajoute une zone esclave de ma zone locale sur le serveur DNS distant pour que ce soit l'adresse IP locale qui soit renvoyée.

Posté(e)

@Mic13710, vous aviez raison lorsque vous disiez que Wireguard doit être installé de préférence sur un serveur. Tant que je n'aurai pas un serveur ou une freebox, je me heurterai à un mur.

Pourquoi Synology n'est-il pas fichu de sortir des routeurs multi-gig, ce que fait QNAP ? Parce que, quitte à me répéter, il est complètement idiot de disposer de ports 2,5 Gb/s sur la fbreebox et de placer un  routeur mono-gigabit en DMZ.

Franchement, je m'interroge. Il aurait été si simple que Synology propose un paquet Wireguard. Mais son noyau est trop ancien pour cela !

Posté(e)
il y a une heure, CyberFr a dit :

installé de préférence sur un serveur routeur. Tant que je n'aurai pas un serveur routeur ou une freebox

😉

Synology sont en retard sur tout....

Vus mes besoins, je n'envisage pas pour le moment de passer en multigig.

Wireguard est encore relativement récent et n'est donc pas dispo sur tous les équipements en natif. Ceci dit, Synology devrait se bouger pour l'introduire sur son serveur VPN. Ca devient une priorité si on considère le nombre croissant d'utilisateurs.

Mais quand on a le choix, il est évident qu'un serveur VPN a plus sa place sur le routeur que sur un équipement du réseau.

Posté(e)
il y a 12 minutes, Mic13710 a dit :
  Il y a 1 heure, CyberFr a dit :

installé de préférence sur un serveur routeur. Tant que je n'aurai pas un serveur routeur ou une freebox

Correction justifiée, l'emploi du mot serveur étant dû à mon dépit !

  • 3 semaines après...
Posté(e) (modifié)

Bonjour,

 merci beaucoup pour ce tuto et tous les intervenants qui permettent d'avancer sur cette installation.

Pour ma part, je suis avec un DS918+ et DSM 7.2.1 update5.

J'ai réussi à compiler le "wireguard-spk" pour l'adapter à mon NAS.

Mais, après plusieurs heures, je butte sur l'installation.

j'ai eu des souci avec les fichiers "init.sh", "install_wg-ui.sh", "watch.sh" et "wg-ui.sh" qui ne supportaient pas la ligne 2 vide.

Erreurs avec "install_wg-ui.sh"

2024/06/01 13:08:24	stderr	exec: fatal: unable to exec bash : No such file or directory
2024/06/01 13:08:24	stdout	[custom-init] install_wg-ui.sh: exited 2
2024/06/01 13:08:24	stderr	/custom-cont-init.d/install_wg-ui.sh: line 8: `fi'
2024/06/01 13:08:24	stderr	/custom-cont-init.d/install_wg-ui.sh: line 8: syntax error near unexpected token `fi'
2024/06/01 13:08:24	stderr	/custom-cont-init.d/install_wg-ui.sh: line 5: $'\r': command not found
2024/06/01 13:08:24	stdout	**** installing wg-ui ****
2024/06/01 13:08:24	stdout	[custom-init] install_wg-ui.sh: executing.

Ensuite, des soucis surtout avec "install_wg-ui.sh" : une erreur avec les lignes

cp /wireguard-ui/wg-ui /app/wg-ui 
 chmod 755 /app/wg-ui

 

2024/06/01 13:13:51	stdout	**** No valid tunnel config found. Please create a valid config and restart the container ****
2024/06/01 13:13:51	stderr	ls: cannot access '/config/wg_confs/*.conf': No such file or directory
2024/06/01 13:13:51	stdout	**** Disabling CoreDNS ****
2024/06/01 13:13:51	stderr	exec: fatal: unable to exec bash : No such file or directory
2024/06/01 13:13:51	stderr	exec: fatal: unable to exec bash : No such file or directory
2024/06/01 13:13:51	stdout	[custom-init] install_wg-ui.sh: exited 1
2024/06/01 13:13:51	stderr	chmod: cannot access '/app/wg-ui': No such file or directory
2024/06/01 13:13:51	stdout	**** installing wg-ui ****

que j'ai changé en

cp /wireguard-ui/wg-ui /app/db
chmod 755 /app/db

(peut-être que je ne fais pas ce qu'il faut mais je me suis fié à 
 

# pour wg-ui 
- volume1/docker/wireguard/db:/app/db

de "docker-compose.yaml".

un souci avec également

if [ -r /wireguard-ui/wg_template.conf ]; then
cp /wireguard-ui/wg_template.conf /wg_template.conf
fi

 erreur avec fi : j'ai retiré cette partie n'ayant pas de fichier "wg_template.conf". (je ne devrais peut-être pas).

Mais voilà le log que j'obtiens:

2024/05/31 21:59:22	stderr	exec: fatal: unable to exec bash : No such file or directory
2024/05/31 21:59:22	stderr	exec: fatal: unable to exec bash : No such file or directory
2024/05/31 21:59:21	stdout	[ls.io-init] done.
2024/05/31 21:59:21	stdout	**** No valid tunnel config found. Please create a valid config and restart the container ****
2024/05/31 21:59:21	stderr	ls: cannot access '/config/wg_confs/*.conf': No such file or directory
2024/05/31 21:59:21	stdout	**** Disabling CoreDNS ****
2024/05/31 21:59:21	stderr	exec: fatal: unable to exec bash : No such file or directory
2024/05/31 21:59:21	stderr	exec: fatal: unable to exec bash : No such file or directory
2024/05/31 21:59:21	stdout	[custom-init] install_wg-ui.sh: exited 0
2024/05/31 21:59:21	stdout	**** installing wg-ui ****

 

je cale et je ne sais quelle direction prendre...

Merci

Modifié par cedbuj

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.