Guida pratica: installare Cloudflare Tunnel su Docker
Gestire un server domestico offre grandi soddisfazioni, ma esporre i propri servizi su Internet comporta sempre dei rischi. Aprire le porte del router, il cosiddetto port forwarding, è una pratica sconsigliata perché espone la rete locale a scansioni malevole e potenziali attacchi. Cloudflare Tunnel rappresenta la soluzione ideale per superare questo problema, permettendo di rendere accessibili le proprie applicazioni senza dover configurare firewall complessi o esporsi direttamente sul web.
Questa guida spiega come configurare Cloudflare Tunnel utilizzando Docker, un metodo pulito, modulare e facile da mantenere. Grazie all’infrastruttura di Cloudflare, il traffico viene instradato attraverso un tunnel sicuro tra il tuo server e i loro server edge, garantendo protezione e velocità.
I prerequisiti necessari per iniziare
Prima di passare alla parte tecnica, assicurati di avere a disposizione alcuni elementi fondamentali. Senza questi, non sarà possibile completare la procedura di installazione.
Un dominio di tua proprietà
Per utilizzare Cloudflare Tunnel, devi possedere un nome di dominio. Non è necessario che sia un dominio costoso; anche un indirizzo economico registrato presso un qualsiasi provider va bene. L’importante è che il dominio sia gestito tramite i DNS di Cloudflare.
Un server con Docker installato
Il tuo server domestico deve avere Docker e Docker Compose installati. Non importa se utilizzi una Raspberry Pi, un mini PC con Ubuntu o un server NAS più potente. La procedura rimane coerente su quasi tutte le architetture Linux grazie alla natura containerizzata di Cloudflare Tunnel.
Un account Cloudflare gratuito
Se non ne hai già uno, crea un account gratuito su Cloudflare. Una volta effettuato l’accesso, aggiungi il tuo dominio alla dashboard di Cloudflare e assicurati che i server DNS siano correttamente configurati presso il tuo registrar di dominio.
Configurazione iniziale sulla dashboard di Cloudflare
Il primo passo operativo avviene all’interno del portale Cloudflare. Devi creare il tunnel logico che collegherà il tuo server al cloud di Cloudflare.
Creazione del tunnel nel pannello Zero Trust
Accedi alla sezione “Zero Trust” nel menu laterale della dashboard di Cloudflare. Naviga su “Networks” e poi su “Tunnels”. Clicca sul pulsante “Create a tunnel” e seleziona “cloudflared” come connettore. Scegli un nome identificativo per il tuo tunnel, ad esempio “casa-server”, e procedi alla creazione.
Ottenere il token di installazione
Dopo aver dato un nome al tunnel, Cloudflare ti presenterà una pagina con diverse opzioni di installazione basate sul sistema operativo. Cerca la sezione relativa a Docker e copia il comando che contiene il “token”. Questo token è una stringa alfanumerica lunga che identifica univocamente il tuo tunnel. Salvalo in un posto sicuro, poiché ti servirà tra poco.
Implementazione del container tramite Docker Compose
L’uso di Docker Compose rende la gestione del tunnel estremamente semplice. Invece di eseguire comandi lunghi nel terminale, utilizzeremo un file di configurazione che potrai riutilizzare in futuro.
Creazione del file docker-compose.yml
Accedi al terminale del tuo server e crea una cartella dedicata, ad esempio “cloudflare-tunnel”. Entra nella cartella e crea un file denominato “docker-compose.yml” utilizzando il tuo editor di testo preferito, come nano o vim.
Inserisci il seguente contenuto, sostituendo la stringa “IL_TUO_TOKEN_QUI” con quella che hai copiato dalla dashboard di Cloudflare:
version: ‘3’
services:
cloudflared:
image: cloudflare/cloudflared:latest
restart: unless-stopped
command: tunnel run –token IL_TUO_TOKEN_QUI
Avvio del servizio
Salva il file e chiudi l’editor. Ora, dalla stessa cartella, avvia il container con il comando “docker-compose up -d”. Docker scaricherà l’immagine ufficiale di Cloudflare e avvierà il tunnel. Potrai verificare che tutto stia funzionando correttamente controllando i log con “docker-compose logs -f cloudflared”. Se vedi messaggi che indicano una connessione stabilita con i server di Cloudflare, significa che il tunnel è attivo.
Pubblicazione dei servizi locali
Ora che il tunnel è attivo, dobbiamo indicare a Cloudflare quali servizi locali vogliamo esporre. Questo passaggio avviene interamente tramite l’interfaccia web di Cloudflare, senza dover riavviare il container.
Configurazione del Public Hostname
Torna alla dashboard di Cloudflare Zero Trust, nella sezione dove hai creato il tunnel. Clicca sul tunnel appena creato e seleziona la scheda “Public Hostname”. Clicca su “Add a public hostname”.
Mappare il sottodominio al servizio locale
In questa schermata, inserisci il sottodominio che vuoi utilizzare (ad esempio “home.tuodominio.com”). Nel campo “Service”, inserisci l’indirizzo IP locale del servizio che vuoi esporre e la porta corrispondente. Ad esempio, se hai un’applicazione su “192.168.1.50:8080”, inserisci “http://192.168.1.50:8080” nel campo URL.
Cloudflare creerà automaticamente un record DNS di tipo CNAME nel tuo dominio che punta al tunnel. Dopo aver salvato la configurazione, il tuo servizio sarà immediatamente raggiungibile dall’esterno tramite l’URL che hai appena definito.
Vantaggi della sicurezza aggiuntiva
Utilizzare Cloudflare Tunnel non serve solo a evitare il port forwarding. Esistono strumenti aggiuntivi integrati che rendono il tuo server domestico molto più sicuro rispetto a una semplice esposizione web.
Protezione tramite Cloudflare Access
Puoi attivare “Cloudflare Access” per aggiungere un livello di autenticazione davanti ai tuoi servizi. Questo significa che, prima ancora di arrivare alla pagina di login del tuo servizio locale, l’utente dovrà autenticarsi tramite un codice inviato via email, tramite Google, GitHub o altri provider di identità.
Monitoraggio del traffico
Dal pannello di Cloudflare, puoi monitorare in tempo reale il traffico verso i tuoi servizi. Puoi vedere quali IP stanno cercando di accedere e bloccare intere nazioni o indirizzi sospetti direttamente dal firewall di Cloudflare, senza gravare sulle risorse del tuo server locale.
Considerazioni finali sulla manutenzione
La gestione di un server domestico richiede costanza, ma con questa configurazione hai ridotto drasticamente la complessità operativa. Il container Docker si auto-aggiorna se utilizzi tag come “latest” e riavvii periodicamente il servizio, o se utilizzi strumenti come Watchtower.
Ricorda di verificare periodicamente che il tunnel sia attivo dalla dashboard di Cloudflare. Se dovessi cambiare il tuo IP locale o aggiungere nuovi servizi, ti basterà tornare nella sezione “Public Hostname” e aggiungere una nuova riga per ogni applicazione che desideri rendere pubblica. Questa flessibilità rende Cloudflare Tunnel uno degli strumenti più potenti per chiunque voglia gestire la propria infrastruttura casalinga con professionalità e sicurezza.
In conclusione, adottare questa soluzione trasforma radicalmente il modo in cui interagisci con il tuo server. Non dovrai più preoccuparti di configurazioni complesse sul router o di buchi nella sicurezza. Seguendo i passaggi descritti, avrai costruito un ponte protetto verso i tuoi dati, pronto per essere espanso secondo le tue necessità future.
