Synology: installare Wireguard e gestirlo da interfaccia grafica

| |

Attenzione

Doverosa premessa che ti permetterà di evitare di perdere tempo:
se sul tuo NAS Synology non puoi installare Docker puoi anche abbandonare la lettura del resto dell’articolo. Diversamente mettiti comodo e buona lettura :-)

Suggerimento

Non vuoi leggere l’articolo ma ti interessa comunque arrivare al risultato finale? Puoi dare un’occhiata a un video YouTube che riassume il tutto (in inglese) e che propongo al termine della parte scritta. Se vuoi andare dritto lì, fai clic su questo collegamento.

Argomenti di cui ho discusso spesso (genericamente parlando), puoi andare a sbirciare nello storico dei miei articoli dedicati a Wireguard, Synology e Raspberry Pi.

Darò quindi per scontato che tu sappia più o meno di cosa stiamo parlando e passerò al succo: avendo a disposizione un Synology DS220+ (in grado di far girare Docker, installabile direttamente dallo store ufficiale di Synology) e volendo mettere in dismissione una piccola macchina virtuale DietPi su cui facevo girare PiVPN (un po’ come ti avevo spiegato nell’articolo Raspberry Pi: installare e configurare Wireguard con PiVPN), ho deciso di installare Docker e poi mettere in piedi il pacchetto SPK di Wireguard seguito a ruota da wg-easy, un’interfaccia grafica che permette di gestire molto agilmente Wireguard e le utenze autorizzate all’utilizzo della VPN.

Prima di cominciare a fare sul serio occorre la doverosa premessa:

Synology: installare Wireguard e gestirlo da interfaccia grafica 1 Attenzione:
Prima di partire, il solito consiglio: occhio sempre a quello che tocchi e che rimuovi, effettua dei backup del tuo sistema per sicurezza. Potrai così tornare indietro in caso di problemi.

Docker

Synology: come installare Wireguard e gestirlo da interfaccia grafica (Wireguard Easy)

Docker è pressoché il passaggio più semplice, puoi trovarlo e installarlo direttamente dallo store Synology ufficiale, utilizza quindi il Centro pacchetti per portartelo a casa.

Synology: come installare Wireguard e gestirlo da interfaccia grafica (Wireguard Easy) 1

Wireguard: il pacchetto SPK

Luka Manestar ha già fatto il lavoro sporco, ammesso tu non voglia farlo di tua mano seguendo pedissequamente le istruzioni contenute in uno splendido e dettagliato articolo che lui stesso ha scritto e pubblicato all’indirizzo blackvoid.club/wireguard-spk-for-your-synology-nas. Quello che tu puoi fare – per risparmiare tempo – è tirare fuori 2 informazioni fondamentali:

  • il modello del tuo NAS Synology,
  • la versione del sistema operativo che questo sta utilizzando attualmente (io per esempio ho fatto tutto su un DSM 7.1).

Entrambe le informazioni, combinate tra loro, ti serviranno per individuare il giusto pacchetto SPK che potrai agilmente scaricare dal sito di Luka e installare sul tuo NAS. Nel mio caso (DS220+ con DSM 7.1) ho dovuto prendere il pacchetto blackvoid.club/content/files/2022/08/Wireguard-geminilake-1.0.20220627.spk (modello del processore Geminilake), tu potrai fare lo stesso cercando di non sbagliare (diversamente l’installazione non andrà a buon fine).

Torna nel Centro pacchetti di DSM sul tuo NAS, installa ciò che hai appena scaricato assicurandoti però che non sia spuntata l’opzione per avviare Wireguard al termine dell’installazione (sul tuo NAS dovrà essere abilitata l’installazione manuale dei pacchetti anche da fonti terze “non affidabili“):

Synology: come installare Wireguard e gestirlo da interfaccia grafica (Wireguard Easy) 2

Quando conclusa, collegati via SSH al NAS (dovrai precedentemente averlo abilitato dalle impostazioni) e lancia questo comando da utente root:

/var/packages/Wireguard/scripts/start

A questo punto – salvo errori a video – il pacchetto Wireguard andrà in esecuzione regolarmente (e lo farà in autonomia anche in caso di riavvio del NAS, non ci sarà più bisogno del tuo intervento):

Synology: come installare Wireguard e gestirlo da interfaccia grafica (Wireguard Easy) 3

Wireguard Easy

Manca l’ultimo tassello. Il resto è poi delegato alla parte rete che dovrai configurare affinché la porta di Wireguard sia raggiungibile dall’esterno via UDP (cosa già discussa nell’articolo di cui ti parlavo all’inizio: Raspberry Pi: installare e configurare Wireguard con PiVPN). Wireguard Easy è un’interfaccia grafica che ti permette di gestire comodamente gli utenti che devono poter accedere in VPN sulla rete sulla quale stai facendo tutto questo lavoro. Ma è anche molto di più: è un’immagine docker che si occupa di gestire direttamente il pacchetto Wireguard passandogli le impostazioni che più ti sono comode per la tua installazione.

Progetto completamente open source disponibile su GitHub all’indirizzo github.com/WeeJeWel/wg-easy, rende la vita più semplice e immediata una volta capita la sua logica.

Luka (sì, sempre lui) ha dedicato a questo step un ulteriore articolo che trovi all’indirizzo blackvoid.club/wireguard-vpn-for-your-synology-nas e che ho seguito andando a ritoccare solo ciò che faceva comodo alla mia specifica esigenza. Volevo incanalare nella VPN solo le richieste verso oggetti della LAN (e navigare quindi tramite la connessione su cui ci si trova realmente) e null’altro, andando a ritoccare i DNS utilizzati e mettendone uno interno insieme a uno di quelli esterni forniti da Google (richiesta dell’utente finale), indicando un indirizzo DDNS al posto dell’indirizzo IP del router in quel momento (questo perché ho configurato precedentemente quel DDNS su DSM affinché venisse tenuto costantemente aggiornato in caso di modifiche).

