Met een duckdns.org (https) sub-domein beveiligd met je thuis IP-adres verbinden

Nadat ik al lang op zoek was naar een mogelijkheid om “van buiten” mijn lokale netwerk secure (dus met https) met mijn home Assistant server te kunnen verbinden las ik op deze website het artikel “Access Your Home Assistant Server Remotely With DuckDNS and Let’s Encrypt” hoe dat kan (Met dank aan Ravi Singh).
Dit artikel was precies de oplossing en hoewel ik nu geen secure subdomein van mattizz.nl heb, komt deze oplossing dicht in de buurt. Volgens mijn webhoster wijst het door mij aangemaakte mattizz.nl subdomein (A-record) naar mijn (internetprovider) thuis IP-adres en is deze verbinding niet te versleutelen.
Het subdomein bij Letsencrypt versleutelen lukte niet omdat Letsencrypt dan ziet dat het mattizz.nl domein al een DNS verwijzing heeft en deze niet gewijzigd kan worden door Letsencrypt.

Maar hieronder de oplossing:
Krijg veilig toegang tot je slimme huis via internet zonder abonnementskosten te betalen.
Als u veilig toegang wilt krijgen tot je Home Assistant-instantie via internet, kunt u kiezen voor het eigen cloudabonnement van het platform, genaamd Nabu Casa. Hiermee hebt je niet alleen toegang tot jouw slimme huis en kun u al je apparaten overal bedienen, maar ondersteunt u ook de ontwikkelaars.
Als u echter geen maandelijks abonnementsgeld wilt betalen, kunt u in plaats daarvan de add-ons DuckDNS en Let’s Encrypt gebruiken om Home Assistant te configureren en veilig toegang te krijgen tot je slimme huis via internet.

Voordat je begint
We zullen de ‘port forwarding’-methode gebruiken om onze lokale Home Assistant-server bloot te stellen aan internet. Hoewel port forwarding je op afstand toegang geeft tot je smart home, kan het ook gevaarlijk zijn als je de verbinding niet beveiligt. Wanneer je een lokale server zoals Home Assistant blootstelt aan het boze internet via een port forwarding-methode, bestaat er altijd een risico op ongeautoriseerde toegang. Bedreigingsactoren kunnen je netwerk binnendringen en volledige controle over je apparaten hebben. Als je de verbinding echter versleutelt met SSL/TLS (https) en enkele best practices volgt terwijl je de server blootstelt aan de buitenwereld, kun je dergelijke gevallen voorkomen en veilig toegang krijgen tot de server.
Toevoeging: Uiteraard is het hierbij aan te raden om 2FA (Two-Factor Authentication) op de inlog van Home Assistant te zetten zodat de beveiliging nog verder wordt verhoogd. Hier meer uitleg over het instellen daarvan.

Het DuckDNS Subdomain instellen
Ga naar DuckDNS.org en log in met je Google-, Reddit-, GitHub-, Twitter- of Persona-account. Voltooi de captcha en maak vervolgens een DuckDNS-subdomein aan. De naam moet uniek zijn en bij voorkeur gemakkelijk te onthouden. We zullen deze URL gebruiken om op afstand verbinding te maken met onze Home Assistant-instantie.

Het subdomein, indien beschikbaar, wordt aan je account toegevoegd. Zorg ervoor dat je je openbare IP-adres in het huidige IP-veld typt (bij mij was het al ingevuld). Je kunt je openbare IP-adres vinden door bijvoorbeeld naar de website https://www.watismijnip.nl te gaan.
Kopieer ook het DuckDNS-token. Bewaar dit token veilig, want het is vertrouwelijk.Port Forward instellingen op de router
Log in op je router en configureer de port forwarding om van buiten je netwerk, op poort 8123 toegang te krijgen tot de Home Assistant interface. Gebruik Google Zoeken om te leren hoe u port forwarding kunt inschakelen in je specifieke routermodel. Je kunt ook naar Port Forward gaan en op de fabrikant van je router klikken, en vervolgens op het modelnummer of de naam om te zien hoe je port forwarding in je router kunt inschakelen. Je kunt ook verschillende videogidsen op YouTube vinden over hoe je port forwarding in verschillende routers instelt. Je moet twee TCP-poorten forward configureren:
– 8123 voor toegang op afstand tot de Home Assistant interface
– 443 om integraties zoals Alexa Media Player te gebruiken

Configureer DuckDNS Add-On in Home Assistant
Installeer en configureer de DuckDNS add-on in Home Assistant door deze stappen te volgen:
1. Open Home Assistant en ga naar Instellingen > Add-ons,
2. Klik op de Add-On Store-knop en zoek naar de DuckDNS-add-on,
3. Selecteer de DuckDNS-add-on uit de zoekresultaten en klik vervolgens op de knop Installeren
4. Ga na de installatie naar Configuratie en klik bovenaan op de drie puntjes. Kies Bewerken in YAML.

Plak de volgende code in de YAML-editor. Zorg ervoor dat je het token en de domein-URL vervangt door je DuckDNS-subdomein-URL en token:

Klik op Opslaan. Schakel ook de opties Start bij opstarten en Watchdog in de DuckDNS-add-on in. Klik op Start om de DuckDNS-add-on te starten en klik op Logboek. Blijf op de knop “Vernieuwen” drukken totdat je Fullchain.pem maken ziet. Na enige tijd … Klaar!
Update Configuration.yaml
Open het configuratie.yaml-bestand (ik gebruik daar de Studio Code Server add-on voor) en voeg de volgende regels toe die de Home Assistant vertellen waar het SSL-certificaat en de sleutel zijn opgeslagen voor een beveiligde HTTPS-verbinding:


Klik op Opslaan en ga naar Developer Tools > Configuratie controleren. Controleer of Home Assistant wel of niet start. Zo ja, klik dan op “Opnieuw opstarten” om de wijzigingen door te voeren.

Na het herstarten kan het zijn dat je een certificaatwaarschuwing krijgt als je de Home Assistant opent via een lokaal IP-adres. Deze waarschuwing kan worden genegeerd. Gebruik in plaats daarvan de hostnaam om toegang te krijgen tot de Home Assistant op het lokale netwerk. In dit stadium zou je via de DuckDNS-subdomein URL toegang moeten hebben tot en kunnen inloggen op je Home Assistant. Bij mij werkte het zonder problemen. Succes !

Home Assistant automatische vernieuwing certificaat
Een Let’s Encrypt-certificaat is maximaal 3 maanden geldig en het is daarom gebruikelijk dat deze (automatisch) binnen deze periode worden vernieuwd. Een makkelijk in Home Assistant te gebruiken methode is hier uitgelegd op het tech blog van Derek Seaman.


Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *