Cet article à pour but de présenter des solutions pour vous permettre d’accéder à votre serveur Home Assistance à distance, depuis votre mobile par exemple ou un PC connecté à une borne Wifi publique ou ailleurs. Il n’est pas détaillé la mise en oeuvre de ces solutions, des articles annexes sont ou seront publiés à cet effet.
Note : un article similaire a été publié par @golfvert, nous fusionnerons les deux articles afin de ne garder qu’une source d’information.
Niveau
- Débutant / Intermédiaire / Avancé
Prérequis
- Notion de réseau informatique (DNS, IP, Parefeu, …)
Challenges
Pour vous connecter sur votre serveur Home Assistant (HA) à distance, vous allez être confrontés à plusieurs challenges qui vous amèneront à un choix d’architecture :
- Connaître l’IP publique de votre Box internet qui dans la majorité des cas peut changer régulièrement (volonté des FAIs - Fournisseur d’Accès à Internet - pour diverses raisons)
- Modifier les paramètres réseaux de votre Box internet donc savoir accéder et connaître l’interface d’administration
- Gérer un enregistrement DNS, soit avec un nom de domaine (NDD) propre soit avec un service de DNS dynamique (DynDNS, DuckDNS, etc)
- Gérer un certifcats SSL pour sécuriser les données votre client (le navigateur ou l’application mobile que vous allez utiliser pour vous connecter) et votre serveur Home Assistant
- Configurer HA pour un accès externe ET interne en utilisant le même NDD (pour vous simplifier la vie)
- Et enfin votre appétence à l’informatique et ses technologies
Solutions
Face à ces challenges, différentes solutions sont possibles et toutes ne sont pas égales en terme de sécurité, de mise en oeuvre ou d’accessibilité. Ces solutions sont :
- un accès direct à Home Assistant;
- via un proxy inversé (reverse proxy);
- via le service de Nabu Casa (concepteurs de Home Assistant);
- via un prestataire tier de services réseaux;
- via un VPN.
En compléments :
- Des services externes comme DuckDNS ou Cloudflare
- Une Box qui permet le ‹ Loopback › ou un service DNS local
Passons en revue ces différentes solutions …
AVANT TOUTE CHOSE : Vous devez considérer les accès vers votre réseau avec des communications chiffrées, donc nous parlerons ici uniquement d’accès via HTTPS et non HTTP !
1. Accès direct
L’accès direct est le plus simple en terme d’architecture mais pas forcément le plus souple et le plus sécurisé.
Principe :
Le principe est tout simplement de rediriger les requêtes de votre client (app mobile/navigateur) qui arrivent sur votre Box (vous avez définit votre nom de domaine - ndd.tld - avec votre IP publique) vers l’ip interne (du style 192.x.x.x:8123) de votre serveur Home Assistant.
Avantage(s) :
- Peu d’élements à configurer : la Box et HA
Inconvénient(s) :
- Peu sécurisé : HA est directement exposé via un NAT de votre Box et cette dernière n’a pas de fonction de Parefeu trés développée
- Configuration via des fichiers en Yaml (ce format n’est pas ‹ user friendly › donc destiné déjà à des utilisateurs avertis)
- Association exclusive d’un port de l’IP publique de votre Box à HA (vous pourriez évidemment utiliser d’autres ports pour d’autres services)
Les tutos associés :
- Accéder a Home Assistant depuis l’extérieur en HTTPS avec un NDD Freebox et Let’s Encrypt
- Redirection des ports de votre Box internet
2. Via un proxy inversé
La mise en place d’un proxy inversé complexifie un peu l’architecture mais peut la rendre plus abordable (suivant la solution de proxy inversé utilisée) et surtout la sécuriser un peu mieux que la solution précédente.
Principe :
Le principe ici est de mettre ce proxy inversé entre votre Box et votre serveur Home Assistant. De ce fait c’est votre proxy inversé qui prend en charge la connexion sécurisée avec votre client. Le reste de la communication vers votre serveur Home Assistant peut rester non chiffrée (HTTP).
Avantage(s) :
- Sécurité accrue avec l’ajout d’un service intermédiaire
- Possibilité d’exposer d’autres services que HA sur l’extérieur (Grafana, Synology, etc) sur le même port que HA
- Configuration SSL plus souple suivant le produit de proxy inversé
Inconvénient(s) :
- Complexification : configuration d’un service intermédiaire et sa compréhension dans l’architecture
Tutos associés :
- Accès de l’extérieur en HTTPS avec Nginx Proxy Manager
- Home Assistant via Reverse Proxy Synology
- Redirection des ports de votre Box internet
3. Via Nabu Casa
Nabu Casa est la société créée par les fondateurs Home ASsistant. Bien que HA soit et devrait rester totalement Open Source, elle propose néanmoins des services dont un service d’accès à distance à votre environnement nommé Home Assistant Cloud.
Principe :
Le principe est assez simple puisqu’il fournit un accès depuis leur portail vers votre serveur HA, vous avez uniquement besoin de configurer votre HA avec ce service.
Avantage(s) :
- Rien à configurer sur votre Box (pas de NAT)
- Pas de nom de domaine à gérer
- Une simple configuration dans HA
- Sécurité d’accès à votre réseau (Nabucasa fait le relais)
- Un essai de 31 jours
Inconvénient(s) :
- Un abonnement mensuel
- Accès uniquement à HA (tout comme l’accès direct)
4. Via un opérateur tier de services réseaux (autre que Nabu Casa)
Cette solution fait appel à un opérateur tier pour se connecter à son réseau, tout comme la solution Nabu Casa. Sauf que ce n’est pas natif Home Assistant et qu’il vous faudra ajouter un service supplémentaire dans votre réseau.
Principe :
Ceci est UN schéma possible, tout dépend des services fournit par l’opérateur (VPN, DynDNS, Proxy inverse, certificat SSL, etc). Dans l’exemple ci-après, l’opérateur fournit un service de proxy inverse et un certificat valide dans son domaine.
Avantage(s) :
- Accès via un tier de confiance qui gère une partie de la sécurité
Inconvénient(s) :
- Ne vous affranchi pas de gérer un certificat pour la communication entre l’opérateur et votre réseau (sauf si service VPN)
- Beaucoup de ‹ services › à gérer (complexité)
5. Via un VPN
Cette solution est à but informative, dans le sens où c’est une possibilité, mais la mise en oeuvre technique est bien plus ardue … et si vous êtes intéressé c’est que vous devriez avoir les compétences nécessaires (ou être suffisamment averti) pour mettre en pratique !
Principe :
Le schéma présente de façon très simplifiée le principe. Via un client VPN installé sur votre mobile ou PC distant, vous aurez un accès à votre réseau local directement (moyennant quelques contraintes dépendantes de routage).
Nota : Une offre (gratuite à ce jour) de la société ZeroTier permet de créer un VPN sans avoir besoin de toucher à sa Box internet, un plus indéniable d’autant qu’un add-on Home Assistant existe !
Avantage(s) :
- Accès directe à tout votre réseau (pas seulement Home Assistant et pas seulement en HTTPS)
- Accès sécurisé
Inconvénient(s) :
- Etre un utilisateur très avertis
- Client VPN à installer sur son mobile ou PC distant
6. Services complémentaires
Des services complémentaires peuvent être utiles pour simplifier et automatiser certaines parties de ces solutions :
- Service de gestion de votre DNS avec votre IP dynamique (ex DuckDNS, DynDNS, Cloudflare, …)
- Service DNS local (ex dnsMasq) pour déclarer le même nom internet en local sans faire de loopback
Une question, un problème
Ressources
Tutos :
- Accéder à Home Assistant depuis l’extérieur avec l’extension DuckDNS
- Redirection des ports
- Accéder a Home Assistant depuis l’extérieur en HTTPS avec un NDD Freebox et Let’s Encrypt
- Accès de l’extérieur en HTTPS avec Nginx Proxy Manager
- Home Assistant via Reverse Proxy Synology