Accesso Remoto e Sicurezza
In passato l’accesso esterno ai servizi avveniva tramite port forwarding diretto sul router e autenticazione locale gestita separatamente da ogni servizio.
Il nuovo sistema utilizza un approccio moderno, sicuro e centralizzato, basato su un Reverse Proxy (Nginx) e un Identity & Access Management unico (Authentik) in modalità Proxy Provider.
🧩 Componenti Principali
Host Hardware: Intel NUC (Mini PC).
Nginx (Host): Reverse proxy unico esposto su Internet (Porte 80 e 443), gestione cifratura SSL/TLS e regole di routing/bypass.
Certbot (Host): Rilascio e rinnovo automatico dei certificati TLS/SSL di Let's Encrypt tramite la sfida ACME webroot sulla porta 80.
Authentik Server (Docker Container): Gestisce sia l'autenticazione degli utenti (IAM) sia l'inoltro ai servizi come Proxy Provider tramite il suo Embedded Outpost, eliminando la necessità di container intermediari come OAuth2 Proxy.
PostgreSQL & Redis (Docker Containers): Database principale per utenti/configurazioni e cache veloce per le sessioni di Authentik.
Servizi Interni (Domoticz, Node-RED, ecc.): Container o servizi locali in ascolto su porte HTTP interne, non esposti sul router.
🔐 Processo di Autenticazione e Routing
1. Accesso Iniziale (HTTPS)
L’utente raggiunge l’host tramite HTTPS (es. [https://nodered-miodominio.freeddns.org](https://domoticz-miodominio.freeddns.org)). Nginx gestisce il certificato SSL ed è l’unico punto esposto al router sulla porta 443.
2. Controllo delle Regole di Routing in Nginx
Nginx valuta la richiesta in base al dominio e alle regole del file di configurazione:
Caso A (Servizi Protetti): Inoltra la richiesta al motore di Authentik (porta 9000).
Caso B (Nextcloud): Inoltra direttamente il traffico al servizio, che gestisce la propria autenticazione in autonomia.
Caso C (Bypass API): Se la richiesta proviene dall'IP di un servizio di monitoraggio/integrazione esterno (es. Controlicz), Nginx la invia direttamente alla porta locale di Domoticz (8081), bypassando la schermata di login.
3. Autenticazione via Authentik (Proxy Provider)
Per tutti i servizi protetti:
Authentik verifica se l'utente possiede un cookie di sessione valido.
Se l'utente non è autenticato, viene reindirizzato alla schermata unificata di login di Authentik.
Se l'utente è autenticato, l'Embedded Outpost di Authentik gestisce il "trasbordo" ed è autorizzato a far passare il traffico verso la porta HTTP locale del servizio target (es. Node-RED :1880 o Domoticz :8081).
4. Gestione della Porta 80 e Rinnovi SSL
Tutte le chiamate HTTP sulla porta 80 vengono reindirizzate automaticamente a HTTPS, ad eccezione del percorso /.well-known/acme-challenge/ riservato a Certbot per garantire il rinnovo automatico e trasparente dei certificati Let's Encrypt.