🌐 Networking & Accesso Remoto: Nginx Reverse Proxy
::: info
Strategia di Rete:
Invece di aprire la porta 8123 (insicura), utilizziamo le porte standard HTTP (80) e HTTPS (443). Nginx funge da “intermediario”, ricevendo le richieste dall’esterno, verificando i certificati SSL e instradando il traffico verso la VM di Home Assistant all’interno della LAN.
:::
1. Assegnazione IP Statico (LAN)
Prima di configurare il proxy, Home Assistant deve avere un indirizzo IP che non cambi mai.
- Metodo: DHCP Reservation (Static Lease) sul Router.
- IP Assegnato:
192.168.1.X(sostituire con l’IP effettivo). - Perché: Se l’IP della VM cambia, il Reverse Proxy punterà a un “vicolo cieco”, interrompendo l’accesso.
2. Configurazione Nginx Proxy Manager (NPM)
Nginx Proxy Manager è lo strumento che gestisce i domini e i certificati.
Host Configuration
Per far funzionare correttamente Home Assistant dietro Nginx, è obbligatorio abilitare il supporto per i Websockets.
- Domain Names:
tuodominio.duckdns.org(o dominio custom). - Scheme:
http - Forward Hostname/IP:
192.168.1.X(IP della VM HA). - Forward Port:
8123 - Websockets Support: ✅ ON (Indispensabile per l’interfaccia di HA).
SSL & Let’s Encrypt
- Richiedere un nuovo certificato tramite NPM.
- Abilitare Force SSL per garantire che ogni connessione sia crittografata.
- Abilitare HTTP/2 Support per migliori performance di caricamento.
3. Configurazione Home Assistant (configuration.yaml)
Per motivi di sicurezza, Home Assistant blocca le connessioni che provengono da un proxy se non esplicitamente autorizzate. È necessario modificare il file di configurazione di HA.
::: danger IMPORTANTE
Senza questa configurazione, riceverai un errore 400: Bad Request quando proverai ad accedere dall’esterno.
:::
# Aggiungere al file configuration.yaml
http:
use_x_forwarded_for: true
trusted_proxies:
- 192.168.1.Y # Sostituire con l'IP della macchina dove gira Nginx
4. Port Forwarding sul Router
Sul router di casa è necessario aprire solo le porte indispensabili verso l’IP del server dove gira Nginx (non verso la VM di Home Assistant).
| Porta Esterna | Porta Interna | Protocollo | Destinazione |
|---|---|---|---|
| 80 | 80 | TCP | IP Nginx Proxy |
| 443 | 443 | TCP | IP Nginx Proxy |
📉 Percorso della Connessione (Mermaid)
💡 Note sulla Sicurezza (Critical Thinking)
- Header di Sicurezza: In Nginx, è consigliato aggiungere gli header
HSTSper forzare il browser a usare sempre HTTPS. - IP Ban: In Home Assistant, abilita l’autobanning dopo un certo numero di tentativi falliti:
auth_provider: - type: homeassistant ip_ban_enabled: true login_attempts_threshold: 5 - Geoblocking: Se il tuo router o firewall lo permette, limita l’accesso alla porta 443 solo dagli IP del tuo paese per ridurre i tentativi di attacco da botnet straniere.
Ultimo aggiornamento: {{UPDATE_DATE}} | Tags: #Networking #ReverseProxy #Nginx #SSL #Security