-
Compteur de contenus
680 -
Inscription
-
Dernière visite
-
Jours gagnés
10
Messages posté(e)s par loli71
-
-
Le 25/12/2023 à 8:02 PM, Shiraz Adama a dit :
je n'arrive pas à y accéder via mon navigateur
Si tu ping bien c'est que les flux sont ouverts, si tu n'accèdes pas aux équipements via un navigateur (donc avec potentiellement un nom au lieu de l'ip), cela provient peut être d'un problème de configuration de la partie DNS dans wireguard.
Dans mon exemple, j'ai positionné comme DNS distant l'ip de mon routeur:
PEERDNS=192.168.1.1 WGUI_DNS=192.168.1.1 PEERDNS et WGUI_DNS: contiennent l'IP du serveur DNS qui sera envoyé aux clients pour qu'ils l'utilisent (dans notre cas, il s'agit de l'ip de la box 192.168.1.1 afin de pouvoir résoudre mes noms internes)
Mais j'ai aussi coché la case suivante dans la partie config client :
Sinon c'est le serveur DNS du réseau où tu te trouves qui est utilisé et non pas le serveur DNS de ton réseau distant (box)
0 -
Il y a 15 heures, @cidflash a dit :
Du coup, impossible d'avoir l'interface web... J'aimerai utiliser le client wireguard pour me connecter à mon autre serveur wireguard distant ... J'ai le fichier .conf distant avec moi !
Savez-vous comment je pourrez faire en ssh ou depuis le syno ?Merci
Dans un premier temps, le Tuto que j'ai fait permet de créer et gérer un wireguard configuré en Serveur, et non en client qui permettrait de te connecter à ton serveur distant.
Concernant ta question : "pourquoi tu n'a as accès à l'interface Wireguard", la réponse est dans les deux premières lignes de ton log du même post:
Citation2023/10/02 01:00:22stdout**** If you have an old kernel without wireguard support built-in, you can try using the legacy tag for this image to compile the modules from scratch. ****
2023/10/02 01:00:22stdout**** The wireguard module is not active. If you believe that your kernel should have wireguard support already, make sure that it is activated via modprobe! ****
De plus, cette erreur est décrite dans mon tuto:
CitationSi vous avez l'erreur suivante, cela veut dire que votre version de kernel n'inclue pas les modules nécessaires, vous devez alors installer ces modules manuellement.
RTNETLINK answers: Not supported **** The wireguard module is not active. If you believe that your kernel should have wireguard support already, make sure that it is activated via modprobe! **** **** If you have an old kernel without wireguard support built-in, you can try using the legacy tag for this image to compile the modules from scratch. ****
Vous pouvez vous appuyer sur ce tuto https://www.blackvoid.club/wireguard-spk-for-your-synology-nas/ ou les projets github suivants:
https://github.com/vegardit/synology-wireguard
https://github.com/runfalk/synology-wireguard (avec patch https://github.com/runfalk/synology-wireguard/issues/154#issuecomment-1169393940 pour DSM7.1)
2 -
Le 25/08/2023 à 17:04, Sebastien Muller a dit :
Du coup, comment dois-je faire pour donner les droits roor à ces dossier?
Et comment faire pour passer cette erreur "No client conf found"
Hello Sebastien,
Je viens de vérifier les droits positionnés sur les différents répertoires lors de mon installation, et je te confirme que les différents dossiers appartiennent à mon compte utilisateur du DSM (pas besoin de les faire appartenir à root).
D'ailleurs on voit bien dans ton post que malgré les warning de droits, l'application voit et déclare bien les deux services watch.sh et wg-ui.sh qui se trouvent dans ces répertoires.
Par contre, je viens de me rendre compte d'une chose sur mon installation, c'est que pour la déclaration du PGID dans le docker-compose.yaml, j'ai utilisé l'ID du groupe "administrators" et non pas l'ID du groupe "users" retourné par la commande id
Ce qui me donne:
environment: - PUID=1026 - PGID=101
Je pense que cela pourrait régler ton problème de problème de "no client conf found"
0 -
Le 01/07/2023 à 15:25, MilesTEG1 a dit :
Je suis en train de suivre ton tuto, et je viens de percuter que le wireguard-ui n'est pas un conteneur, mais un binaire.
Pourquoi ne pas avoir choisi un conteneur pour ça ?Bonjour MilesTE1, j'ai expliqué en tout début du point 3. pourquoi ce choix : "Le fait d'inclure le binaire wireguard-ui dans linuxserver/docker-wireguard permet entre autre de voir aussi facilement les peers connectés et leurs stats.". Je n'ai pas réussi à avoir les stats en me servant d'un containeur wireguard-ui et d'un containeur wireguard séparés.
Il y a 10 heures, MilesTEG1 a dit :[NET] peer(asdazda...zdazd) - Sending handshake initiation [NET] peer(asdazda...zdazd) - Handshake did not complete after 5 seconds, retying (try 2) ...
Si je me souviens bien, cela ressemble à un problème d'ouverture de flux entre ton client IOS et ton containeur wireguard.
As-tu bien ouvert le bon port externe sur ta box pour le rediriger vers le bon port de ton synology et ce port est-il bien mappé dans ton docker-compose ?
En se basant sur mon fichier docker-compose.yaml fourni dans ce tuto, il faut forwarder le port externe 51820 vers le l'adresse interne du nas sur le port 51820 en UDP .Et bien sûr s'assurer que ce même port 51820/UDP est bien ouvert aussi sur ton syno si tu as activé le firewall
0 -
Juste pour vous dire que j'ai "résolu" mon problème d'utilisation de l'interface virtuelle ...
Bon j'ai bien mis résolu entre parenthèses, car je l'ai enlevé pour ne pas perturber ce pauvre DSM, et j'ai trouvé que je pouvais configurer les DNS WAN de mon routeur pour utiliser un DNS interne ... du coup sur mon réseau c'est bien mon routeur qui fait serveur DNS (distribué par le DHCP), il utilise mon AdGuardHome du syno en docker avec macvlan.
Et plus de souci de syno qui ne sait pas interroger adguard en docker avec macvlan sans interface virtuelle puisqu'il interroge le routeur.
0 -
Il y a 18 heures, Mic13710 a dit :
A partir du centre de paquets, bouton installation manuelle. Il faut le charger mais ne pas le lancer car il faut d'abord faire le paramétrage.
Et il me semble par ailleurs que pour 7.2 il faille redémarrer le NAS pour que le spk soit acté.
Effectivement, c'est bien ce qui est indiqué dans le tuto que j'avais mis comme lien dans le mien: https://www.blackvoid.club/wireguard-spk-for-your-synology-nas/
Citation⚠️ SPKs for DSM 7.2
NOTE: Make sure to uncheck the option to run the package after installation. You will run the package via SSH after the installation is complete.
NOTE: If you are on DSM 7.2 be sure to reboot the NAS before running the startup script!
Next, jump back to the SSH prompt as root and run the following command to start the package: /var/packages/WireGuard/scripts/start.0 -
ben c'est bien ce qui me faisait peur, même en DSM7.2, Synology est resté sur un kernel 4.4
Donc on n'est pas prêt d'avoir les modules wireguard inclus directement dans le kernel 5.6 sur Syno 🙂
En tout cas voilà en pièce jointe le paquet pour DS220+ en DSM 7.2 uniquement que j'ai compilé hier.
1 -
ca donne envie d'essayer ... mais bon ... je suis toujours réticent aux grosses update de synology ...
0 -
il y a 27 minutes, CyberFr a dit :
Tu me fais faire des choses dangereuses 😀 Je suis franchement déçu qu'un NAS de 2020 soit considéré comme obsolète, ils sont gonflés les développeurs de Wireguard.
Sur notre"vieux" DS220+ comme tu dis:
root@monnas:~# uname -a Linux monnas 4.4.180+ #42962 SMP Mon May 29 14:37:50 CST 2023 x86_64 GNU/Linux synology_geminilake_220+
Sur le site de wireguard (https://git.zx2c4.com/wireguard-linux-compat/about/ ) :
CitationBackports of the WireGuard kernel module for Linux to 3.10 ≤ kernel ≤ 5.5.y
WireGuard was merged into the Linux kernel for 5.6. This repository contains a backport of WireGuard for kernels 3.10 to 5.5, as an out of tree module.
Donc pas le choix, faut installer le backport, c'est ce que fait le paquet que je t'ai donné et qui vient de là:
github https://github.com/vegardit/synology-wireguard et https://github.com/runfalk/synology-wireguard
il y a 5 minutes, CyberFr a dit :Ah zut, je suis sous DSM 7.2.
tu peux me donner la sortie de la commande commande uname -a sur ton DS220+ en DSM 7.2 stp ?
Je te compile la version pour DSM7.2 si tu ne préfère pas prendre celui dispo ici :https://www.blackvoid.club/wireguard-spk-for-your-synology-nas/
0 -
il y a 4 minutes, CyberFr a dit :
Volontiers. Il remplacerait l'image actuelle ? Merci en tout cas.
Non pas du tout, c'est un paquet qui permet d'inclure dans le kernel de ton syno les modules afin de supporter wireguard et de ne plus avoir l'erreur au démarrage de ton container docker.
Voici le paquet pour DS220+ en DSM 7.1 uniquement
0 -
il y a 4 minutes, CyberFr a dit :
Il est trop vieux mon DS220+
je peux te donner le paquet synology-wireguard (1.0.20220627) dont je parlais dans mon tuto en cas d'erreur wireguard module non actif ... je l'ai compilé et installé sur mon DS220+ pour faire ce tuto justement 🙂
1 -
@CyberFr je te 'accorde, je n'ai pas été très clair concernant cette partie du compose. J'y suis allé en tâtonnant pour le coup, et il faudrait
Première chose à comprendre: les variables qui commencent par "WGUI_" servent à remplir la configuration par défaut de l'interface web (wireguard-ui), les autres permettent de configurer le serveur wireguard lui-même, donc tu retrouveras des valeurs écrites deux fois souvant (une pour définir le serveur, l'autre pour définir la valeur par défaut dans le web)
Reprenons cette partie du compose pour essayer de l'expliquer (j'ai enlevé ce qui était vraiment optionnel et qui n'avait pas d’intérêt dans notre cas):
- SERVERURL=<monnas.synology.me> # A REMPLACER - SERVERPORT=51820 - PEERDNS=192.168.1.1 - INTERNAL_SUBNET=10.13.13.0 - ALLOWEDIPS=192.168.1.0/24, 10.13.13.0/24 # exemple donnant accès uniquement au lan local au travers du VPN, pour faire passer tout traffic mettre 0.0.0.0/0 - LOG_CONFS=false # Affiche ou non le QR codes généré dans la log docker # pour wg-ui - SESSION_SECRET=<une chaine aléatoirement> # A REMPLACER - WGUI_USERNAME=<le compte admin> # A REMPLACER - WGUI_PASSWORD=<le mot de passe admin> # A REMPLACER - WGUI_ENDPOINT_ADDRESS=<monnas.synology.me> # A REMPLACER - WGUI_DNS=192.168.1.1 - WGUI_SERVER_INTERFACE_ADDRESSES=10.13.13.0/24 - WGUI_SERVER_LISTEN_PORT=51820 - WGUI_DEFAULT_CLIENT_ALLOWED_IPS=192.168.1.0/24, 10.13.13.0/24 # exemple donnant accès uniquement au lan local au travers du VPN, pour faire passer tout traffic mettre 0.0.0.0/0 - 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
- SERVERURL et WGUI_ENDPOINT_ADDRESS: doivent contenir le nom qui sera utilisé par les clients pour se connecter (on mets le nom fourni par DDNS si pas d'ip fixe sur la box). Ex: monnas.synology.me
- SERVERPORT et WGUI_SERVER_LISTEN_PORT: contiennent la valeur du port UDP définie dans la partie serveur (en écoute) et dans la configuration du client
- PEERDNS et WGUI_DNS: contiennent l'IP du serveur DNS qui sera envoyé aux clients pour qu'ils l'utilisent (dans notre cas, il s'agit de l'ip de la box 192.168.1.1 afin de pouvoir résoudre mes noms internes)
- INTERNAL_SUBNET et WGUI_SERVER_INTERFACE_ADDRESSES: contiennent la définition du réseau qu'utilisera Wireguard, la variable est optionnelle si tu ne veux pas la spécifier car elle est mise par défaut à 10.13.13.0/24
- ALLOWEDIPS et WGUI_DEFAULT_CLIENT_ALLOWED_IPS: contiennent la liste des réseaux qui seront routés depuis le clients vers le serveur, donc notre cas le réseau interne de wireguard bien sûr mais aussi le réseau local 192.168.1.0/24. Cela permet un accès aux machines du Lan local, mais le reste du traffic (internet) ne sera pas envoyé dans le VPN depuis le client. Si l'on veut que tout le traffic du client passe par le VPN, il suffit de mettre à la place "0.0.0.0/0"
- LOG_CONFS: Affiche ou non le QR codes généré dans la log docker, dans notre cas, on aura les QR codes dans l'interface web, donc j'ai mis à false
- WGUI_SERVER_POST_UP_SCRIPT et WGUI_SERVER_POST_DOWN_SCRIPT: règles iptables nécessaires pour le bon fonctionnement du serveur wireguard (trouvé dans plusieurs autres tutos)
Je vais mettre ces explications dans le tuto aussi 😉
2 -
Il y a 2 heures, Michel91 a dit :
User UID: 1027
User GID: 100
───────────────────────────────────────
Uname info: Linux ab6becf6df52 4.4.302+ #64561 SMP Fri May 19 01:25:55 CST 2023 x86_64 GNU/Linux
RTNETLINK answers: Not supported
**** The wireguard module is not active. If you believe that your kernel should have wireguard support already, make sure that it is activated via modprobe! ****
**** If you have an old kernel without wireguard support built-in, you can try using the legacy tag for this image to compile the modules from scratch. ****
Dis moi, juste comme ça @Michel91 .. cette erreur ne ressemblerait-elle pas justement à l'erreur que j'ai décrite dans mon tuto ? 🙂
CitationSi vous avez l'erreur suivante, cela veut dire que votre version de kernel n'inclue pas les modules nécessaires, vous devez alors installer ces modules manuellement.
RTNETLINK answers: Not supported **** The wireguard module is not active. If you believe that your kernel should have wireguard support already, make sure that it is activated via modprobe! **** **** If you have an old kernel without wireguard support built-in, you can try using the legacy tag for this image to compile the modules from scratch. ****
Vous pouvez vous appuyer sur ce tuto https://www.blackvoid.club/wireguard-spk-for-your-synology-nas/ ou les projets github suivants:
https://github.com/vegardit/synology-wireguard
https://github.com/runfalk/synology-wireguard (avec patch https://github.com/runfalk/synology-wireguard/issues/154#issuecomment-1169393940 pour DSM7.1)
Ton nas n'inclue pas encore wireguard dans le kernel et tu dois en passer par la phase installation du paquet wireguard.spk pour ajouter les modules wiregaurd.
il y a 53 minutes, CyberFr a dit :As-tu corrigé le tuto en conséquence ?
@CyberFr oui comme je l'avais indiqué dans la réponse que je t'ai faite
0 -
Il y a 7 heures, CyberFr a dit :
@loli71, je viens d'essayer et j'ai de nouveau droit à l'erreur 404.
oups ... désolé @CyberFr ... j'avais corrigé seulement les dernières lignes (qui parle de la mise à jours automatique), mais j'avais oublié de corriger les lignes qui permettent de récupérer le binaire au tout début du tuto....
Correction faite maintenant et je remets ici les lignes à utiliser:
export VERSION=v0.5.1 # Changer la version pour pointer sur la dernière export ARCHI=linux-amd64 # Changer architecture si besoin cd /tmp/ wget https://github.com/ngoduykhanh/wireguard-ui/releases/download/${VERSION}/wireguard-ui-${VERSION}-${ARCHI}.tar.gz tar -zxf wireguard-ui-${VERSION}-${ARCHI}.tar.gz mv wireguard-ui /volume1/docker/wireguard/wireguard-ui/wg-ui rm -f wireguard-ui-${VERSION}-${ARCHI}.tar.gz
Il y a 4 heures, MilesTEG1 a dit :La ligne de commande reste nécessaire pour faire ce que tu veux faire , moi j’apporte juste une unification des commandes au sein d’un script car je n’aime pas taper les commandes les unes à la suite des autres 😜
Le script de mise à jours automatique pourra être rajouté au scheduleur du DSM effectivement, mais il n'est aucunement obligatoire de passer par du ssh pour déployer la solution si la personne ne le souhaite pas (File station pur créer les dossiers et déposer le binaire de wireguard-ui récupéré et décompressé sur un pc, editeur de texte du DSM pour les fichiers et portainer pour le docker-compose)
C'est pour cette raison que je pars du principe que tous les répertoires nécessaires sont créés en dehors du script 😉
Il y a 1 heure, Michel91 a dit :J'essaie en vain de faire fonctionner le stack de portainer il me crée bien le container wireguard mais rien pour wireguard-ui, le répertoire db reste vide et je n'ai aucun message d'erreur dans portainer.
Une idée sur ce problème?
J'ai vérifié mes points de montage ils ont l'air bons enfin jusqu'aux doubles points.
Tu as quoi dans les logs du container dans portainer ?
1 -
il y a une heure, MilesTEG1 a dit :
Pourtant, dans tes commandes, c'est pas /tmp que tu utilises :
Je viens de corriger dans mon tuto, c'est une erreur de typo 😉
@CyberFr tu peux continuer sans problème je pense, mise à part peut être des erreurs de typo ou oubli que je corrige à fur et à mesure de vos retour 🙂
Le script de MilesTEG1 sera un plus pour ceux qui préfèrent utiliser le ssh plutôt que de tout faire en Web depuis le DSM et portainer.
Et le script de mise à jours automatique de la version de wireguard-ui sera facile à ajouter ensuite si tu le souhaites.
0 -
@CyberFr@Michel91: effectivement il y avait une petite erreur dans la définition des deux variables pour coller au lien de téléchargement réel sur le github.
En utilisant les valeurs ci-dessous, cela fonctionne correctement chez moi avec mes commandes, j'ai mis à jour le Tuto aussi:
Citationexport VERSION=v0.5.1 # Changer la version pour pointer sur la dernière
export ARCHI=linux-amd64 # Changer architecture si besoin@MilesTEG1 merci beaucoup pour le script que je n'avais pas encore eu le courage de faire 😉 Tu pourras mettre à jours pour utiliser les bonnes valeurs sinon ton wget retournera un 404 exactement comme mes commandes lol
Par contre, ton script va créer un répertoire "tmp/" là où ils sera appelé, pour ma part j'avais utilisé le "/tmp" existant dans tous bon linux pour ne pas avoir à gérer cela.
En plus tu créés le répertoire /${docker_volume}/docker/${nom_conteneur} s'il n'existe pas, mais normalement il doit être créé au début du tuto avec d'autres répertoires obligatoires :
A la rigueur si tu préfères gérer la création des répertoires en ssh, utilise plutôt cette ligne qui fera tout en un seul coup:
mkdir -p /${docker_volume}/docker/${nom_conteneur}/{config,custom-files/{custom-cont-init.d,custom-services.d},wireguard-ui,db}
1 -
Il y a 3 heures, CyberFr a dit :
Il y a un os dans le caviar lors de la récupération des binaires :
root@DS220:/tmp# wget https://github.com/ngoduykhanh/wireguard-ui/releases/download/${VERSION}/wireguard-ui-${VERSION}-${ARCHI}.tar.gz
--2023-06-12 13:32:39-- https://github.com/ngoduykhanh/wireguard-ui/releases/download//wireguard-ui--.tar.gz
Resolving github.com... 140.82.121.4@CyberFr Tu as dû oublié de mettre les deux premières lignes qui définissent la version et l'architecture avant de lancer la commande de récupération du binaire.. j'avais renseigné ceux que j'ai utilisé pour l'exemple et je pense que l'archi sera la même pour tout le monde pour le docker :
export VERSION=0.5.1 # Changer la version pour pointer sur la dernière export ARCHI=amd64 # Changer architecture si besoin
0 -
Je viens de publier mon [TUTO][Docker] linuxserver/wireguard + Wireguard-UI, reste plus qu'à attendre l'approbation des admin pour que vous puissiez me faire votre retour.
0 -
1. Préambule
Ce tutoriel a pour but d'installer un serveur VPN wireguard en docker incluant wireguard-ui pour faciliter l'administration du serveur et des clients.
WireGuard est un protocole de communication et un logiciel libre et open source permettant de créer un réseau privé virtuel. Il est conçu avec les objectifs de facilité d'utilisation, de performances et de surface d'attaque basse.2. Prérequis
Avoir un NAS compatible Docker, voir la liste ici https://www.synology.com/fr-fr/dsm/packages/Docker.
Savoir se connecter au NAS via SSH en root : https://www.nas-forum.com/forum/topic/57289-tuto-accès-ssh-et-root-via-dsm-6-et-7/
Utiliser Docker-compose ou portainer
3. Principe
Dans ce tuto, j'utilise l'image docker linuxserver/docker-wireguard qui est maintenu à jour régulièrement ainsi que wireguard-ui (https://github.com/ngoduykhanh/wireguard-ui). Le fait d'inclure le binaire wireguard-ui dans linuxserver/docker-wireguard permet entre autre de voir aussi facilement les peers connectés et leurs stats.Sources:
https://hub.docker.com/r/linuxserver/wireguard
https://docs.linuxserver.io/images/docker-wireguard
https://github.com/ngoduykhanh/wireguard-ui4. Mise en place
Dans ce tuto j'utilise les informations suivantes, qui seront à adapter selon votre réseau et vos besoins (surtout dans le fichier docker-compose.yaml):
Réseau LAN local: 192.168.1.0/24 Serveur DNS dans mon réseau Lan local (ma box): 192.168.1.1 qui permet la résolution entre autre des noms internes Réseau interne de Wireguard: 10.13.13.0/24
ATTENTION:
Dans ce tuto, la configuration mise en place permet d'accéder au lan local depuis les clients, mais le reste du traffic internet ne passera pas par ce VPN.
Pour faire passer l'ensemble du traffic d'un client par le VPN, utiliser "0.0.0.0/0" comme valeur dans le docker-compose pour les variables ALLOWEDIPS et WGUI_DEFAULT_CLIENT_ALLOWED_IPS4.1 Création des répertoires:
Il faut créer les répertoires suivants dans le dossier partagé docker:wireguard/ ├── config ├── custom-files │ ├── custom-cont-init.d │ └── custom-services.d ├── db └── wireguard-ui
Vous pouvez utiliser File Station pour cela, le résultat doit être le suivant:
4.2 Création des fichiers:
Il faut ensuite créer les fichiers suivants, soit en utilisant l'éditeur de texte du DSM soit en ssh avec vim
wireguard/custom-files/custom-cont-init.d/init.sh:
#!/usr/bin/with-contenv bash echo "**** installing inotify-tools ****" apk update && apk add inotify-tools
wireguard/custom-files/custom-cont-init.d/install_wg-ui.sh:
#!/usr/bin/with-contenv bash echo "**** installing wg-ui ****" cp /wireguard-ui/wg-ui /app/wg-ui chmod 755 /app/wg-ui if [ -r /wireguard-ui/wg_template.conf ]; then cp /wireguard-ui/wg_template.conf /wg_template.conf fi
wireguard/custom-files/custom-services.d/watch.sh:#!/usr/bin/with-contenv bash while inotifywait -e modify -e create /config/wg0.conf; do wg-quick down wg0 wg-quick up wg0 done
wireguard/custom-files/custom-services.d/wg-ui.sh:#!/usr/bin/with-contenv bash if netstat -apn | grep -q ":5000 "; then echo "Another service is using port 5000, disabling wg-ui" sleep infinity else echo $ENV echo "start wg-ui" exec \ cd /app \ ./wg-ui fi
wireguard-ui/wg-ui (binaire):
Récupérer la dernière version de l'exécutable pour l'archi correspondante à votre synology sur https://github.com/ngoduykhanh/wireguard-ui/releases décompressez la, et déposez l'exécutable wireguard-ui sous le nom wireguard-ui/wg-ui
Exemple en ssh:export VERSION=v0.5.1 # Changer la version pour pointer sur la dernière export ARCHI=linux-amd64 # Changer architecture si besoin cd /tmp/ wget https://github.com/ngoduykhanh/wireguard-ui/releases/download/${VERSION}/wireguard-ui-${VERSION}-${ARCHI}.tar.gz tar -zxf wireguard-ui-${VERSION}-${ARCHI}.tar.gz mv wireguard-ui /volume1/docker/wireguard/wireguard-ui/wg-ui rm -f wireguard-ui-${VERSION}-${ARCHI}.tar.gz
OPTIONNEL: Si vous souhaitez fournir votre propre template wireguard-ui, vous pouvez partir du fichier ci dessous:
wireguard/wireguard-ui/wg_template.conf:# This file was generated using wireguard-ui (https://github.com/ngoduykhanh/wireguard-ui) # Please don't modify it manually, otherwise your change might get replaced. # Address updated at: {{ .serverConfig.Interface.UpdatedAt }} # Private Key updated at: {{ .serverConfig.KeyPair.UpdatedAt }} [Interface] Address = {{$first :=true}}{{range .serverConfig.Interface.Addresses }}{{if $first}}{{$first = false}}{{else}},{{end}}{{.}}{{end}} ListenPort = {{ .serverConfig.Interface.ListenPort }} PrivateKey = {{ .serverConfig.KeyPair.PrivateKey }} {{if .globalSettings.MTU}}MTU = {{ .globalSettings.MTU }}{{end}} PostUp = {{ .serverConfig.Interface.PostUp }} PostDown = {{ .serverConfig.Interface.PostDown }} {{range .clientDataList}}{{if eq .Client.Enabled true}} # ID: {{ .Client.ID }} # Name: {{ .Client.Name }} # Email: {{ .Client.Email }} # Created at: {{ .Client.CreatedAt }} # Update at: {{ .Client.UpdatedAt }} [Peer] PublicKey = {{ .Client.PublicKey }} {{if .Client.PresharedKey }}PresharedKey = {{ .Client.PresharedKey }} {{end}}AllowedIPs = {{$first :=true}}{{range .Client.AllocatedIPs }}{{if $first}}{{$first = false}}{{else}},{{end}}{{.}}{{end}}{{range .Client.ExtraAllowedIPs }},{{.}}{{end}} {{end}}{{end}}
Vous devez obtenir le résultat suivant dans votre répertoire partagé docker:wireguard/ ├── config/ ├── custom-files/ │ ├── custom-cont-init.d/ │ │ ├── init.sh │ │ └── install_wg-ui.sh │ └── custom-services.d/ │ ├── watch.sh │ └── wg-ui.sh ├── db/ └── wireguard-ui1/ ├── wg_template.conf # optionnel └── wg-ui
7. Création du conteneur
Récupérez le PUID/PGID à utiliser en vous connectant en ssh et tapez dans la console "id", on prendra alors note du uid/gid retourné.ATTENTION: il semblerait qu'il soit nécessaire d'utiliser le gid retourné pour le groupe "administrators" au lieu de celui retourné pour le groupe "users" dans la commande "id"
docker-compose.yaml:
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 environment: - PUID=1026 - PGID=101 - TZ=Europe/Paris # pour wireguard partie serveur: - SERVERURL=<monnas.synology.me> # A REMPLACER - SERVERPORT=51820 - PEERDNS=192.168.1.1 - INTERNAL_SUBNET=10.13.13.0 - ALLOWEDIPS=192.168.1.0/24, 10.13.13.0/24 # exemple donnant accès uniquement au lan local au travers du VPN, pour faire passer tout traffic mettre 0.0.0.0/0 - LOG_CONFS=false # Affiche ou non le QR codes généré dans la log docker # pour la partie wireguard-ui: - SESSION_SECRET=<une chaine aléatoirement> # A REMPLACER - WGUI_USERNAME=<le compte admin> # A REMPLACER - WGUI_PASSWORD=<le mot de passe admin> # A REMPLACER - WGUI_ENDPOINT_ADDRESS=<monnas.synology.me> # A REMPLACER - WGUI_DNS=192.168.1.1 - WGUI_SERVER_INTERFACE_ADDRESSES=10.13.13.0/24 - WGUI_SERVER_LISTEN_PORT=51820 - WGUI_DEFAULT_CLIENT_ALLOWED_IPS=192.168.1.0/24, 10.13.13.0/24 # exemple donnant accès uniquement au lan local au travers du VPN, pour faire passer tout traffic mettre 0.0.0.0/0 - 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 volumes: - /lib/modules:/lib/modules - /volume1/docker/wireguard/config:/config - /volume1/docker/wireguard/custom-files/custom-cont-init.d:/custom-cont-init.d:ro - /volume1/docker/wireguard/custom-files/custom-services.d:/custom-services.d:ro # pour wg-ui - /volume1/docker/wireguard/db:/app/db - /volume1/docker/wireguard/wireguard-ui:/wireguard-ui:ro ports: - 63710:51820/udp - 51821:5000/tcp restart: always
ATTENTION: pensez bien à:
- Modifier les points de montage pour qu'ils correspondent bien au chemin sur votre synology
- Mettre vos propres valeurs lorsqu'il est indiqué en commentaire # A REMPLACER.
Remarque:
Les variables dans ce fichier semblent être déclarées en double, mais la première partie permet de configurer wireguard, et la deuxième partie (après pour wg-ui) permet de déclarer les valeurs par défaut utilisées dans l'interface Web.
Explication des valeurs:
- SERVERURL et WGUI_ENDPOINT_ADDRESS: doivent contenir le nom qui sera utilisé par les clients pour se connecter (on mets le nom fourni par DDNS si pas d'ip fixe sur la box). Ex: monnas.synology.me
- SERVERPORT et WGUI_SERVER_LISTEN_PORT: contiennent la valeur du port UDP définie dans la partie serveur (en écoute) et dans la configuration du client
- PEERDNS et WGUI_DNS: contiennent l'IP du serveur DNS qui sera envoyé aux clients pour qu'ils l'utilisent (dans notre cas, il s'agit de l'ip de la box 192.168.1.1 afin de pouvoir résoudre mes noms internes)
- INTERNAL_SUBNET et WGUI_SERVER_INTERFACE_ADDRESSES: contiennent la définition du réseau qu'utilisera Wireguard, la variable est optionnelle si tu ne veux pas la spécifier car elle est mise par défaut à 10.13.13.0/24
-
ALLOWEDIPS et WGUI_DEFAULT_CLIENT_ALLOWED_IPS: contiennent la liste des réseaux qui seront routés depuis le clients vers le serveur, dans notre cas le réseau interne de wireguard bien sûr mais aussi le LAN local 192.168.1.0/24.
- Cela permet un accès aux machines du Lan local, mais le reste du traffic (internet) ne sera pas envoyé dans le VPN depuis le client.
- Si vous souhaitez que tout le traffic des clients passe par le VPN, il suffit de mettre à la place "0.0.0.0/0" dans ces champs à la place.
- LOG_CONFS: Affiche ou non le QR codes généré dans la log docker, dans notre cas, on aura les QR codes dans l'interface web, donc j'ai mis à false
- WGUI_SERVER_POST_UP_SCRIPT et WGUI_SERVER_POST_DOWN_SCRIPT: règles iptables nécessaires pour le bon fonctionnement du serveur wireguard (trouvé dans plusieurs autres tutos)
7.1 Via portainerCréer une nouvelle stack en utilisant le fichier docker-compose.yaml ci-dessus.
Déployez le stack.
7.2 Via ssh
Créez le fichier wireguard/docker-compose.yaml avec les informations ci-dessus.
Pour créer le conteneur, connectez vous en ssh et passer les commandes suivantes en tant que root:cd /volume1/docker/wireguard docker-compose pull
Ce qui va télécharger la dernière version de l'image.
Puis :docker-compose up -d
Si pas d'erreur à la création (souvent dues à des caractères de tabulation, une directive dans le fichier docker-compose mal orthographiée ou désalignée, etc...), vous verrez un petit done apparaître en vert.
Si vous avez l'erreur suivante, cela veut dire que votre version de kernel n'inclue pas les modules nécessaires, vous devez alors installer ces modules manuellement.
RTNETLINK answers: Not supported **** The wireguard module is not active. If you believe that your kernel should have wireguard support already, make sure that it is activated via modprobe! **** **** If you have an old kernel without wireguard support built-in, you can try using the legacy tag for this image to compile the modules from scratch. ****
Vous pouvez vous appuyer sur ce tuto https://www.blackvoid.club/wireguard-spk-for-your-synology-nas/ ou les projets github suivants:
https://github.com/vegardit/synology-wireguard
https://github.com/runfalk/synology-wireguard (avec patch https://github.com/runfalk/synology-wireguard/issues/154#issuecomment-1169393940 pour DSM7.1)
8. Accès au Web-ui
Vous pourrez désormés accéder au Web-UI par l'url http://<ip de votre syno:51821/
Vous pouvez bien évidement ajouter une entrée dans le proxy inversé du DSM pour les accés en https avec un nom de domaine.REMARQUE:
Si vous avez mis un autre port que le 51820 dans le fichier docker-compse.yaml pour la config du serveur et web-ui, il est nécessaire de sauvegarder et d'appliquer la configuration une première fois avant toute opération afin de modifier le fichier wg0.conf et de redémarre le serveur pour sa prose en compte.
8.1 Forward de port:
Il vous faudra aussi mettre en place le forward de port sur votre box/routeur interne pour permettre l'accès à votre serveur wireguard.
En se basant sur le fichier docker-compose.yaml fourni dans ce tuto, il vous faudra forwarder le port externe 51820 vers le l'adresse interne de votre nas sur le port 51820 en UDP
Voici un exemple de mise en place sur un routeur Asus:
9. Mise à jour:
9.1 Mise à jour manuelle facile de wireguard-ui:Vous pouvez utiliser le script suivant pour mettre à jours facilement la version de wireguard-ui sans avoir à relancer le container docker:
Connectez vous en ssh, puis en tant que root passez les commandes suivantes en prenant soin de bien renseigner les variable VERSION et ARCHI correspondant à vos besoins:
export VERSION=v0.5.1 # Changer la version pour pointer sur la dernière export ARCHI=linux-amd64 # Changer architecture si besoin cd /tmp/ wget https://github.com/ngoduykhanh/wireguard-ui/releases/download/${VERSION}/wireguard-ui-${VERSION}-${ARCHI}.tar.gz tar -zxf wireguard-ui-${VERSION}-${ARCHI}.tar.gz # sauvegarde la version en place au cas où cp -f /volume1/docker/wireguard/wireguard-ui/wg-ui /volume1/docker/wireguard/wireguard-ui/wg-ui.sov mv wireguard-ui /volume1/docker/wireguard/wireguard-ui/wg-ui rm -f wireguard-ui-${VERSION}-${ARCHI}.tar.gz cat <<EOF | docker exec --interactive wireguard bash s6-rc stop custom-svc-wg-ui.sh cp -f /wireguard-ui/wg-ui /app/wg-ui s6-rc start custom-svc-wg-ui.sh EOF
9.2 Mise à jour automatique:
L'image docker linuxserver/wireguard peut être mise à jour automatiquement grace à watchtower.Pour wireguard-ui, on peut imaginer un script bash appelé en crontab qui ferait les actions suivantes:
- Vérification de la présence d'une nouvelle version sur le github
- Téléchargement de la version correspondant au synology
- Décompression du binaire et dépose dans le répertoire dédié
- Copie du binaire dans le docker au bon endroit et redémarrage du service associéPS: je suis en train de bosser sur ce fameux script de mise à jour de wireguard-ui
Les pistes:
Utilisation de l'api suivante pour détecter une nouvelle version .. mais comment la comparer à la version installée .. à creuser 😉
https://api.github.com/repos/ngoduykhanh/wireguard-ui/releases/latest0 -
Il y a 2 heures, Michel91 a dit :
Bonjour,
J'ai installé linuxserver/Wireguard:lastest sur container manager, le conteneur semble fonctionner en tout cas il est en vert dans container manager. Mon problème est de créer des clients pour utiliser wireguard quelqu'un pourrait me donner un coup de pouce?
Merci d'avance
Il te faut un wireguard-ui pour faciliter la gestion du serveur et des clients
https://github.com/ngoduykhanh/wireguard-ui/releases
Je vais essayer de faire un petit tuto pour l'installation de wireguard et wireguard-ui dans linuxserver/Wireguard vu que c'est exactement ce que j'utilise chez moi.
En gros, ca donne cela en résultat:
4 -
Il y a 2 heures, MilesTEG1 a dit :
Si par "gérer" tu entends placer une réservation dans le serveur DHCP, c'est pas trop gênant, tu le fais une fois ^^
Mais s'il faut lancer cette commande régulièrement, ça va devenir pénible en effet 🙂oui heureusement que ce n'est qu'une fois 😄
il y a une heure, Jeff777 a dit :Sauf que depuiis j'ai redémarré le NAS pour voir et tout c'est bien passé.... ça a l'air résilient.
Cela vient peut être bien de ce que je viens de constater comme changement avant et après le passage de la commande "synonet --dhcp macvl0" en partant de 0. Du coup ta config d'interface est déclarée comme en DHCP, même après un reboot....
Avant:
cat /etc/sysconfig/network-scripts/ifcfg-macvl0 BOOTPROTO=static
Après:
cat /etc/sysconfig/network-scripts/ifcfg-macvl0 DEVICE=macvl0 BOOTPROTO=dhcp ONBOOT=yes
Donc essai suivant:
pas de commande "synonet --dhcp macvl0" dans mon script de démarrage, mais par contre édition du fichier /etc/sysconfig/network-scripts/ifcfg-macvl0 pour y mettre les lignes suivantes:
DEVICE=macvl0 BOOTPROTO=static ONBOOT=yes IPV6INIT=off IPV6_ACCEPT_RA=1 IPADDR=192.168.1.175 NETMASK=255.255.255.255
root@Nas:/etc/sysconfig/network-scripts# synonet --show System network interface list: Host Name: Nas Network interface: eth0 Manual IP IP: 192.168.1.99 Mask: 255.255.255.0 Gateway: 192.168.1.1 DNS: 192.168.1.161 MTU Setting: 1500 1000, full duplex, active mtu 1500 RX bytes: 176839631 TX bytes: 22958632 Host Name: Nas Network interface: eth1 DHCP IP: 169.254.95.125 Mask: 255.255.0.0 Gateway: 192.168.1.1 DNS: 192.168.1.161 MTU Setting: 1500 65535, unknown duplex, active mtu 1500 RX bytes: 0 TX bytes: 0 Host Name: Nas Network interface: macvl0 Manual IP IP: 192.168.1.175 Mask: 255.255.255.255 Gateway: 192.168.1.1 DNS: 192.168.1.161 MTU Setting: 1500 1000, full duplex, active mtu 1500 RX bytes: 110510 TX bytes: 23552
et hop, plus de réservation dans le DHCP nécessaire, reste le test ultime du reboot ...
Résultat:
On a bien une commande synonet --show qui répond correctement, et une conf du serveur VPN qui fonctionne correctement.
PS: et comme rien n'est jamais parfait en ce bas monde... je viens de constater que certaines autres parties du DSM ne s'affichent pas correctement avec l'interface virtuelle créée (idem si on utilise la commande synonet --dhcp macvl0)
Panneau de configuration > centre d'infos > Réseau: vide
Widgets > Santé du système : vide
0 -
Du coup, voici ce que j'ai fait pour normalement ne plus avoir de souci de config du serveur VPN tout en gardant mon réseaux macvlan et mon interface virtuelle macvl0 qui permet au synology d'accéder à tout ce qui est dans e réseau macvlan:
- Suppression de l'ancienne interface virtuelle
root@Nas:# mv /etc/sysconfig/network-scripts/ifcfg-macvl0 /root ip link del macvl0 synonet --show root@Nas:# synonet --show System network interface list: Host Name: Nas Network interface: eth0 Manual IP IP: 192.168.1.99 Mask: 255.255.255.0 Gateway: 192.168.1.1 DNS: 127.0.0.1 MTU Setting: 1500 1000, full duplex, active mtu 1500 RX bytes: 449968698070 TX bytes: 10520784211 Host Name: Nas Network interface: eth1 DHCP IP: 169.254.95.125 Mask: 255.255.0.0 Gateway: 192.168.1.1 DNS: 127.0.0.1 MTU Setting: 1500 65535, unknown duplex, active mtu 1500 RX bytes: 0 TX bytes: 0
- Modification du script de création de l'interface virtuelle macvl0 (celui qui est appelé au démarrage du syno) pour ajouter à la fin du script la ligne suivante:
#!/bin/bash sleep 60 # Creation de l interface macvlan sur l hote ip link add macvl0 link eth0 type macvlan mode bridge ip addr add 192.168.1.175/32 dev macvl0 ip link set dev macvl0 address 5E:00:01:02:03:45 ip link set macvl0 up ip route add 192.168.1.160/28 dev macvl0 synonet --dhcp macvl0 # permet de régler le problème d'interface mal reconnue par la commande synonet et donc d'éviter le bug dans le serveur VPN
- Ajout dans mon DHCP la réservation d'IP correspondant à la MAC (5E:00:01:02:03:45) et l'IP (192.168.1.175) se trouvant dans ce même script de création de l'interface virtuelle
- Redémarrage du Synology
Et voilà, tout fonctionne ... j'ai bien mon macvlan, mon interface virtuelle macvl0 (donc mon syno peut profiter à nouveau de adguardhome qu'il héberge dans le réseau macvlan) et la config du serveur VPN est opérationnelle !!
root@Nas:/etc/sysconfig/network-scripts# synonet --show System network interface list: Host Name: Nas Network interface: eth0 Manual IP IP: 192.168.1.99 Mask: 255.255.255.0 Gateway: 192.168.1.1 DNS: 127.0.0.1 MTU Setting: 1500 1000, full duplex, active mtu 1500 RX bytes: 449973346355 TX bytes: 10524904207 Host Name: Nas Network interface: eth1 DHCP IP: 169.254.95.125 Mask: 255.255.0.0 Gateway: 192.168.1.1 DNS: 127.0.0.1 MTU Setting: 1500 65535, unknown duplex, active mtu 1500 RX bytes: 0 TX bytes: 0 Host Name: Nas Network interface: macvl0 DHCP IP: 192.168.1.175 Mask: 255.255.255.0 Gateway: 192.168.1.1 DNS: 127.0.0.1 MTU Setting: 1500 1000, full duplex, active mtu 1500 RX bytes: 524201 TX bytes: 20004
PS: je vais essayer de trouver ce qui se passe avec la commande synonet --dhcp qui permet de mettre l'interface virtuelle dans une configuration convenable pour le syno, car je préfèrerai quand même ne pas avoir à gérer le DHCP pour cette interface virtuelle...
1 -
Euh, là je suis perdu @Jeff777, en gros tu nous dis que tu as tout désinstallé, redémarré, tout réinstallé comme avant (sauf que la création de l'interface virtuelle n'est pas planifiée dans la cron du syno) et que tout marche ?
et tu as essayé de redémarrer le syno après toute cela (avec le création de l'interface virtuelle activée dans la cron) ?
0 -
Il y a 13 heures, MilesTEG1 a dit :
Même chose pour le macvlan ? Moi je l'ai créé via un script.
Non, de mon côté un réseau macvlan créé par script plante le VPN, mais le réseau macvlan que j'ai créé par portainer ne le plante pas par contre ...
0
[TUTO][Docker] linuxserver/wireguard + Wireguard-UI
dans Tutoriels
Posté(e)
Tu as quoi comme modèle de Synology et quelle version de DSM ?
Tu parles de quel lien communiqué exactement ? ce post commence à être long pour tout retrouver ...