Az első rész végén megmutattam, hogy ha nem titkosított protokollt használunk, akkor egy egyszerű forgalom lehallgatással megszerezhető a jelszavunk. Mit tudunk tenni ez ellen? Azt, hogy titkosított protokollt használunk, jelen esetben https-t. Ehhez nem kell más, mint egy hitelesített tanusítvány. A Home Assistant bővítményvoltja biztosít megoldást is erre, de sajnos sokan nem foglalkoznk ezzel, pedig a beállítása nem kerül sok időbe. A mostani postban ezzel bővítjük az alap HA telepítésünket.
Először szükségünk van egy DNS bejegyzésre, amihez a DuckDNS ad nekünk ingyenes lehetőséget. Nyissuk meg a www.duckdns.org weboldalt a böngészőnkben.
A regisztrációhoz használhatjuk a github fiókunkat, amit a HACS telepítéséhez regisztráltunk vagy bármely más lehetőséget, mint a google account.
Bejelentkezést követően az alábbi oldal jelenik meg előttünk, ahol látjuk a fiókunk adatait és lehetőségünk van új bejegyzést hozzáadni.
Ehhez nincs más dolgunk, mint kitalálni egy megfelelő nevet, majd megnyomni az add domain gombot.
A listában meg is jelent az általunk kitalált domain bejegyzés, azzal az IP címmel, amiről bejelentkeztünk a duckdns oldalra. Még ne zárjuk be az oldalt, mert szükségünk lesz innen a token információra.
Következő lépésként lépjünk be a Home Assistant rendszerünkbe és a Supervisor Bővítménybolt-jában keressük meg a Duck DNS plugint.
Telepítsük fel.
Ha sikeresen települt a plugin, kattintsunk a konfigurációra.
A token és domain információk megtalálhatók a duckdns oldalán, másoljuk a konfigurációs beállítások megfelelő soraiba, majd mentsük a módosításainkat.
Most már elindíthatjuk a plugint.
A napló menüpont alatt láthatjuk, hogy elindul a plugin, frissíti a bejegyzést és legenerálja a certificatet.
A sikeres plugin indítást követően a DuckDNS oldalán látjuk, hogy a bejegyzés frissünt.
Update: A cikk írásakor benéztem az accept_terms paramétert, ezért nem jött létre a certificate fájl, így megírtam a Let's encrypt használatát is, ami szükségtelen! Köszönöm az éles szemű fórumtársaknak a facebookon a Home Assistant Hungary csoportban. Így a port forward létrehozásakor elegendő azt a portot beállítani, amit a HomeAssistant eléréséhez használunk.
Ezennel sikeresen elérhetjük a rendszerünket az internet irányából. Most következhet a certificate elkészítése, amihez a Let's encrypt plugint kell telepítsük.
A sikeres telepítést követően szintén szükséges a plugin konfigurációja. Ehhez szükséges megadni az e-mail címünket és a domain-t, amit regisztráltunk a DuckDNS-ben, majd mentsük a beállításokat.
És most jöjjön az, amiről nem készítettem képernyőképet, mert be kell lépjünk a routerünkbe és kell készítsünk egy port továbbítási szabályt. Mivel minden router menüje más, így keressük meg a port forward menüpontot és az alábbi portokat irányítsuk a Home Assistantot futtató gépünk IP címére:
- 80
- 443
- 8123
Ha elkészült a port forward, akkor indítsuk el a Let's encrypt plugint, majd a napló fül alatt látjuk, ahogy elkészül a hitelesített certificate a rendszerünkhöz. Ha a port forward hibásan lett megadva, akkor nem fog sikerülni, mert a rendszer visszaellenőrzi a 80-as porton, hogy tényleg a miénk a megadott név és nálunk fut a plugin.
A végső beállításhoz szükséges a configuration.yaml fájl módosítása, így ha már minden beállítást a HomeAssistant alól végeztünk el, akkor ezt is itt tegyük meg, ehhez telepítsük a Visual Studio Core plugint a bővítményboltból.
A sikeres telepítést és indítást követően lehetőségünk van kirakni az oldalsávra, hogy egyszerűen el tudjuk indítani, ha szükségünk van rá.
Az első használatkor meg kell adni pár alap beállítást, de a defaultok megfelelőek számunkra.
Az indítást követően a bal oldali listából ki tudjuk választani a configuration-yaml fájlt, ami egy szerkesztőben nyílik meg. Egészítsük ki a konfigurációt a http beállításokkal. A rendszer a fájl módosításit automatikusan menti. Ha nem szeretnénk, hogy a rendszerünket a 8123-as porton érjük el, hanem valamelyik másik port szimpatikusabb, akkor ebben a szakaszban kell megadnunk az új portot is.
http:
server_port: 8006
base_url: flogi-diyiot.duckdns.org:8006
ssl_certificate: /ssl/fullchain.pem
ssl_key: /ssl/privkey.pem
Ha a default portok megfelelőek csak titkosított protokollt szeretnénk, elegendő a certificate és a kulcs megadása.
Utolső lépésként ellenőrizzük a konfgiurációs fájlunkat, majd indítsuk újra a Home Assistant szerver modult.
Az újraindítást követően a rendszerünk már nem lesz elérhető http-n.
Viszont https-en igen! Hurrá, most már titkosított protokollt használva érjük el a rendszerünket. A Let's encrypt-es tanúsítványra azért van szükségünk, hogy hiteles legyen a cert. Ezt a böngészők egy zöld lakattal jelzik is.
A részleteket megtekintve látjuk, hogy érvényes a tenúsítvány.
Végezetül a hálózati forgalmat lehallgatva már nem látható semmilyen átadott információ, mert a titkosított protokoll elrejti (titkosítja) az információt, így a kulcsok ismerete nélkül nem látjuk a titkosított információt.
Ha megnézzük a nyitott portok listáját a rendszerünkben, még mindig több port van nyitva, mint amit szeretnénk elérni az internet felől, így még mindig nem végeztünk a rendszer beállításával, de egy lépéssel közelebb kerültünk hozzá.