Aller au contenu

loli71

Membres
  • Compteur de contenus

    680
  • Inscription

  • Dernière visite

  • Jours gagnés

    10

Tout ce qui a été posté par loli71

  1. 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 ...
  2. 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)
  3. 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: De plus, cette erreur est décrite dans mon tuto:
  4. 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"
  5. 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. 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
  6. 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.
  7. 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/
  8. 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. WireGuard-geminilake-1.0.20220627.dsm72.spk
  9. loli71

    [TUTO] Docker : Introduction

    ca donne envie d'essayer ... mais bon ... je suis toujours réticent aux grosses update de synology ...
  10. 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/ ) : 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 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/
  11. 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 WireGuard-geminilake-1.0.20220627.spk
  12. 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 🙂
  13. @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 😉
  14. Dis moi, juste comme ça @Michel91 .. cette erreur ne ressemblerait-elle pas justement à l'erreur que j'ai décrite dans mon tuto ? 🙂 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. @CyberFr oui comme je l'avais indiqué dans la réponse que je t'ai faite
  15. 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 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 😉 Tu as quoi dans les logs du container dans portainer ?
  16. 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.
  17. @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: @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}
  18. @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
  19. loli71

    utilisation de wireguard

    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.
  20. 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-ui 4. 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_IPS 4.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 portainer Cré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/latest
  21. loli71

    utilisation de wireguard

    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:
  22. oui heureusement que ce n'est qu'une fois 😄 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
  23. 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...
  24. 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) ?
  25. 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 ...
×
×
  • 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.