Come mettere in sicurezza Home Assistant con Cloudflare

Per coloro i quali non sanno cosa sia Home Assistant, ne abbiamo parlato in un precedente articolo che potete leggere QUI.

In quest’articolo vedremo come mettere in sicurezza il vostro HA configurato per essere accessibile dalla rete internet pubblica.

L’articolo presuppone che abbiate a disposizione:

  • Un vostro dominio personale
  • Aver configurato il vostro dominio sui DNS di CloudFlare.

Se dovete ancora registrare il vostro dominio consiglio di farlo su Keliweb al costo di € 9.90 annui senza sorprese e permette il pieno controllo dei name server necessari per far puntare il vostro dominio su Cloudflare.

Step 1 – Cambiamo la porta del nostro Home Assistant

La porta di default di Home Assistant (8123) non è supportata per la modalità di accesso mediante proxy di Cloudflare.

Attualmente le porte HTTPS supportate sono solo le seguenti:

  • 443
  • 2053
  • 2083
  • 2087
  • 2096
  • 8443

Scegli una delle porte dalla lista, e configura l’integrazione HTTP di Home Assistant HTTP nel file  configuration.yaml:

# esempio di configurazione configuration.yaml
http:
  server_port: 8443 # Usa la porta scelta

Riavvia Home Assistant e verifica di poter ancora accedere ad HA localmente con la nuova porta.

Aggiorna il port forwarding del tuo router domestico con la nuova porta, al fine di poter accedere al vostro Home Assistant attraverso la rete internet.

Step 2 – Crea un sottodominio al tuo dominio principale su CloudFlare

Sul pannello di controllo di Cloudflare, crea un sotto dominio nella sezione DNS del dominio stesso.

  • Clicca su + Add Record
  • Seleziona tipo di record A e aggiungi il tuo dominio (noi abbiamo usato casa nell’esempio)
  • Nel campo IPv4, inserisci l’IP pubblico della tua connessione domestica. Se non lo conosci puoi verificarlo cliccando qui
  • Assicurati che la voce Proxy Status sia impostata su Proxied. In questo modo CloudFlare potrà proteggere il tuo server evitando di esporne l’IP pubblico.

Se la tua connessione ad internet non ha un IP statico assegnato dal provider, devi abilitare l’addon “Home Assistant Cloudflare” che permette, ogni qualvolta il vostro IP pubblico cambierà, di mantenere aggiornati i record DNS.

Step 3 – Abilita le richieste via proxy su Home Assistant

Home Assistant integra alcune regole di sicurezza contro le connessioni via proxy.

Per permettere a CloudFlare di funzionare correttamente come proxy, modifica la sezione http sul file di configurazione (configuration.yaml) come di seguito:

# Aggiungi use_x_forwarded_for
use_x_forwarded_for: true
# aggiungi gli IP fidati da cui CloudFlare effettuerà gli accessi (lista aggiornata al link //www.cloudflare.com/ips-v4)
trusted_proxies:
  - 173.245.48.0/20
  - 103.21.244.0/22
  - 103.22.200.0/22
  - 103.31.4.0/22
  - 141.101.64.0/18
  - 108.162.192.0/18
  - 190.93.240.0/20
  - 188.114.96.0/20
  - 197.234.240.0/22
  - 198.41.128.0/17
  - 162.158.0.0/15
  - 104.16.0.0/13
  - 104.24.0.0/14
  - 172.64.0.0/13
  - 131.0.72.0/22

A questo punto dovreste essere in grado di accedere al vostro Home Assistant mediante il nuovo sottodominio creato.

Step 4 – Configura un certificato SSL

Cloudflare fornisce certificati SSL gratuiti in modo automatico. Prova a digitare https://<sottodominio>.<dominio>:<porta> e dovresti essere in grado di accedere ad Home Assistant attraverso connessione HTTPS protetta da certificato SSL.

Questa funzionalità fornisce connessione crittografata dal tuo browser web a CloudFlare, ma la connessione da CloudFlare al tuo server è ancora non crittografata.

Per proteggere la comunicazione tra Cloudflare e Home Assistant, dovremo creare un “Origin Certificate”.

Su Cloudflare, vai alla voce SSL/TLS:

  • Clicca su Origin Server
  • Clicca su Create Certificate

Inserisci il sottodominio precedentemente creato per generare un certificato cosi come mostrato in figura.

Nella finestra successiva verrà visualizzato il contenuto dei due certificati.

  • Copia il contenuto di Origin Certificate e salvalo in un file chiamato origin.pem
  • Copia il contenuto di Private Key  e salvalo in un file chiamato privkey.pem

Salva i due file nella stessa directory in cui risiede il file di configurazione sul server Home Assistant.

Aggiorna il file  configuration.yaml come di seguito (avendo cura di indicare il path corretto dei due file precedentemente creati):


http:
  server_port: 8443 # la porta scelta negli step precedenti
  ssl_certificate: /config/origin.pem
  ssl_key: /config/privkey.pem

Riavvia Home Assistant (puoi farlo anche da cli con il comando: ha core restart ) e prova ad accedere al tuo Home Assistant all’URL pubblico:

https://<sottodominio>.<dominio>:<porta>

Puoi opzionalmente abilitare la crittografia  Full (strict).

Ulteriori implementazioni di sicurezza sono certamente possibili ma ne parleremo in un articolo successivo. Ad esempio vedremo come configurare le regole firewall su Home Assistant affinchè l’accesso remoto sia possibile solo da CloudFlare.

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.

Ads Blocker Image Powered by Code Help Pro

Ab blocker rilevato!!!

Per favore disabilita il blocco della pubblicità per proseguire.