loli71 Posté(e) le 9 juin 2023 Partager Posté(e) le 9 juin 2023 (modifié) 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 Modifié le 29 août 2023 par loli71 MAJ: 29/08/2023 modification PGID 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CyberFr Posté(e) le 12 juin 2023 Partager Posté(e) le 12 juin 2023 Il y a un os dans le caviar lors de la récupération des binaires : Citation root@DS220:~# cd /tmp 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 Connecting to github.com|140.82.121.4|:443... connected. HTTP request sent, awaiting response... 404 Not Found 2023-06-12 13:32:40 ERROR 404: Not Found. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CyberFr Posté(e) le 12 juin 2023 Partager Posté(e) le 12 juin 2023 Sur GitHub il y a deux versions amd64, une darwin et une freebsd. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
loli71 Posté(e) le 12 juin 2023 Auteur Partager Posté(e) le 12 juin 2023 (modifié) 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 Modifié le 12 juin 2023 par loli71 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CyberFr Posté(e) le 12 juin 2023 Partager Posté(e) le 12 juin 2023 il y a 26 minutes, loli71 a dit : @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 : Ben non. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Michel91 Posté(e) le 12 juin 2023 Partager Posté(e) le 12 juin 2023 en faisant seulement ça on arrive sur un 404 https://github.com/ngoduykhanh/wireguard-ui/releases/download/ comme dit cyberfr il y a un os 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
MilesTEG1 Posté(e) le 12 juin 2023 Partager Posté(e) le 12 juin 2023 La comme ça je dirais de mettre des " " entourant l’URL. je regarderai demain. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
MilesTEG1 Posté(e) le 12 juin 2023 Partager Posté(e) le 12 juin 2023 Alors, avant d'aller faire dodo, superbe tuto qu'il me faudra mettre en place prochainement 😉 Deux petites choses que je ferais un peu autrement : Ce qui suit mérite d'être mis dans un fichier script, pour ne pas avoir de problème d'échappement de variable Le 09/06/2023 à 18:04, loli71 a dit : Exemple en ssh: export VERSION=0.5.1 # Changer la version pour pointer sur la dernière export ARCHI=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 Je proposerai ceci : #!/bin/bash # Script pour télécharger la version choisie de wireguard-ui VERSION="0.5.1" # Changer la version pour pointer sur la dernière (voir un peu plus bas) ARCHI="amd64" # Changer architecture si besoin docker_volume="volume1" # Changer pour le volume dans lequel se trouve le dossier docker # Par exemple : volume4 nom_conteneur="wireguard" # Changer par le nom du conteneur qui sera créé. # Servira comme nom de dossier dans le dossier docker temp_dir="tmp/" ########################################################################################## # Si la volonté est d'avoir la dernière version disponible, ceci peut aider. # Commenter les 3 lignes suivantes si latest_gh_version="${$(curl -sL https://api.github.com/repos/ngoduykhanh/wireguard-ui/releases/latest | jq -r ".tag_name"):1}" printf "La dernière version disponible sur GitHub est la : %s\n" $latest_gh_version VERSION=latest_gh_version ########################################################################################## return_code="" dossier_conteneur="/${docker_volume}/docker/${nom_conteneur}" if [ ! -d "${dossier_conteneur}" ]; then echo "Le dossier ${dossier_conteneur} n'existe pas. On va le créer." mkdir -p "${dossier_conteneur}" return_code="$?" if [ "$return_code" -ne 0 ]; then echo "Erreur à la création du dossier temporaire $temp_dir... Fin du script." exit 1 fi fi return_code="" if [ ! -d "$temp_dir" ]; then echo "Le dossier $temp_dir n'existe pas. On va le créer." mkdir -p "$temp_dir" return_code="$?" if [ "$return_code" -ne 0 ]; then echo "Erreur à la création du dossier temporaire $temp_dir... Fin du script." exit 1 fi fi cd "$temp_dir/" wget -O "wireguard-ui-${VERSION}-${ARCHI}.tar.gz" "https://github.com/ngoduykhanh/wireguard-ui/releases/download/${VERSION}/wireguard-ui-${VERSION}-${ARCHI}.tar.gz" || exit 1 tar -zxf "wireguard-ui-${VERSION}-${ARCHI}.tar.gz" mv wireguard-ui "${dossier_conteneur}/wireguard-ui/wg-ui" rm -f "wireguard-ui-${VERSION}-${ARCHI}.tar.gz" # Fin du script. (Bon OK, je me suis un peu lâché ^^) Demain, enfin dans la journée, je ferais une autre version du script avec option --update pour faire la dernière partie avec ceci : 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 1 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
loli71 Posté(e) le 13 juin 2023 Auteur Partager Posté(e) le 13 juin 2023 (modifié) @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: Citation export 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} Modifié le 13 juin 2023 par loli71 1 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
MilesTEG1 Posté(e) le 13 juin 2023 Partager Posté(e) le 13 juin 2023 @loli71 De rien, pas de souci, je le mettrais à jour. Je vais faire un dépôt github ou un gist pour que ce soit plus simple ^^ il y a 17 minutes, loli71 a dit : 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. Pourtant, dans tes commandes, c'est pas /tmp que tu utilises : il y a 18 minutes, loli71 a dit : 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 : Oui c'est sûr, mais pour être tranquille, j'aime bien que ça vérifie les dossiers. S'ils sont déjà existants, la commande ne fera rien 🙂 il y a 19 minutes, loli71 a dit : 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} Très bonne idée 🙂 Je finalise le script dès que je peux, et le reposte. Tu verras si tu l'intègres au tuto et donc fait quelques modifs pour aller avec le script 🙂 (je n'oblige à rien 😉 ) 1 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CyberFr Posté(e) le 13 juin 2023 Partager Posté(e) le 13 juin 2023 Il y a 10 heures, MilesTEG1 a dit : (Bon OK, je me suis un peu lâché ^^) Ben on te connaît 😀 1 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
MilesTEG1 Posté(e) le 13 juin 2023 Partager Posté(e) le 13 juin 2023 PS : tu as vu que pour récupérer la dernière version, pas besoin d'indiquer la valeur de la version, le script la récupère tout seul. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CyberFr Posté(e) le 13 juin 2023 Partager Posté(e) le 13 juin 2023 Bon, je vais attendre que les choses se stabilisent avant de continuer. Il n'empêche, l'histoire retiendra que j'ai été le premier à mettre en œuvre ce superbe tuto 🤩 1 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
loli71 Posté(e) le 13 juin 2023 Auteur Partager Posté(e) le 13 juin 2023 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 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CyberFr Posté(e) le 13 juin 2023 Partager Posté(e) le 13 juin 2023 Il y a 1 heure, loli71 a dit : @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 🙂 Bon, dés que j'aurai un moment, c'est avec plaisir que je jouerai les bêta-testeurs. 🙂 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CyberFr Posté(e) le 13 juin 2023 Partager Posté(e) le 13 juin 2023 (modifié) @loli71, je viens d'essayer et j'ai de nouveau droit à l'erreur 404. Modifié le 13 juin 2023 par CyberFr 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Michel91 Posté(e) le 13 juin 2023 Partager Posté(e) le 13 juin 2023 chez moi ça à fonctionné impec, maintenant le reste. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
MilesTEG1 Posté(e) le 13 juin 2023 Partager Posté(e) le 13 juin 2023 Il y a 5 heures, loli71 a dit : Je viens de corriger dans mon tuto, c'est une erreur de typo 😉 Je modifierai le script pour vérifier si le /tmp est bien autorisé en lecture/écriture. du coup , je pars sur le principe que les dossiers ne sont pas créés ? Ou que seul le dossier du conteneur l’est ? C’est ma préférence là, ce dossier doit être créé et on y place le script qui va créer les autres dossiers , potentiellement leur attribuer les bons droits (vi ID utilisateur avec un chown) puis placer les différents scripts qui se lanceront dans le conteneur. tu ne voudrais pas créer un dépôt GitHub pour stocker ces fichiers ? Le script les téléchargera de là (c’est ton tuto après tout, je ferai des PR pour le script). Il y a 5 heures, loli71 a dit : 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. 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 😜 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Michel91 Posté(e) le 13 juin 2023 Partager Posté(e) le 13 juin 2023 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. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
loli71 Posté(e) le 13 juin 2023 Auteur Partager Posté(e) le 13 juin 2023 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 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Michel91 Posté(e) le 14 juin 2023 Partager Posté(e) le 14 juin 2023 Citation 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. **** 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Michel91 Posté(e) le 14 juin 2023 Partager Posté(e) le 14 juin 2023 J'ai essayé aussi en ssh et j'obtiens cette réponse Citation root@Syno920:~# cd /volume1/docker/wireguard root@Syno920:/volume1/docker/wireguard# docker-compose pull WARN[0000] The "dz" variable is not set. Defaulting to a blank string. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CyberFr Posté(e) le 14 juin 2023 Partager Posté(e) le 14 juin 2023 Il y a 11 heures, loli71 a dit : 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.... As-tu corrigé le tuto en conséquence ? 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
loli71 Posté(e) le 14 juin 2023 Auteur Partager Posté(e) le 14 juin 2023 (modifié) 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 ? 🙂 Citation 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) 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 Modifié le 14 juin 2023 par loli71 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Michel91 Posté(e) le 14 juin 2023 Partager Posté(e) le 14 juin 2023 Bon, trop compliqué pour moi. J abandonne je vais resté sur wireguard installé sur un vps Ovh installé en deux minutes chrono. Je reviendrai plus tard quand le truc sera plus simple. Bonne journée à tous 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
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.