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 usatocasa
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 suProxied
. 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 chiamatoorigin.pem
- Copia il contenuto di
Private Key
e salvalo in un file chiamatoprivkey.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.