cloudflared, Z2MQTT dans HA

Je montre ici comment configurer un accès à sa box domotique Home Assistant depuis l'extérieur de manière simple et asses sécurisé sans avoir à dépenser une fortune dans un service cloud tiers.

J'utilise des outils gratuits et open source pour mettre en place son propre serveur de cloud personnel et sécurisé, afin de pouvoir accéder à mon installation Home Assistant de n'importe où dans le monde

Suivez simplement les étapes que je vais détailler et vous pourrez profiter d'un accès à distance facile et sécurisé à votre installation Home Assistant.

Notez que la sécurité est toute relative avec cette solution, cependant c'est la moins pire de toute lorsque l'on n'est pas un As de la cyber sécurité 

Deux solutions simple sont possible tout en ayant une sécurité acceptable

Solutions peu chers voir même complètement gratuite comme ZT one ou bien la peu solution avec Cloudflare et qui demande d'acheter un nom de domaine, attention certains nom de domaine son cher voit très cher..

 

1) Tunnel tiers avec l’application ZéroTier One

Ultra simple mais avec une contrainte et pas des moindres..

  • Dans son HA, Paramètres/ Modules complémentaires. Installer Add on : ZéroTiers One
  • Allez sur site de ZéroTier.com et S'inscrire
  • Puis crée un Network
  • Lui donner un nom "Mon Homme Assistant" par exemple
  • Une fois l’email validé le compte est donc créé, allez vers le bas de la page dans la section "Advanced"
  • Sélectionnez une plage IP, de votre réseau interne, en général les réseaux internes commencent toujours par 192.168....
  • Je choisis : 192.168.192.*
  • Avant de retourner sur son HA, copier le "Network ID"
  • De retour dans HA, retourner dans l'addon "Zéro Tiers One" dans l’onglet "Configuration"
  • Dans la section "Options" dans le champ "Networks’ Coller le "Network ID" précédemment copié.
  • Attention dans le champs, lorsque l’on colle l’ID, resélectionné l’ID pour qu’il soit pris en compte
  • Démarrer l’application
  • Vérifier dans les logs
  • Retourner sur le site ZéroTier.com
  • On doit voir apparaître notre équipement Raspberry
  • Donner un nom et une description
  • Autoriser en cochant la case à gauche, une IP apparaît
  • Cette IP servira pour la connexion de appli "Compagnon” sur nos téléphones.
  • Installer HA Compagnon sur le téléphone
  • Installer l'appli (Android) ZéroTier One et l'ouvrir
  • Ajouter un Network
  • Recopier le ID Network précédent (sur le site de ZeroTier.com)
  • Puis cliquer sur AD
  • Accepter l'ajout VPN, accepter la localisation
  • L'accès n'est pas encore totalement autorisé, retour Sur le site ZéroTier.com pout le voir apparaître et autoriser la connexion en cochant la case de gauche.
  • Retourner sur le téléphone pour vérifier.
  • Pour être sûr de la bonne connexion sur le téléphone désactiver le wifi de manière à basculer en 4G
  • Lancer HA Compagnon du téléphone, saisir l’adresse IP manuellement pour cela la bonne IP se trouve dans votre tableau de bord sur le site ZéroTier.com
  • "http://192.168.192.××:8123"
  • IP externe indiqué pour le Raspberry

Voilà...

A savoir..

Les + : gratuit totalement, paramétrage simple

Les - : Lorsque l'application ZeroTiers One est activée sur votre téléphone elle bloquera vos autres applications.
Si vous l'arrêtez vous perdez l'avantage que HA vous détecte..

 

ico-vrai 2) Solution avec un nom de domaine et Cloudflare

Etape 1 : Choisir et acheter un nom de domaine, plusieurs solutions : google domaine, OVH, PlanetHoster, etc..

Le budget est en moyenne de 8 à 12€ par an. 

J'ai pris le miens chez OVH pour moins de 10€ pour 3 ans, on dire que c'est peu cher 

 

Etape 2, créer un compte

Si ce n'est pas déjà fait, créer un compte (gratuit) sur le site de cloudflare.com

 

 Sur votre page d'accueil Cloudflare, enregistrer un nouveau domaine en cliquant sur "Ajouter un domaine"

Une fois votre nom de domaine enregistré, cliquer dessus, puis cliquer sur "DNS" dans le menu de gauche


 

 

Etape 3, routage du DNS

Cloudflare : Dans la configuration DNS/Serveur de noms Cloudflare, recopier les 2 noms de serveurs "Valeur" dans la zone DNS de votre hébergeur de nom de domaine

hébergeur de nom de domaine : Aller sur votre panel de votre nom de domaine puis aller dans la zone DNS. Recopier les 2 noms de serveurs de chez Clouflare

