Pangolin: Alternativa Self-Hosted a Cloudflare Tunnel e Tailscale
Valuta Pangolin come alternativa open source a Tailscale e Cloudflare Tunnel. Gestione utenti, 2FA, SSO e dashboard web per un controllo totale dei tuoi servizi online
Tunneled Mesh Reverse Proxy Server con Identity & Access Control
Pangolin è un reverse proxy, grazie all’integrazione con Traefik (ne avevamo parlato qui), self-hosted, progettato per esporre in modo sicuro risorse private su reti distribuite, senza aprire porte nel firewall (Firewall punching), utilizzando tunnel crittografati WireGuard e un’interfaccia admin con autenticazione centralizzata anche integrando con identity provider di terze parti
In una semplice VPS, ho installato Pangolin, niente porte aperte, niente configurazioni complicate, nessun rischio. Attraverso il client Newt dockerizzato sulla mia rete locale, ho ogni container che mi serve dai servizi web, dashboard, API etc. viene esposto in modo sicuro su Internet, passando attraverso un tunnel WireGuard cifrato, gestito da Pangolin. Nessuna regola firewall da toccare, tutto resta dietro le quinte, ma accessibile solo a chi deve.
Risultato?
Ho trasformato un ambiente Docker locale in una piattaforma “cloud-ready”, sicura e accessibile ovunque, con autenticazione centralizzata, HTTPS automatico, e zero compromessi sulla privacy. Tra i requisiti ricordatevi anche di prendere un dominio DNS che non punterà direttamente al vostro homelab ma alla VPS.
La vera marcia in più è stata abilitare il supporto mTLS (qui che cosa è il mutual TLS) per l’autenticazione reciproca tra il client (Newt) e il server pangolin:
Ogni connessione viene autenticata non solo dal server ma anche dal client, garantendo che solo entità autorizzate da un certificato CA, nel mio caso self signed, possano stabilire la sessione/connessione. Grazie a questo, anche la superficie di attacco diminuisce.
Ad oggi, il formato PKCS12 crittografato non è ancora supportato.
Caratteristiche principali
Tunnel WireGuard utente Utilizza “Newt”, un client WireGuard in user-space, per connessioni site-to-site senza privilegi elevati Supporto per client WireGuard standard e proxy TCP/UDP trasparenti.
Accesso Identity & Access Control Autenticazione centralizzata (SSO, OAuth2/OIDC, con IdP come Keycloak, Okta o Authentik) Access control granulare su utenti/ruoli, IP, URL. 2FA con TOTP, codici monouso, PIN, link temporanei
Dashboard intuitiva Gestione centralizzata di siti, utenti, risorse. UI responsive, tema chiaro/scuro. Monitoraggio in tempo reale di utilizzo e stato.
Certificati SSL automatizzati Supporto integrato a Let’s Encrypt per HTTPS senza configurazioni complesse
Estendibilità e integrazioni Modularità con plugin Traefik (es. CrowdSec, geoblock) Middleware “Badger” per autenticazione su Traefik API REST documentata con Swagger e supporto a token scoped.
Facile deployment Basato su Docker Compose, installabile su VPS/cloud o in locale Script installer semplice, compatibile con ambienti Linux e sul DigitalOcean Marketplace
Come funziona
Installazione del server centrale
Eseguito su VPS o server bare-metal con Docker Compose; configura dominio e certificati SSL.
Connessione dei “site clients”
Ogni sito usa Newt (o client WireGuard) per registrarsi al server, costruire il tunnel e registrare i proxy locali
Definizione delle risorse
Sul dashboard si aggiungono servizi (HTTP, TCP, UDP), si specificano target e regole di accesso.
Accesso controllato
L’utente accede via browser, autenticandosi (es. SSO + 2FA), quindi raggiunge la risorsa secondo regole configurate.
Proxy sicuro attivo
Il traffico passa attraverso il tunnel e viene inoltrato tramite Traefik + middleware di autenticazione, garantendo TLS end-to-end.
Conclusione
Pangolin è una soluzione potente e moderna per esporre in sicurezza risorse private, combinando tunnel WireGuard, proxy, autenticazione avanzata e una UI accattivante. Perfetto sia per homelab sia per contesti professionali, offre un’alternativa self-hosted a servizi commerciali, mantenendo controllo, privacy e personalizzazione.
Se ti interessa, puoi esplorare il repository, consultare la documentazione e sperimentare subito, per qualsiasi dubbio/supporto ti invito a scrivere nei commenti!