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
5 « J'aime »

Bonsoir,

Tout d’abord merci pour ce topic bien complet.

J’aurais juste besoin d’une petite précision à propos de l’adresse IP publique fournit par nos FAIs :

Jusqu’à maintenant la question ne se posait pas puisque ma Bbox a une adresse IP publique fixe. Même lorsque je la reboote , je retrouve la même adresse IP publique.

Mais en faite, je compte potentiellement changer d’opérateur et donc de box, et j’ai bien peur que l’adresse IP publique de la nouvelle box ne soit plus fixe et change d’un redémarrage à un autre de la box.

Du coup, est-ce que cela est géré par duckdns automatiquement ou faut-il à chaque redémarrage de la box, ré associer la nouvelle adresse IP publique à son Nom De Domaine Duck DNS ? Dans quel cas ça serait vraiment pas pratique…

Cette petite note dans la doc duckdns de Home Assistant a l’air de dire que c’est pris en charge :

Pouvez-vous me le confirmer ?

Tu as liké le bon tutoriel ( → https://forum1.hacf.fr/t/mise-a-jour-de-plusieurs-noms-de-domaine-sans-add-on/3991) si tu ne comptes pas utiliser l’add-on DuckDNS qui permet de configurer l’@IP en cas de changement.

De toute façon, je te conseille de le mettre en place maintenant.

Tu vas ensuite sur ton compte DuckDNS, tu mets une @IP bidon et tu exécutes une automatisation (présente dans le post liké :wink: ) pour vérifier que tout roule.

Cela permet de ne pas se soucier de l’opérateur

Hello Clemalex,

En faite justement j’utilise d’ores et déjà l’addon Duck DNS.

Si j’ai bien compris, 2 solutions s’offrent à moi (reprend moi si je me trompe) :

  • Soit j’utilise l’addon Duck DNS qui me permet de configurer une nouvelle @IP associé à mon Nom De Domaine. Mais cela se fait manuellement depuis le site de Duck DNS. Donc à chaque changement d’@IP publique, cela nécessitera une reconfiguration manuelle sur le site Duck DNS.

  • Soit j’utilise une automatisation (présente dans le post que j’ai liké plus tôt) pour automatiser l’association de mon @IP publique sur le site Duck DNS. Donc à chaque changement d’@IP publique, l’automatisation réassocie la nouvelle @IP à mon Nom De Domaine directement sur le site Duck DNS. Et l’accès HA depuis l’extérieur est toujours possible quelque soit l’@IP publique

L’add-on DuckDNS permet déjà de mettre à jour l’@IP (c’est sa fonction)

Tu n’as donc rien à faire de plus.

Tu fais comme je t’ai dis :

  1. Tu te note l’@IP renseigné dans l’interface de DuckDNS (sur le site web)
  2. Tu la changes et tu valides la mise à jour (sur le site web)
  3. Tu redémarre l’add-on
  4. Tu actualises le site web
  5. L’add-on aura envoyé l’@IP publique de ton équipement. (celle que tu as noté)
1 « J'aime »

Top merci pour la précision !!!

Je viens de faire le test et tu as tout fait raison l’addon fait bien son job : Mettre à jour l’@IP publique utilisé par mon équipement directement sur le site DUCK DNS.

Donc en faite, je peux changer d’opérateur, de box, d’adresse IP publique sans crainte puisque l’addon DUCKDNS fera toujours la mise à jour pour faire pointer l’@IP publique vers mon NDD c’est bien ça ? :sweat_smile:

je dormirais moins bête ce soir merci bcp man

1 « J'aime »

Les plus anciens parmi nous se souviendront de « C’est étudié pour » (Fernand Raynaud "C'est étudié pour" | INA).
Donc, oui.

1 « J'aime »