Home Assistant ins Internet ?

 

Natürlich habe ich mir die Frage auch gestellt, denn dein eigenes Heim ist die persönlichste Umgebung und niemand Fremdes hat dort ohne Einladung etwas zu suchen. Auch Sicherheitsaspekte spielen eine Rolle. Wenn ein brasilianischer Script Kiddie es schafft, das Licht in Deinem Schlafzimmer einzuschalten ist das zwar nervig aber eine andere Qualität, als wenn jemand Deine Sicherheitssysteme überlistet, oder sogar Zugriff auf deine Kameras hat. Alexa ist ein großes Thema in der HA Szene. Ich persönlich verzichte darauf. TTS (Text to Speech) ist ein interessantes Thema und HA kann das auch "out of the Box" aber irgendwie habe ich ein mulmiges Gefühl ein ständig online betriebenes Mikrofon jedes Wort im häuslichen Umfeld aufnehmen lassen. Das klinkt paranoid, und ich weiß als Fachmann sehr genau, dass mein Handy im Grund nichts anderes macht.

Wenn ihr "den Pakt mit dem Teufel ääh Alexa" eingeht, ist HA eine feine Sache das komfortabel zu nutzen. Hier findet ihr allerdings keine Informationen, da ich einfach keine Erfahrung damit habe. Viele meiner meist jüngeren Fachkollegen sehen das viel pragmatischer, aber vielleicht bin ich einfach zu alt dafür.

 

HA Server hat Zugriff aufs Internet

 

Ok, das löst noch nicht unser Problem, darum fange ich mal mit dem Einfachen an, dem Internet Empfang. Dieser sollte auf jedem Fall erlaubt werden. Hintergrund ist, das der HA Server eine gigantische Dynamik erfährt. Tausende von Entwicklern fummeln am System herum, es gibt neue Funktionen, Bugs werden beseitigt oder neue Integrationen etabliert. Daher gibt es in engen Zeiträumen Updates, die das System automatisch erkennt und zur Aktualisierung aufruft. Das Gleiche gilt auch für die installieren Add-Ins.

Nebenbei bemerkt sollte man immer das Change Log und die Release Notes lesen. Manchmal kann es nämlich vorkommen, dass eingesetzte Integrationen nicht mehr funktionieren oder anders angesprochen werden.

 

Internet hat Zugriff auf den HA Server

 

Ich habe die Überschrift bewusst so gewählt, damit jedem klar ist, was das bedeutet. Natürlich kann man einen HA Server sehr erfolgreich komplett insoliert betreiben, aber .... es macht einfach keinen Spaß :-)

 

Es gibt drei Dinge, die mich dazu bewogen haben, meinen Server aus dem Internet erreichbar zu machen. 

  • die Möglichkeit von jedem Ort der Welt den Zustand meines Hauses zu überprüfen.
  • die Möglichkeit von jedem Ort der Welt aktiv mit meinem Haus zu interagieren. (über Webseite oder Handy App)
  • Benachrichtigungen zu empfangen, wenn etwas nicht stimmen sollte, oder andere Dinge, die mein Haus meint mir mitteilen zu müssen ;-)

Später kam noch ein weiterer Punkt hinzu, nämlich die Nutzung Cloud basierender Smart Devices wie bsw. Tuya. Auch das ist ein Pakt mit dem Teufel, weil quasi ein Chinese dein Licht steuert. Auch weiß man nicht hundertprozentig, ob die schicke WLAN Wohnzimmerlampe dich nicht doch ausspioniert.

 

Wenn ihr meine Entscheidung teilt, muss man natürlich versuchen, das System so sicher wie möglich zu machen.

Bei mir sind folgende Dinge wichtig:

  • Server mit SSL und Zertifikat betreiben
  • keine Trivialpasswörter und die auch öfters mal ändern.
  • URL des Servers so geheim wie möglich halten (werdet ihr hier auch nicht sehen)
  • Portfreigabe im Router nur auf Port 8123
  • Keine Zutrittskontrolle über Home Assistant
  • Kameras zeigen nie private oder systemrelevante Dinge wie Wohnzimmercouch oder Bett oder meine Sicherheitseinrichtungen.
  • Sicherheitssysteme wie Alarmanlagen nicht mit HA basteln sondern was anständiges besorgen (Idealerweise VdS konform)
  • Passwörter in der Configuration nicht fest verdrahten sondern die secrets.yaml nutzen

