Pangolin è una piattaforma open source che ti permette di creare tunnel sicuri per collegare reti e servizi che normalmente non sarebbero accessibili da Internet.
Usa WireGuard come tecnologia di base per la crittografia e la trasmissione dei dati, ma aggiunge una dashboard web e tante funzioni che semplificano la gestione.
Il nome “Pangolin” deriva dall’animale pangolino che si chiude su sé stesso come protezione: è un riferimento alla sicurezza del sistema.
A COSA SERVE
Con Pangolin puoi:
Accedere in modo sicuro alla tua rete domestica o aziendale anche da remoto, senza dover aprire porte nel router o configurare NAT complicati.
Esporre un servizio interno su Internet (es. server web, Home Assistant, NAS, Nextcloud, ecc.) in modo protetto, con HTTPS automatico (Let’s Encrypt).
Creare VPN aziendali o familiari senza bisogno di hardware dedicato: basta un server (anche un VPS economico) che faccia da punto centrale.
Gestire utenti e accessi da una dashboard web moderna, invece di configurare manualmente file di WireGuard.
Integrare strumenti di sicurezza come Traefik (reverse proxy con SSL), CrowdSec (protezione dagli attacchi) o sistemi di autenticazione (OAuth, LDAP).
COMPONENTI PRINCIPALI
Pangolin (server) → il cuore del sistema, gira su un server (es. Ubuntu 24). Gestisce tunnel, utenti, siti e autenticazione.
Newt (client/agent) → un piccolo programma che installi su un dispositivo remoto per connetterlo al tuo server Pangolin. È quello che crea il tunnel sicuro.
Gerbil (opzionale) → modulo per facilitare l’instradamento dei tunnel, utile in ambienti complessi.
Dashboard Web → interfaccia grafica per amministrare il tutto (molto più semplice rispetto a WireGuard puro).
IN PRATICA
Senza Pangolin: per accedere da remoto a un PC o servizio di casa dovresti aprire porte sul router, configurare un DNS dinamico e sperare che il provider non blocchi le connessioni.
Con Pangolin: installi il server su un VPS o su un PC accessibile, aggiungi i tuoi dispositivi con Newt → e sei subito collegato tramite tunnel sicuro, senza aprire porte.
PREPARAZIONE DEL SISTEMA
Ecco i passi preliminari per mettere installare Pangolin su Ubuntu 24.04:
Aggiornare il sistema con il comando:
0 |
sudo apt update && sudo apt upgrade -y
|
Installare i pacchetti necessari con il comando:
0 |
sudo apt install wget sed curl jq -y
|
Creare una directory di installazione (opt/pangolin) con i seguenti comandi:
0 |
sudo mkdir -p /opt/pangolincd /opt/pangolin
|
Questi passaggi permettono di avere un ambiente pronto per eseguire il resto dell’installazione
INSTALLAZIONE AUTOMATICA TRAMITE SCRIPT
Pangolin offre uno script di installazione automatica che semplifica molto la procedura.
Scaricare ed esegui lo script con il comando:
0 |
curl -fsSL https://digpangolin.com/get-installer.sh | bash
|
Dovremmo visualizzare il seguente output:
0 |
[INFO] Installing latest version of installer...[INFO] Fetching latest version from GitHub...[INFO] Latest version: v1.9.4[INFO] Detected platform: linux_amd64[INFO] Install directory: /opt/pangolin[INFO] Downloading installer from https://github.com/fosrl/pangolin/releases/download/1.9.4/installer_linux_amd64[INFO] Installer downloaded to /opt/pangolin/installer[INFO] Installation successful![INFO] Installer is ready to use!
|
Eseguire il comando per installare Pangolin:
0 |
sudo ./installer
|
A questo punto ci verrà chiesto di rispondere ad un seria di domande:
0 |
=== Basic Configuration ===Do you want to install Pangolin as a cloud-managed (beta) node? (yes/no):
|
Scrivere No
0 |
Enter your base domain (no subdomain e.g. example.com): lab.prv
|
Inserire il nome del dominio
0 |
Enter the domain for the Pangolin dashboard (default: pangolin.lab.prv):
|
Inserire il dominio per la Dashboard oppure lasciare tutto in default
0 |
Enter email for Let's Encrypt certificates:admin@lab.prv
|
Inserire la mail per La configurazione Let’s Encrypt
0 |
Do you want to use Gerbil to allow tunneled connections (yes/no) (default: yes):
|
Premere INVIO
0 |
=== Email Configuration ===Enable email functionality (SMTP) (yes/no) (default: no):
|
Premere INVIO per configurare l’STMP in un secondo momento
0 |
=== Advanced Configuration ===Is your server IPv6 capable? (yes/no) (default: yes):
|
Premere INVIO se il server supporta l’IPv6
0 |
=== Generating Configuration Files ===Configuration files created successfully!=== Starting installation ===Would you like to install and start the containers? (yes/no) (default: yes):
|
Premere INVIO
0 |
Would you like to run Pangolin as Docker or Podman containers? (default: docker):
|
Premere INVIO per procedere all’installazione di Docker
Lo script installerà automaticamente Docker, Docker Compose, Traefik, Pangolin e (opzionalmente) Gerbil e CrowdSec.
Dopo pochi minuti (2–3 min) il sistema dovrebbe essere in funzione.
Se è andato tutto a buon fine dovremmo visualizzare il seguente output.
0 |
Starting containers...[+] Running 5/5✔ Network pangolin Created 0.0s✔ Volume "pangolin_pangolin-data" Created 0.0s✔ Container pangolin Healthy 17.8s✔ Container gerbil Started 11.0s✔ Container traefik Started 11.5s=== CrowdSec Install ===Would you like to install CrowdSec? (yes/no) (default: no):
|
Premere INVIO
Se è tutto OK dovremmo visualizzare il seguente output:
0 |
=== Setup Token ===Waiting for Pangolin to generate setup token...Setup token: 6nqeqyw3blmzyc7ucmw91my0jckg2dhnThis token is required to register the first admin account in the web UI at:https://pangolin.lab.prv/auth/initial-setupSave this token securely. It will be invalid after the first admin is created.Installation complete!To complete the initial setup, please visit:https://pangolin.lab.prv/auth/initial-setup
|
Segnarsi il Setup Token quindi da un qualsiasi Browser richiamare il link:
https://pangolin.lab.prv/auth/initial-setup
In questa schermata inserire il Token del Setup, la mail e la password
Cliccare su Create Admin Account
Inserire l’indirizzo mail quidi la password e cliccare LogIn
CONFIGURAZIONE BASE
A questo punto procedere con la configurazione dell’Organizzazione
Inserire il Nome dell’Organizzazione quindi la Subnet da utilizzare
Cliccare Create Organization
Site Information
Name: Nome descrittivo del sito. Puoi scegliere quello che preferisci (es. Site Lab, Casa, Ufficio). Serve solo come riferimento nella dashboard.
Site Address: L’indirizzo IP interno della rete a cui i client connessi dovranno accedere.
Deve appartenere al subnet definito nell’organizzazione di Pangolin.
Esempio: 100.90.128.1.
Questo è l’indirizzo interno che il tunnel assegnerà come “entrypoint”.
Tunnel Type
Scegli il tipo di connessione che userà il sito:
Newt Tunnel (raccomandato)
Metodo più semplice: crea un endpoint Newt collegato direttamente al server Pangolin.
Non richiede configurazioni di NAT o firewall manuali.
Basic WireGuard
Usa un client WireGuard tradizionale per creare il tunnel.
Richiede configurazione manuale di NAT/port forwarding.
Local
Non crea un tunnel.
Serve solo per risorse locali sulla stessa macchina dove gira Pangolin.
Newt Credentials
Credenziali generate automaticamente per collegare l’agente Newt al server Pangolin.
Newt Endpoint: L’URL del server Pangolin che gestirà il tunnel (es. https://pangolin.lab.prv).
Newt ID: Identificativo univoco dell’istanza Newt (es. 1ev5h9Dq9entiyY).
Newt Secret Key: Chiave segreta associata all’ID, usata per autenticare Newt al server.
⚠️ Si vede solo una volta: copiala e salvala in un posto sicuro.
Install Newt
Guida per installare ed eseguire Newt (il client che stabilisce il tunnel).
Operating System
Qui scegli la piattaforma su cui installerai Newt:
- Linux (distribuzioni generiche)
- Docker (container)
- Podman
- macOS
- Windows
- FreeBSD
- NixOS
Architecture
(In questo caso è impostato su All, quindi fornisce il comando adatto per qualsiasi architettura CPU supportata: x86_64, ARM, ecc.)
Configuration
Opzione: Accept Client Connections
Se attivata, il sito funge da gateway: permette ad altri client di connettersi tramite questo endpoint.
Se disattivata, il sito sarà solo un endpoint verso risorse interne, ma non un gateway.
Commands
Qui trovi i comandi già pronti da eseguire sul sistema scelto per installare Newt:
Scarica e installa Newt:
curl -fsSL https://digpangolin.com/get-newt.sh | bash
Avvia Newt con le credenziali:
newt –id <NewtID> –secret <SecretKey> –endpoint <Endpoint>
Nell’immagine, i valori sono già popolati con quelli del tuo nuovo sito.
Cliccare su Create Site
SCENARIO DI ESEMPIO
Scenario
A casa hai un NAS (es. Synology, TrueNAS o anche un semplice server Linux con Samba/Nextcloud) con IP interno: 192.168.1.50.
Vuoi poterci accedere da Internet, in modo sicuro, senza esporre direttamente il NAS.
Passaggi con Pangolin
1. Installazione del server Pangolin
Prendi un VPS (es. su Hetzner, OVH, DigitalOcean, ecc.) con Ubuntu 24.
Installa Pangolin con lo script automatico:
Configura il dominio (es. pangolin.miodominio.com) → ti dà accesso alla dashboard.
2. Creazione di un Site per la rete di casa
Dalla dashboard, crei un nuovo Site chiamato ad esempio HomeLab.
Scegli Newt Tunnel (raccomandato) come tipo di tunnel.
Imposti come Site Address qualcosa tipo 100.90.128.1 (IP virtuale interno che Pangolin userà per il sito).
Pangolin ti fornisce:
Endpoint (URL del server)
Newt ID
Newt Secret Key
3. Installazione di Newt sul NAS (o su un mini server in casa)
Sul dispositivo di casa (può essere il NAS stesso o un piccolo Raspberry/mini PC nella rete LAN):
0 |
curl -fsSL https://digpangolin.com/get-newt.sh | bashnewt --id <NewtID> --secret <SecretKey> --endpoint https://pangolin.miodominio.com
|
Questo crea un tunnel sicuro dal NAS verso il server Pangolin.
4. Configurazione della risorsa
Torni nella dashboard di Pangolin.
Aggiungi una risorsa legata al Site HomeLab:
Tipo: Web Service
Indirizzo interno: http://192.168.1.50:5000 (porta del NAS o servizio specifico)
Nome pubblico: nas.miodominio.com
Pangolin con Traefik si occuperà automaticamente di gestire il certificato SSL (HTTPS).
5. Accesso da remoto
Ora, ovunque tu sia, ti basta aprire nel browser:
https://nas.miodominio.com
Ti collegherai al NAS attraverso il tunnel sicuro di Pangolin, senza che il NAS sia esposto direttamente a Internet.
Puoi anche configurare regole di accesso (solo utenti autenticati, gruppi, 2FA, ecc.).
Vantaggi rispetto al “classico port forwarding”
Sicurezza: il NAS non è mai esposto direttamente, il traffico passa in un tunnel cifrato WireGuard.
Semplicità: non serve aprire porte nel router, né configurare DDNS.
Scalabilità: puoi aggiungere altri servizi interni (es. homeassistant.miodominio.com, plex.miodominio.com) con due clic.
Gestione utenti: puoi decidere chi può accedere e a cosa, direttamente dalla dashboard.
0 commenti