Accès extérieur avec DuckDNS et Nginx en IPv6

Hello, voila une petite présentation d’une manière d’accéder à Home Assistant de l’extérieur en IPv6.

Je précise tout de suite que je ne suis pas un spécialiste, surtout pas en réseau, je ne peux donc pas dire que c’est un tuto à proprement parler. Si certaines personnes maîtrisant mieux le réseau veulent ajouter des précisions/commentaires, surtout n’hésitez pas.
Je donne les grandes lignes importantes que j’ai suivi, mais pas le détail qui est largement documenté/expliqué (duckdns / nginx…).

Le contexte :

  • Mon installation fonctionne entièrement sous docker, avec un vieux PC transformé en hyperviseur Proxmox. J’ai un conteneur dédié pour chaque utilisation (HA / Zigbee2MQTT / MQTT / DuckDNS / Nginx…)
  • J’ai une box Red by SFR en CGNAT, donc pas d’adresse IPv4 publique.
  • Je n’ai pas de nom de domaine, et pas l’utilité d’en avoir. Je suis donc passé par DuckDNS.
  • Etant sous docker, j’ai la version HA Core d’installé, donc pas d’add-on.

Je cherchais donc le moyen de configurer mon installation en IPv6. J’ai beaucoup fouillé sur les forums français et anglais. Beaucoup recommandait de faire une demande de rollback afin d’avoir une IPv4 publique. Mais je voulais essayer de configurer l’ensemble tout de même en IPv6 étant donné que c’est normalement l’avenir.

ATTENTION: La solution que j’ai trouvé ne fonctionne qu’à condition que le terminal via lequel on accède à distance soit aussi en IPv6 (je suis parti quelques jours au Maroc, et ma connexion WiFi étant en IPv4 je n’ai pas réussi à accéder à HA).
Pour ma part, de mon smartphone je n’ai pas de souci, je suis en IPv6.

1ère étape : Nginx Proxy Manager

  • Avoir Nginx Proxy Manager d’installé.
  • Récupérer l’adresse IPv6 de cette installation (pour ma part étant donné que j’ai un conteneur docker spécifique, j’ai une adresse IPv6 dédiée). On peut retrouver cette adresse dans l’interface de gestion de la box.

2ème étape : DuckDNS

  • Avoir DuckDNS d’installé.
  • Avoir un compte DuckDNS
  • Créer un nom de domaine.
  • Une fois créé, entrer l’adresse IPv6 de Nginx Proxy Manager dans la partie IPv6:
  • Valider en appuyant sur « update ipv6 »
  • Supprimer l’adresse current ip (s’il y en a une)
  • Valider en appuyant sur « update ip »

Il est important de renseigner l’adresse IPv6 de Nginx Proxy Manager. J’ai testé en mettant l’adresse IP directement de Home Assistant, mais sans succès.

3ème étape : Configuration Nginx Proxy Manager

  • Se rendre sur l’interface de NPM

  • Se rendre sur « Proxy Hosts »

  • Appuyer sur « Add Proxy Host »

  • Dans la fenêtre, renseigner les différentes informations nécessaires :
    Nom de domaine (créé précédemment sur DuckDNS)
    Scheme HTTP
    L’adresse IPv4 interne à votre réseau qui permet de se connecter à Home Assistant
    Le port 8123
    Cocher Websockets Support

  • Se rendre dans l’onglet SSL
    Cocher Force SSL
    Cocher Use a DNS Challenge
    Choisir DuckDNS dans DNS Provider
    Remplacer your-duckdns-token par votre token
    Accepter les conditions et valider.

Si tout se passe bien, vous aurez accès à Home Assistant :

Avec cette méthode, je n’ai eu aucun paramétrage à faire sur ma box (redirection de ports ou autre…).
J’ai également configuré d’autres accès extérieur via NPM. Mais toujours en mettant dans DuckDNS l’adresse IPv6 de NPM. C’est Nginx qui s’occupe ensuite de rediriger vers la bonne adresse IP interne à mon réseau.

N’hésitez pas si vous avez des commentaires, améliorations :blush:

1 « J'aime »

+1 pour l’IPv6.
Mais je ne laisserais pas des flux en clairs sur mon réseau local, surtout s’ils sont susceptibles de passer par le WiFi.

Avec une config similaire, RED box en CGNAT, Proxmox, HA … j’ai opté pour une solution que je trouve plus simple.
Tous mes systèmes sont en dual stack (Ipv4/IPv6) mais je n’utilise qu’ IPv6.

Chaque serveur a plusieurs @IPv6 allouées automatiquement par la box (pas par le DHCP IPv6), dont une est fixe (en tout cas depuis 4 mois que j’ai fait ma config) et accessible depuis l’extérieur

En interne, c’est le DNS IPv6 de ma box qui traduit mes noms de serveur en ces @IPv6 fixes.
En externe, depuis mon téléphone, un favori m’évite de me souvenir de cette adresse longue comme un jour sans pain.

Pas besoin de DuckDNS, pas de Ngnix, une CA et des certificats serveurs générés par mes soins (il faut par contre que j’installe la CA sur les navigateurs dont je me sers), configuration des firewall de la box, de Proxmox, des VM… pour ne laisser passer que les ports nécessaires, et roule ma poule.

Effectivement, le wifi passe en clair.
Mais si je veux changer ça, ça implique pas mal de paramétrages de certificats, et j’avoue que je ne maîtrise pas.

J’habite en pleine campagne, et mon HA ne me sert pour l’instant qu’à gérer mon chauffage et ma piscine (et quelques prises).
La prochaine étape c’est de sécuriser la maison avec détecteur et alarme, là je regarderai plus dans le détail.