Portfreigabe im Router einrichten.

 

Ein anständig eingerichteter Internetzugang hat einen Router, der auch als Firewall fungiert. Damit man von außen auf irgendwas zugreifen kann muss eine Portfreigabe eingerichtet werden. In unserem Fall weißt ein Zugriff auf Port 8123 auf unseren lokalen HA Server.

Bei mir ist es wie bei vielen anderen die FRITZBOX und das sieht so aus :

 

Ich habe keine Ahnung ob HA auch mit IPv6 funktioniert, aber ich habe bewusst darauf geachtet, dass mein Internet Provider auch noch IPv4 hat.

 

Home Assistant auf SSL umstellen.

 

Bevor ich die Einrichtung weiter erkläre kurz ein Wort über Github. Damit die abertausenden von ehrenamtlichen HA Entwickler zueinander kommen und ein einheitliches System daraus wird, wird ein globales Versionsverwaltungsprogramm benutzt, nämlich https://github.com/

Wie das genau funktioniert (Pulls, Commits, Repositories) ist eher für Entwickler interessant aber ihr werdet immer wieder mit Github in Berührung kommen und zwar das erste mal jetzt :-)

 

DynDNS mit DuckDNS einrichten

 

Wenn man Webseiten im Internet aufruft macht man dies über einen Namen. Eigentlich ruft man aber eine IP-Adresse auf. Niemand kennt aber die IP Adressen. Dafür gibt es den DNS Dienst (Domain Name Service) So hat beispielsweise www.bild.de die Adresse 2.16.101.107.

 

Unser heimischer HA Server benötigt auch einen Namen, hat aber gegenüber "großen" Webservern einen großen Nachteil. IPv4 Adressen sind rar und Internetprovider neigen gerne mal dazu, diese Adressen alle 24 Stunden zu ändern, was für den Zugriff auf unseren Server natürlich tödlich wäre. Daher hat irgendwer Schlaues den DynDNS Dienst erfunden. Der geht nämlich hin und erkennt, wenn sich die eigene (öffentliche) IP Adresse geändert hat und ändert auch den DNS Eintrag.

 

Dafür hat HA das schöne Add-on namens Duck DNS

 

Installation:

  1. mittels Supervisor->Add on Store das Duck DNS Add-on instalieren
  2. auf der Webseite duckdns.org einen Account anlegen Unterstützt werden Google, Github, Twitter, Persona und Reddit.Bei mir hat allerdings nur Github funktioniert. Also erst bei Github einen Account erstellen und dann mit den Anmeldedaten bei DuckDNS anmelden.
  3. Dann unter "Domains" "add Domain" drücken und den Wunschnamen eintragen. Der wird dann vor duckdns.org gestellt (Beispiel jupp.duckdns.org)
  4. Auf der Seite wird nun ein Security Token angezeigt (quasi die Autorisierung für diese Domäne). Diese muss in die lokale Konfiguration kopiert werden, die dann so aussieht:

lets_encrypt:
  accept_terms: true
  certfile: fullchain.pem
  keyfile: privkey.pem
token: df02377b-c197-4e25-80016-209a2a4526f8321
domains:
  - jupp.duckdns.org
seconds: 300

 

SSL Zertifikate

 

Damit eine Seite mit SSL funktioniert müssen Zertifikate hinterlegt werden. Auch hier nimmt DuckDNS uns die Arbeit ab und bindet die Zertifikate des kostenlosen Anbieters Lets Encrypt automatisch ein. 

