Networking & Accesso Remoto: Nginx Reverse Proxy

🌐 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.

  1. Domain Names: tuodominio.duckdns.org (o dominio custom).
  2. Scheme: http
  3. Forward Hostname/IP: 192.168.1.X (IP della VM HA).
  4. Forward Port: 8123
  5. 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 EsternaPorta InternaProtocolloDestinazione
8080TCPIP Nginx Proxy
443443TCPIP Nginx Proxy

📉 Percorso della Connessione (Mermaid)


💡 Note sulla Sicurezza (Critical Thinking)

  • Header di Sicurezza: In Nginx, è consigliato aggiungere gli header HSTS per 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

Built with Hugo
Theme Stack designed by Jimmy