Door Koen Vervloesem

Freelanceredacteur

Raspberry Pi als brein van je smarthome

Deel 4: beveilig je domoticasysteem

05-01-2022 • 06:00

77

Singlepage-opmaak

OpenWrt en SPIN

In principe kun je elk accesspoint gebruiken voor je smarthomenetwerk, maar uiteraard moet je dit ook veilig houden. Een goede keuze is OpenWrt, dat talloze accesspoints ondersteunt. En als je een ouder accesspoint hebt dat geen updates meer krijgt van de fabrikant, kan OpenWrt het een nieuw leven geven.

Als je wat meer zichtbaarheid in het verkeer van je smarthometoestellen wilt, kun je op een OpenWrt-accesspoint SPIN installeren, waarvan onlangs versie 1.0 is uitgekomen. SPIN staat voor Security and Privacy for In-home Networks en is een project van SIDN Labs om het netwerkverkeer van apparaten op je lokale netwerk te inspecteren. Zie je verdacht of ongewenst verkeer, dan kun je dit ook in enkele clicks blokkeren.

Welke manier je ook gebruikt om je smarthomenetwerk te isoleren, het is belangrijk dat je die isolatie zo goed mogelijk doorvoert. Zodra je het mogelijk maakt om vanaf je smartphone met een app je domoticacontroller aan te sturen, introduceer je weer risico’s. Een veiligere manier is om een tablet die je alleen als dashboard voor je domoticacontroller gebruikt, met je smarthomenetwerk te verbinden. Zodra je het mogelijk maakt om vanaf je smartphone met een app je domoticacontroller aan te sturen, introduceer je risico’s

Authenticatie

Om te voorkomen dat onbevoegden toegang tot je smarthometoepassingen krijgen, moet je zoveel mogelijk gebruikmaken van authenticatie. Zo vraagt Home Assistant je de eerste keer om een account aan te maken en een wachtwoord in te stellen. Node-RED daarentegen schakelt standaard geen authenticatie in. Daarvoor moet je in het bestand settings.js gebruikers en een bijbehorende wachtwoordhash toevoegen. Het bestand bevat al voorbeeldcode daarvoor, maar die is 'uitgecommentarieerd'. Verwijder de // ervoor en pas de waarden aan. Doe dit voor adminAuth (de editor), nodeAuth (het dashboard) en staticAuth (statische pagina’s).

De wachtwoordhash genereer je met de opdracht node-red admin hash-pw of, als je Node-RED in een Docker-container draait, docker exec -ti node-red node-red admin hash-pw, waarbij de eerste Node-RED de naam van de container is en de tweede de naam van de binary. Vul dan je wachtwoord in en plaats de uitvoer van de opdracht in de string bij 'password' in het configuratiebestand.

In de MQTT-broker Mosquitto voeg je authenticatie toe door in het configuratiebestand mosquitto.conf naar een wachtwoordbestand te verwijzen:

password_file /mosquitto/config/passwords

Dit wachtwoordbestand creëer je dan met:

docker exec -ti mosquitto /usr/bin/mosquitto_passwd -c /mosquitto/config/passwords GEBRUIKERSNAAM

Vul dan het wachtwoord voor de gebruiker in. Andere gebruikers voeg je eenvoudig toe met dezelfde opdracht, maar dan zonder de optie -c, die een nieuw wachtwoordbestand aanmaakt. Zolang de optie allow_anonymous true niet aanstaat in het configuratiebestand, moeten alle MQTT-clients zich nu met een geldige gebruikersnaam en een geldig wachtwoord aanmelden.

Sterke wachtwoorden

Kies altijd een sterk wachtwoord en gebruik waar mogelijk tweefactorauthenticatie. Zo kun je in je gebruikersprofiel van Home Assistant 2fa inschakelen. Dat kan met time-based one-time password, of totp, in combinatie met een app zoals Authy of Google Authenticator, of met hotp in combinatie met de notify-component van Home Assistant. Hiermee kun je aanmeldcodes sturen via tientallen notificatiediensten.

Home Assistant 2FA

In je profiel van Home Assistant voeg je het best 2fa toe met een totp-app.