Kommentare: 20
  • #20

    12 (Montag, 08 April 2024 21:32)

    HAllo, gibt es keine Möglichkeit, die diversen Stati der HA ganz ohne Portfreigaben/VPN (dafür ist mir die FritzBox zu wackelig & eine echte firewall zu teuer) laufen zu lassen? ICh stelle mir das so vor: Wichtige Nachrichten per E-Mail. Smart Doorbell durch einen Stream, den die Kamera auf eine PAsswort geschützte Website hochlädt (und nur dann). Etc.
    Völlig falsche Richtung? HAt jmd sowas mal weiter gedacht und umgesetzt?

  • #19

    Mmhh (Montag, 30 Oktober 2023 12:07)

    bei steht da immer fehler

  • #18

    Test (Freitag, 06 Oktober 2023 12:45)

    Test

  • #17

    Cpt.Hardy (Donnerstag, 18 Mai 2023 17:57)

    ok, und wie bekomme ich das SSL Zertifikat mit den von mir genannten Providern? AVM geht ja auch per SSL, wenn ich mich nicht irre.

  • #16

    Ingo (Donnerstag, 18 Mai 2023 16:47)

    Du brauchst das SSL Zertifikat

  • #15

    Cpt.Hardy (Donnerstag, 18 Mai 2023 14:29)

    wenn ich bereits einen DYDNS verwende wie zB von AVM für die Fritzbox oder selfhost.eu kann ich dann auf duckdns verzichten?

  • #14

    bomi (Sonntag, 05 März 2023 23:57)

    warum

  • #13

    Ingo (Mittwoch, 01 März 2023 07:18)

    Hallo Martin,

    Das duckdns mit lets encrypt im Hintergrund macht zwei Dinge. Es verknüpft deine öffentliche IP Adresse mit einem Domänen Namen und ändert diese automatisch, wenn deine IP sich ändert und es baut ein Zertifikat für die verschlüsselte Verbindung und (ganz wichtig) aktualisiert dieses automatisch.
    Das ganze ist ohne zutun des Benutzers Automatisch. Kann man machen, muss man aber nicht du kannst auch einen anderen DDNS Anbieter nehmen, eine eigene Domäne und eigene Zertifikate (digicert, globalsign, ect). Aber das ist alles Aufwand. Du brauchst z.b. den DNS Zugriff auf diese Domäne um dein Zertifikat zu trusten

  • #12

    Martin (Dienstag, 28 Februar 2023 21:41)

    Hallo, kann man eigentlich auch zusätzlich noch eine eigene Domain (z. B. bei Strato gekauft) einbinden, die auch DynDns unterstützt? Würde gerne 2 Domains eintragen, falls mal Duckdns nicht geht. Geht das überhaupt?

  • #11

    Chris (Sonntag, 26 Februar 2023 17:52)

    Portfreigabe kommt bei mir z.B. überhaupt nicht in Frage. Tailscale, Wireguard oder andere VPN Lösungen senken den WAF, da die App oft schneller startet als der Tunnel aufgebaut ist.
    Ich habe nun Cloudflare in Betrieb und bin sehr begeistert. Vor allem kann man noch andere Systeme damit zugänglich machen. Man benötigt jedoch eine eigene Domain. Diese gibt es jedoch schon sehr günstig, wenn man nicht unbedingt etwas bestimmtes möchte.

  • #10

    Ingo (Sonntag, 26 Februar 2023 16:20)

    Hallo und herzlichen Dank für deinen Kommentar.
    Das Maß der Dinge ist die HA App auf dem Handy, da sie bidirektional arbeitet.
    Weiterhin wird Android Car im nächsten Release ein Riesenthema. Funktioniert beides auch über ipsec ?

  • #9

    padrake (Sonntag, 26 Februar 2023 16:03)

    Netter Beitrag,
    aber warum immer so kompliziert?
    Die FritzBox bietet von Haus aus IPSEC und seit einiger Zeit auch Wireguard als VPN an. Voraussetzung für einen reibungslosen Betrieb ist ein aktives MyFritz auf der Fritzbox. Die Verbindung per Mobil-Device läuft per IPSEC und MyFritz App in wenigen Minuten. Auf Maschinen mit Windows oder Linux empfiehlt sich ein Wireguard Client auf Grund der deutlich besseren Performance des Protokolls.
    Welche der beiden Protokolle zum Einsatz kommen, ist unerheblich. Steht der Tunnel, kann auf das interne Heimnetz zugegriffen werden. Es sind keine Portfreigaben erforderlich. auch kann auf SSL-Verschlüsselung vom HASS-Server verzichtet werden, wenn denn das interne Netz hinreichend sicher ist.
    Kommt es zu Problemen mit der Namensauflösung "homeassistant.local" einfach dem HASS-Server über die Fritzbox eine feste IP-Adresse zuordnen und das WEB-GUI von HASS über diese Adresse aufrufen. (z.B. 192.168.178.215:8123)
    Anleitungen über die VPN-Verbindungen zu einer Fritzbox gibt es bei AVM.
    Viele Grüße, Padrake

  • #8

    clehaam (Samstag, 18 Februar 2023 08:46)

    HA ssl cert

  • #7

    Zvvubj (Donnerstag, 29 Dezember 2022 09:42)

    Zvjuju

  • #6

    Christian (Mittwoch, 03 August 2022 16:25)

    Hallo Ingo,
    zum Pakt mit Tuya. Nutze doch die "tuyalocal"-Integration, dann steuert dein HA ohne dem chinesischen Bruder deinen Schalter/Licht

  • #5

    Fel (Freitag, 11 März 2022 09:36)

    Hallo Ingo,

    bei uns will der Vorgang nicht funktionieren. Hast du eine öffentliche IP für deinen HA?

    Wir kriegen immer die Fehlermeldung bezüglich der Zertifikate, die werden einfach nicht angelegt.

  • #4

    Eddi (Samstag, 15 Januar 2022 17:26)

    Hallo Ingo,
    eine Frage zum Thema "auf SSL umstellen" ist bei mir aufgetaucht:
    In der Konfiguration des Add-ons Let's Encrypt wird Duckdns.org nicht aufgeführt. Wird es nicht (mehr) unterstützt oder verstehe ich etwas grundsätzlich falsch?

  • #3

    Manuel (Samstag, 08 Januar 2022 22:41)

    Hallo Ingo,

    ich mache mir tatsächlich auch wengier Sorgen um die Kommunikation an und für sich, als viel mehr um den offen Angriffspunkt (der weitergeleitete Port), der ja anschließend Grundsätzlich erstmal für jederman zugänglich ist. Klar kann sich vielleicht niemand anmelden, meine Sorgen ist aber vielmehr wer sagt mir dass der Angreifer nicht unter Umständen durch Sicherheitslücken in HA oder anderweitig die Anmeldung umgehen kann?

  • #2

    Ingo (Sonntag, 02 Januar 2022 11:55)

    Hallo Manuel,
    ich habe die Instanz genauso gesichert, wie es jede Bank macht. Nämlich mit SSL und Zertifikat.
    wir nutzen die Handyapp. Damit kann ich Handydaten an HA übermitteln (z.B. Standort für Päsenzmeldungen) und auch meine Smartwatch funktioniert.
    Weiterhin werden darüber Push Nachrichten übermittelt. (siehe auch die morgendliche Begrüßung meines Hauses)
    Wie ich geschrieben habe. Sicherheitsrelevante Dinge werden nur an HA übermittelt, nicht gesteuert. Selbst wenn Unbefugte Zugriff hätten, könnten die nichts schlimmes anstellen

  • #1

    Manuel (Sonntag, 02 Januar 2022 00:57)

    Hi,

    ich bin ebenfalls ständig am hin und her überlegen, ob ich nun eine Portfreigabe einrichte oder doch lieber meine HA - Instanz nur über das VPN erreichbar mache. Was hat dich dazu bewogen die Portfreigabe einzurichten und dich nicht mit dem VPN zufrieden zu geben?
    Klar habe ich bei einer Portfreigae den Vorteil direkt zugreifen zu können ohne vorher die VPN - Verbindung starten zu müssen, aber ist das so ein signifikanter Vorteil?

    Meine überlegte vorgehensweise wäre Push-Mitteilungen via Threema oder Signal zu versenden und bei für mich interessanten Informationen die VPN - Verbindung aufzubauen und anschließend wie gewohnt auf HA zuzugreifen.

    Würde mich freuen eine Antwort von dir zu erhalten.
    Freundliche Grüße
    Manuel

    manuel-mayr@gmx.de