Tutto questo si traduce in:

  • fai accesso SSH al NAS (se non hai chiuso la finestra del terminale SSH aperta prima puoi ancora utilizzarla) e assicurati di essere utente root.
  • copia-incolla e lancia tutto il codice che trovi qui di seguito andando a riadattare le impostazioni che fanno al caso tuo.
sudo docker run -d \
  --name=wg-easy \
  -e WG_HOST=contoso.duckdns.org \
  -e PASSWORD=PasswordInterfacciaAmministrativaWGeasyDaCambiare \
  -e WG_DEFAULT_DNS=8.8.8.8,192.168.1.1 \
  -e WG_ALLOWED_IPS=192.168.1.0/24 \
  -v /volume1/docker/wg-easy:/etc/wireguard \
  -p 51820:51820/udp \
  -p 51821:51821/tcp \
  --cap-add=NET_ADMIN \
  --cap-add=SYS_MODULE \
  --sysctl="net.ipv4.conf.all.src_valid_mark=1" \
  --sysctl="net.ipv4.ip_forward=1" \
  --restart unless-stopped \
  weejewel/wg-easy
  • WG_HOST deve corrispondere all’indirizzo IP esterno del tuo router. Io ho usato il servizio messo a disposizione da Duck DNS così da poterlo tenere agilmente aggiornato con zero fatica (lo fa DSM al posto mio, tramite Pannello di controllo → Accessi esterni → DDNS.
  • PASSWORD deve corrispondere alla password che vorrai utilizzare per accedere la pagina web di gestione degli utenti autorizzati all’uso di Wireguard.
  • WG_DEFAULT_DNS (opzionale, puoi cancellare la riga) dovrà contenere l’indirizzo IP del server DNS che vuoi utilizzare per la risoluzione dei nomi. Se vuoi specificare più server DNS, potrai farlo intervallandoli tramite una semplice virgola.
  • WG_ALLOWED dovrà contenere la subnet alla quale vuoi fare accesso. Nell’esempio, la rete sulla quale atterrare è una 192.168.1.0/24 (da 192.168.1.1 a 192.157.1.254). Se vuoi specificare una diversa sottorete, fallo. Se vuoi specificare più sottoreti, ricorda di intervallarle tramite virgola.
  • /volume1/docker/wg-easy:/etc/wireguard metterà in contatto wg-easy con il pacchetto Wireguard precedentemente installato, difficilmente cambierai questa stringa a meno di avere un volume diverso dal predefinito (volume1) sul NAS.

Ci sono ulteriori opzioni che puoi specificare da riga di comando, dai un’occhiata al file README del progetto: github.com/WeeJeWel/wg-easy#options.

A comando lanciato dovrai solo attendere il download dell’immagine dal repository ufficiale Docker e l’esecuzione, potrai quindi abbandonare la finestra del terminale connessa via SSH e portarti sul browser per raggiungere l’interfaccia grafica all’indirizzo http://NAS.contoso.local:51821 ed eccoti finalmente arrivato a destinazione:

Synology: come installare Wireguard e gestirlo da interfaccia grafica (Wireguard Easy) 7

Una volta dentro potrai creare e cancellare utenti, visualizzare il loro codice QR per la configurazione rapida del client Wireguard e – quando connessi – anche la velocità di upload e download dei dati che transitano via VPN. Nel frattempo, dietro le quinte, tutto questo girerà (isolato) in un container Docker:

La via più semplice: YouTube

Dedicato a chi proprio non sopporta leggere ma che non può fare a meno di copiare e incollare i dati e le configurazioni che servono alla buona riuscita della configurazione. Qui ti propongo un video YouTube che attraversa un po’ tutto quello che ho spiegato sopra (e che Luka ha spiegato a sua volta nei suoi articoli). Se proprio “ti si stanca la vista” forse un video è quello che può fare al caso tuo:

In conclusione

Ho dismesso la macchina DietPi e in generale PiVPN. Non che non funzionasse tutto a dovere, per carità (anzi, sai bene che adoro DietPi), ma questa soluzione adottata su un NAS che lo permette è secondo me più snella e rapida. Posso decidere di aggiornare velocemente l’immagine Docker e seguire eventuali ulteriori aggiornamenti dei pacchetti Wireguard che arriveranno in futuro. Giusto per la cronaca: aggiornare wg-easy è spiegato anche nel README ufficiale ma questo è ciò che ti serve sapere (serve un terminale connesso via SSH al NAS e il solito utente root):

docker stop wg-easy
docker rm wg-easy
docker pull weejewel/wg-easy

Dovrà poi seguire tutto il blocco comandi che ti ho già riportato sopra, questo per la precisione. Tutto ripartirà così come lo avevi lasciato l’ultima volta.
Se hai domande o dubbi in merito puoi sempre usare l’area commenti subito dopo l’articolo :-)

#StaySafe

Correzioni, suggerimenti? Lascia un commento nell'apposita area qui di seguito o contattami privatamente.
Ti è piaciuto l'articolo? Offrimi un caffè! ☕ :-)

L'articolo potrebbe non essere aggiornato

Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)

Condividi l'articolo con i tuoi contatti:
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Commenti
Inline Feedbacks
View all comments