Accéder à Home Assistant à distance

licence

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.

Topology-Direct

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 :

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 :

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.

Topology-NabuCasa

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

Topology-VPN

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 :slight_smile:
  • 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

Besoin d'aide ? Cliquez ici !

Ressources

Tutos :

Suivi des modifications

  • 10/02/2021 : Modifications mineures suivant des retours de Homies
  • 06/02/2021 : Ajout des solutions évoquées (VPN et ZeroTier) dans l’article de @golfvert
  • 02/02/2021 : Création @Pozzi
3 « J'aime »