Prévoir un délai de 24h à 48h pour que le nouveau routage se propage sur la toile 

 

Etape 4, préparation HA

  • Dans votre Home Assistant on va installer l'addon Clouflared
  • Pour ce faire, aller dans HA / Paramètres puis dans "Modules complémentaires"
  • Cliquer sur les 3 petits points en haut à droite, cliquer sur "Dépôts" puis coller le lien du dépôt GitHub dans le champ.
  • Lien vers le dépôt Cloudflare
  • Penser à actualiser la page une fois terminé
  • Cliquer sur l'Addon, puis sur "Installer"
  • Aller sur l'onglet "Configuration" et dans la section "Option" compléter le champ "External Home assistant Hostname" par votre nom de domaine "mondomaine.fr" par exemple (sans HTPP ou HTPPS)


  • Cliquer sur "Enregistrer" enfin retourner sur l'onglet "Info" et cliquer sur "Démarrer" 
  • Puis consulter l'onglet "Journal"
  • Maintenant il va falloir s'authentifier afin que Cloudflare crée un tunnel. Copie le lien "marqué"

cloudflare 3

 Connectez vous a votre tableau de bord chez Clouflare.com, dans un autre onglet collez le lien indiqué dans le journal de l’addon dans la barre d'adresse de votre navigateur.

 

Etape 5, authentification Cloudflare

Une page Cloudflare s'affichera, apparaitrons vos noms de domaines, Sélectionner le nom de domaine à authentifier. Celui précédemment indiqué dans la configuration de l’addon Cloudflared.

cloudflare 4

 Clouflare vous demandera de confirmer votre choix,

Une fois l'authentification réussit

cloudflare 5

 A ce stade, si vous taper dans votre navigateur mondomaine.fr vous arriverez sur une page 400. Ce qui est une bonne nouvelle en soit puisqu'il arrive a trouver le domaine mais seulement HA n'est pas encore configuré.

 

Etape 6, configuration de HA et fin

Ils nous faut maintenant configurer HA. Retour au module de Cloudflared, onglet "Documentation" dans la section "Home Assistant configuration" 

Vous trouverez ce code : 

http:
use_x_forwarded_for: true
trusted_proxies:
- 172.30.33.0/24

Ajouter ce code dans votre fichier "Configuration.yaml" Utiliser l'addon "File editor" pour le faire depuis HA

Sauvegarder et redémarrer Home Assistant. Retourner dans votre navigateur et rafraichissez la page précédente (erreur 400) Et là miracle on arrive sur son HA

 

Accéder à la vidéo qui m'a inspirée

https://youtu.be/oqO9c4aNaAU?si=4PgjjGKgUL2wqeKW

Lien de l’addon cloudflare : https://github.com/brenner-tobias/ha-addons 

bonus a tester

Code à ajouter à configuration.yaml :

frontend:

  themes: !include_dir_merge_named themes

 

Un jour tu change de nom de domaine !

Et là c'est la kata.

Voici comment j'ai fini par retrouver un accès avec un nouveau nom de domaine

  1. Supprimer le tunnel précédemment crée chez Cloudflare en allant à votre tableau de bord,
  2. Dans le menu de gauche aller sur "Zero Trust" puis sur "Réseaux" puis sur "Tunnels"
  3. Supprimer le tunnel, en général il est nommé "homeassistant"
  4. Être patient, attendre plusieurs dizaines de minutes
  5. En attendant, avant de supprimer l'application "Cloudflared"
  6. Aller dans l'Addon "Configuration" dans la 1er section, cliquer sur les 3 points en haut à droite
  7. Cliquer sur "Réinitialiser la configuration"
  8. Retourner sur le 1er onglet "Info" de l'addon et "Désinstaller"
  9. Redémarrer Home assistant
  10. Retour dans "Modules complémentaires" puis sur la boutique, bouton en bas à droite
  11. Réinstaller "Cloudflared"
  12. Reprendre l'étape 4 (plus haut)

 

Rajoutons une couche sécurité à notre nouvel accès

Déjà pour ceux qui n'ont pas un compte pro chez Cloudflare, on peut activer les sécurités de protections contre les bots.

securite bots cloudflare

 

Passons en revu les réglages pour le HTTPS. Normalement OVG vous fournit le certificats en www et sans les 3w.

https cloudflare

 

Vérifier, plus bas

https2 cloudflare

 

Pour celui qui à un compte Pro

il est possible d'accéder a ces paramètres complémentaires :
image

L'interface à dû changer mais vous pouvez établir une règle pour limiter les requêtes à la France (cela enlève la majorité des tentatives d’accès)

cloudflare regle france