Wireguard VPN - l'intranet aziendale definitivo! (pt. 2) - Configuro WireGuard UI
Questo articolo è la “stagione 2” di: Wireguard VPN - l'intranet aziendale definitivo!
Anche se non è strettamente necessario, ti consiglio di leggere la stagione 1, che fa da introduzione a quello che andrò ad approfondire di seguito.
Introduzione
Nel precedente articolo ti ho indicato come creare e configurare la tua VPN.
I limiti della soluzione del precedente articolo sono:
- che non puoi sapere velocemente quanti utenti stanno utilizzando la tua instanza VPN;
- a chi hai consegnato un determinato certificato;
- disabilitare o eliminare utenti.
In questo articolo quindi vedrai come configurare una GUI per il tuo server VPN WireGuard dalla quale puoi:
- creare nuovi utenti;
- visualizzare in un attimo tutti gli utenti ai quali hai concesso un accesso alla tua VPN;
- abilitare / disabilitare / eliminare gli utenti già presenti;
- consultare le impostazioni del tuo server.
Installazione WireGuard e WireGuard-UI
Prerequisiti:
- Docker e docker-compose installato sul tuo server (se non sai come fare prova a dare un'occhiata qui);
- Traefik installato e configurato;
Se non hai familiarità con Traefik puoi tranquillamente utilizzare qualsiasi altro reverse proxy (Apache, nginx, etc.).
Iniziamo!
Crea una nuova cartella (scegli tu il nome, io ho riutilizzato la cartella: wgtest
dello scorso articolo 😂)
ed al suo interno crea un nuovo file con nome docker-compose.yml
.
All’interno del file appena creato copia le seguenti righe:
version: '3'
services:
wg:
image: ngoduykhanh/wireguard-ui:latest
container_name: wgui
restart: always
environment:
- TZ=Europe/Rome
- SENDGRID_API_KEY
- EMAIL_FROM
- EMAIL_FROM_NAME
- SESSION_SECRET="<SECRET_TOKEN>"
depends_on:
- wireguard
logging:
driver: json-file
options:
max-size: 10m
volumes:
- ./db:/app/db
- ./config:/etc/wireguard
labels:
- "traefik.enable=true"
- "traefik.http.services.wgui.loadbalancer.server.port=5000"
- "traefik.http.routers.wgui.entrypoints=websecure"
- "traefik.http.routers.wgui.rule=Host(`<URL_O_IP_DEL_TUO_SERVER>`)"
- "traefik.http.routers.wgui.tls.certresolver=lets-encr"
wireguard:
image: ghcr.io/linuxserver/wireguard
container_name: wireguard
cap_add:
- NET_ADMIN
- SYS_MODULE
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Rome
- SERVERURL=<URL_O_IP_DEL_TUO_SERVER>
- SERVERPORT=51820
- PEERS=0
- PEERDNS=auto
- INTERNAL_SUBNET=10.13.13.0
- ALLOWEDIPS=0.0.0.0/0
volumes:
- ./config:/config
- ./lib/modules:/lib/modules
ports:
- 51820:51820/udp
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
restart: always
networks:
default:
external:
name: <NETWORK_TRAEFIK>
Sostituisci:
<URL_O_IP_DEL_TUO_SERVER>
: ip o un CNAME che punta all’ip del tuo server;- se preferisci puoi anche cambiare la porta della VPN, io ho scelto la
51820
, ricordati però di aggiornare sia la variabileSERVERPORT
che le regole inports
; <SECRET_TOKEN>
: token alfanumerico, serve a WireGuard UI come seed per alcune operazioni di hashing;<NETWORK_TRAEFIK>
: nome della tua docker network, quella che hai configurato durante l’installazione di Traefik;
Nota: se non utilizzi Traefik puoi rimuovere l’ultimo tag networks
.
Non ti resta che avviare i container docker:
docker-compose up -d
Questa volta nel container di Wireguard ho impostato la variabile PEERS=0
, dato che non ho necessità di creare
utenti in fase di inizializzazione.
Qualche dettaglio su WireGuard UI
WireGuard UI è un progetto opersource: qui il link al github del progetto.
Prima di adottarlo ho dato uno sguardo ad altri progetti simili ed ho scelto questo perchè mi è sembrato il più promettente. Infatti da quando ho iniziato ad utilizzarlo ha già ricevuto diversi aggiornamenti con numerose migliorie (nel momento in cui scrivo l’ultima release è di qualche giorni fa').
Conclusioni
Grazie a WireGuard e WireGuard UI ormai ho il pieno controllo del mio server VPN! Sono anche riuscito a collegare tutti i server e le VPS che gestisco ed ho fatto in modo da esporre la porta SSH solo sull’indirizzo della VPN. Se sei interessato anche tu a questi argomenti scrivimi nei commenti 😃 potrei valutare un episodio 3.
Finalmente anche tu puoi gestire comodamente il tuo server VPN ed avere il pieno controllo degli utenti che vi accedono!
In questo articolo ho riassunto circa 5/6 giorni di esperimenti! Ebbene si, anche se tu hai letto questo articolo in pochi minuti, io ho impiegato un bel po' di tempo per capire e configurare tutto.
Guardando il risultato raggiunto però sono davvero soddisfatto!
Non scoraggiarti se non riesci subito e se hai qualche dubbio scrivimi nei commenti o contattami via email se hai bisogno di una consulenza, trovi i miei riferimenti in homepage o in fondo a questo articolo.
Questo è il primo articolo che scrivo dopo una lunga assenza. Ho lavorato duramente gli scorsi mesi per implementare la nuova grafica ed ottimizzazione SEO. Non è perfetto, soprattutto su mobile, ma con il tempo continuerò ad implementare altri piccoli fix e migliorie. Che ne pensi del risultato finale?
Scrivimelo nei commenti.
Se vuoi restare aggiornato su tutti i miei progetti entra anche nel mio canale Telegram, periodicamente inserisco sconti, news tech ed altro 🙂
AP