Accesso remoto a Home Assistant tramite Cloudflare Tunnel

Icone Home Assistant e Cloudflare affiancate su uno sfondo monocolore.

Introduzione

Nel mondo dei laboratori domestici, Home Assistant è diventato uno degli strumenti più potenti e popolari per l’automazione e il controllo della casa: open-source, altamente personalizzabile e con una grande comunità attiva, permette di integrare dispositivi di ogni tipo, dai sensori Zigbee alle luci intelligenti, fino a sistemi più avanzati come videocitofoni o sistemi di allarme.
Uno degli aspetti più delicati, tuttavia, riguarda l’accesso remoto: come accedere a Home Assistant dall’esterno della casa in modo sicuro, senza aprire porte sul router e senza esporre il proprio server a rischi inutili? Cloudflare Zero Trust Access, un servizio gratuito (sono disponibili anche piani a pagamento) che consente di esporre il proprio Home Assistant su Internet senza dover modificare la configurazione del firewall o del NAT e, soprattutto, con un livello di sicurezza molto più elevato rispetto al semplice port forwarding. Utilizzando Cloudflare Tunnel, è possibile creare un canale crittografato tra il proprio server locale e l’infrastruttura Cloudflare, nascondendo completamente il proprio IP pubblico e filtrando l’accesso tramite autenticazione a due fattori, provider OAuth (come Google, GitHub, Microsoft) o regole basate sull’identità.

Prerequisiti

  • Possedere un dominio personale
  • Dominio personale collegato a Cloudflare
  • Docker e Portainer

Create un Tunnel Cloudflare

1. Accedere a Cloudflare e premere su Zero Trust

Menu laterale di Cloudflare Zero Trust con una freccia che indica la voce "Zero Trust".

2. In questa pagina, selezionare Tunnels nella sezione Networks

Menu laterale Cloudflare Zero Trust con una freccia che punta alla voce “Tunnel” nella sezione Rete.

3. Adesso Create a tunnel e seleziona il tunnel di tipo Cloudflared

Scelta tra Cloudflared e WARP Connector per creare tunnel sicuri su Cloudflare.

4. Inserisci un nome per il tunnel e premi Save tunnel

5. In questa sezione, scegli Docker poi copia e incolla il comando nel terminale che esegue il tuo Docker. Quando il connettore è online, premi Next.

Configurazione tunnel Cloudflare con Docker: installazione del connettore e connessione in sicurezza.

6. Scegli un sottodominio pubblico da usare come DNS e connettore pubblico. In Service inserisci l’IP o l’URL della tua istanza Home Assistant, poi clicca su Complete setup.

Configura tunnel Cloudflare verso dominio pubblico.

    Rendere sicuro il Tunnel Cloudflare con Access

    1. Accedi a Cloudflare e premi su Zero Trust

    Menu laterale di Cloudflare Zero Trust con una freccia che indica la voce "Zero Trust".

    2. In questa pagina, seleziona Applications dentro alla sezione Access

    Cloudflare Zero Trust side menu with an arrow pointing to the ‘Applications’ item under the Access section.

    3. Clicca su Add a new application e seleziona Self-hosted

    Selecting the ‘Self-hosted’ option when adding an application in Cloudflare Access.

    4. Inserisci un Application name e la Session duration, poi Add public hostname e inserisci il sottodominio e dominio creato in precedenza per il tunnel. Nella sezione Access policies seleziona una policy esistente oppure creane una nuova

    Inserimento del nome applicazione, durata sessione, aggiunta dell'hostname pubblico e creazione di una policy in Cloudflare Access.

    5. Procedi all’ultima pagina e premi su Save.

    By Giacomo

    Sistemista informatico. Fondatore e scrittore.