Home Assistant im Profi-Netzwerk: VLANs, Traefik und sichere Netzwerk-Segmentierung
Du nutzt bereits Traefik als Reverse Proxy und möchtest dein Smart Home richtig absichern? Dann ist dieses Tutorial für dich. Wir richten Home Assistant in einer professionellen Netzwerk-Architektur ein: IoT-Geräte isoliert im eigenen VLAN, Home Assistant sicher im Management-Netzwerk, und alles über Traefik erreichbar. Das Ergebnis: Maximale Sicherheit ohne Komfortverlust.
DarkWolfCave.de
Wichtiger Hinweis vorab: Dieses Tutorial zeigt die Konzepte am Beispiel von UniFi-Hardware - aber die Prinzipien gelten für jede VLAN-fähige Firewall! Du kannst das Setup genauso mit OPNsense, pfSense, MikroTik, Sophos oder einer Fritz!Box mit nachgeschaltetem Managed Switch umsetzen. Die Firewall-Regeln und VLAN-Konfiguration sehen in der jeweiligen Oberfläche anders aus, das Konzept bleibt identisch.
Dieses Tutorial kombiniert mehrere komplexe Technologien (Traefik, VLANs, Docker-Netzwerke). Die Konfigurationen basieren auf offizieller Dokumentation und Best Practices. Falls etwas nicht funktioniert: Prüfe die Logs, vergleiche mit der offiziellen Home Assistant Dokumentation, und frag gerne in den Kommentaren oder auf Discord!
Warum VLANs für Smart Home?
In den vorherigen Artikeln haben wir network_mode: host verwendet - einfach und funktioniert. Aber es gibt ein Problem: Alle deine IoT-Geräte sind im selben Netzwerk wie dein PC, NAS und Server.
Das Risiko:
- Eine gehackte TAPO-Kamera kann dein gesamtes Netzwerk scannen
- Billige IoT-Geräte haben oft Sicherheitslücken
- Firmware-Updates kommen selten oder gar nicht
Die Lösung: Netzwerksegmentierung mit VLANs
Was wir erreichen wollen
| Netzwerk | Zweck | Beispiel-IPs |
|---|---|---|
| Management (VLAN 1) | Server, Pi, Home Assistant | 192.168.1.0/24 |
| IoT (VLAN 20) | Kameras, Steckdosen, Sensoren | 192.168.20.0/24 |
| Gäste (VLAN 30) | Gäste-WLAN | 192.168.30.0/24 |
Firewall-Regeln:
- Home Assistant → IoT-VLAN: ✅ ERLAUBT (steuern)
- IoT-VLAN → Home Assistant: ⚠️ NUR etablierte Verbindungen
- IoT-VLAN → Internet: 🚫 BLOCKIERT (außer Cloud-Geräte)
- IoT-VLAN → Management: 🚫 BLOCKIERT
Voraussetzungen
Hardware
Für diese Anleitung brauchst du:
- Router/Firewall mit VLAN-Support - du brauchst eine der folgenden Optionen:
- UniFi Gateway Max (UXG-Max) oder Dream Machine
- OPNsense / pfSense auf Mini-PC
- MikroTik Router
- Sophos XG (Home License kostenlos)
- VLAN-fähiger Managed Switch - z.B. einer davon:
- UniFi Switch Lite 16 PoE
- TP-Link TL-SG608E (günstiger Einstieg)
- Access Point mit VLAN-Support (optional aber empfohlen) - z.B.:
- UniFi U6-LR (WiFi 6, Long-Range)
- Raspberry Pi 5 mit 8GB RAM
- NVMe SSD für Home Assistant
Software & Kenntnisse
- Traefik läuft bereits (siehe Traefik Installation)
- Docker und Docker Compose
- Grundlagen VLANs und Firewall verstanden
- Zugriff auf deine Router/Firewall-Konfiguration
Beispiel-Infrastruktur
Dieses Tutorial orientiert sich an folgendem Setup - passe die IPs und Subnetze an deine Umgebung an:
| Komponente | Beispiel | Bei dir anpassen! |
|---|---|---|
| Router/Firewall | UniFi Gateway Max | Deine Firewall |
| Pi IP | 192.168.1.36 | Deine Pi-Adresse |
| Management-Netz | 192.168.1.0/24 | Dein Haupt-Subnet |
| IoT-Netz | 192.168.20.0/24 | Dein IoT-Subnet |
| DNS | Pi-hole + Unbound | Dein DNS-Server |
Wichtig: Alle IP-Adressen in diesem Tutorial sind Beispiele! Notiere dir deine eigenen Werte, bevor du loslegst.
VLAN-fähige Router, Switches und Access Points für Netzwerk-Segmentierung
Hardware für sicheres Smart Home Netzwerk
| Bild | Produkt | Preis | |
|---|---|---|---|
| Produktdaten werden geladen... | |||
Teil 1: VLAN-Struktur einrichten
Die folgenden Schritte zeige ich am Beispiel von UniFi Network 9.x. Bei anderen Firewalls findest du die VLAN-Konfiguration unter ähnlichen Menüpunkten:
| Firewall | VLAN-Menü |
|---|---|
| UniFi (9.x) | Settings → Networks |
| OPNsense | Interfaces → Other Types → VLAN |
| pfSense | Interfaces → Assignments → VLANs |
| MikroTik | Bridge → VLANs |
IoT-VLAN erstellen (UniFi Network 9.x)
- Öffne die UniFi Network App
- Gehe zu Settings → Networks
- Klicke Create New Network
Basis-Einstellungen:
| Feld | Wert | Hinweis |
|---|---|---|
| Name | IoT | Frei wählbar |
| Router | Gateway Max | Dein Gateway auswählen |
| Zone | IOT_ZONE | Eigene Zone auswählen oder später erstellen |
| Protocol | IPv4 | Standard |
| Gateway IP/Subnet | 192.168.20.1/24 | ”Auto-Scale Network” deaktivieren für manuelle Eingabe |
Hinweis zu Zonen: Du kannst direkt beim Erstellen eine eigene Zone (z.B. IOT_ZONE) auswählen, falls du diese vorher unter Settings → Security → Zones angelegt hast. Alternativ wählst du erstmal “Internal” und änderst es später.
Advanced-Einstellungen (aufklappen!):
Klicke auf Advanced und wähle Manual statt Auto:
| Feld | Wert | Hinweis |
|---|---|---|
| VLAN ID | 20 | Beliebig, aber konsistent halten |
| Isolate Network | ☐ | Nicht aktivieren (wir regeln das per Firewall) |
| Allow Internet Access | ☑ | Für Cloud-Geräte (TAPO, Homematic) |
| IGMP Snooping | ☑ | Für Streaming-Geräte |
| mDNS | ☐ | Optional - nur für Auto-Discovery (Empfehlung: feste IPs nutzen!) |
| DHCP Mode | DHCP Server | Standard |
| DHCP Range | 192.168.20.6 - 192.168.20.254 | Automatisch oder anpassen |
Hinweis zu mDNS: mDNS ist nur für die automatische Geräteerkennung nötig - nicht für die Kommunikation! Die sicherere und zuverlässigere Methode ist, IoT-Geräte mit festen IPs zu konfigurieren und in Home Assistant manuell einzutragen (siehe Teil 3). mDNS-Reflection ist ein Sicherheitsrisiko, da IoT-Geräte dann Dienste in deinem Management-VLAN “sehen” können.
Sicherheits-Trade-offs verstehen
Die obigen Einstellungen sind ein Kompromiss zwischen Komfort und Sicherheit. Hier die Auswirkungen:
| Einstellung | Vorteil | Nachteil |
|---|---|---|
| Allow Internet Access ☑ | Cloud-Geräte funktionieren | IoT kann “nach Hause telefonieren”, Botnet-Risiko |
| IGMP Snooping ☑ | Bessere Netzwerk-Performance | Kann Streaming-Probleme verursachen |
| mDNS ☑ | Automatische Geräteerkennung | Sicherheitslücke: IoT “sieht” Dienste im Management-VLAN |
Maximale Sicherheit (Paranoid Mode)
Für maximale Isolation:
| Einstellung | Paranoid | Hinweis |
|---|---|---|
| Allow Internet Access | ☐ Aus | Selektiv per Firewall erlauben |
| mDNS | ☐ Aus | Geräte mit festen IPs manuell eintragen |
| Isolate Network | ☑ An | Zusätzlich zur Firewall |
Wie findest du heraus, welche IPs/Domains deine IoT-Geräte brauchen?
Methode 1: Pi-hole Query Log (empfohlen)
Wenn du Pi-hole als DNS nutzt:
- Setze das IoT-VLAN DNS auf deinen Pi-hole
- Gehe zu Pi-hole → Query Log
- Filtere nach der IP des IoT-Geräts
- Notiere alle Domains die das Gerät aufruft
Typische Domains für TAPO:
*.tplinkcloud.com
*.tplinkra.com
Methode 2: UniFi Traffic Insights
- Insights → Traffic Identification
- Filtere nach Client (z.B. Hue Bridge)
- Siehst alle kontaktierten IPs/Domains
Methode 3: Firewall-Logs nutzen
- Erstelle eine Block-Regel für IoT → Internet mit Logging aktiviert
- Warte bis das Gerät nicht mehr funktioniert
- Prüfe Settings → System → Logs (oder Syslog)
- Erstelle Allow-Regeln für die geblockten Ziele
Methode 4: tcpdump auf dem Pi
# Verkehr vom IoT-VLAN mitschneiden (wenn Pi im selben VLAN oder als Router)
sudo tcpdump -i eth0 -n src net 192.168.20.0/24 and port 53
Bekannte Cloud-Domains nach Hersteller:
| Hersteller | Domains |
|---|---|
| TP-Link TAPO | *.tplinkcloud.com, *.tplinkra.com |
| Philips Hue | *.meethue.com (optional, funktioniert auch lokal) |
| Homematic IP | *.homematic.com, *.eq-3.de |
| Tuya/Smart Life | *.tuya.com, *.tuyaeu.com |
Firewall-Regel Beispiel (UniFi):
Name: Allow TAPO Cloud
Action: Accept
Source: IoT Network
Destination: Domain Group "TAPO_CLOUD"
- *.tplinkcloud.com
- *.tplinkra.com
Tipp: Erstelle in UniFi unter Profiles → IP Groups Domain-Gruppen für jeden Hersteller. So bleiben deine Firewall-Regeln übersichtlich.
Optional: Gäste-VLAN
Falls du auch ein Gäste-Netzwerk möchtest:
| Feld | Wert |
|---|---|
| Name | Gäste |
| VLAN ID | 30 |
| Gateway IP/Subnet | 192.168.30.1/24 |
| Network Type | Guest Hotspot |
| Isolation | Client Device Isolation ✅ |
Tipp: Guest-Netzwerke landen automatisch in der Hotspot-Zone mit eingeschränkten Rechten.
Ports/WLAN zuweisen
Für kabelgebundene IoT-Geräte (Network 9.x):
- Devices → [Dein Switch]
- Klicke auf Ports
- Wähle den Port für z.B. Hue Bridge
- Port Profile → Native VLAN: IoT
Oder über Port Profiles:
- Settings → Profiles → Ports
- Erstelle Profil “IoT-Port” mit Native VLAN = IoT
- Weise das Profil den Ports zu
Für WLAN IoT-Geräte:
- Settings → WiFi
- Klicke Create New
- Konfiguration:
| Feld | Wert |
|---|---|
| Name (SSID) | IoT-Netzwerk |
| Network | IoT (VLAN 20) |
| Security Protocol | WPA2 Personal |
| Password | Eigenes Passwort! |
| Band | 2.4 GHz (viele IoT-Geräte unterstützen kein 5 GHz) |
Wichtig: Nutze ein separates Passwort für das IoT-WLAN!
Netzwerk einer Zone zuweisen (Network 9.x)
Nach dem Erstellen des IoT-Netzwerks:
- Settings → Security → Zones
- Finde dein IoT-Netzwerk (steht vermutlich unter “Internal”)
- Klicke Manage bei deiner IOT_ZONE
- Füge das IoT-Netzwerk hinzu
Oder direkt im Netzwerk:
- Settings → Networks → IoT
- Scrolle zu Zone
- Wähle deine IOT_ZONE aus
Teil 2: Firewall-Regeln konfigurieren
Die Firewall-Regeln sind das Herzstück der Sicherheit. Das Prinzip ist bei allen Firewalls gleich - nur die Oberfläche unterscheidet sich.
UniFi hat zwei Firewall-Systeme:
| System | Verfügbar seit | Navigation |
|---|---|---|
| Zone-Based Firewall (ZBF) | Network 9.0+ | Settings → Security → Zones |
| Klassische Firewall Rules | Alle Versionen | Settings → Security → Firewall Rules |
Die Zone-basierte Firewall ist der neue Standard ab Network 9.x und deutlich übersichtlicher. Ich zeige beide Varianten.
UniFi Zone-Based Firewall (Network 9.x) - Empfohlen
Die Zone-Matrix bietet eine visuelle Übersicht welcher Traffic zwischen Zonen erlaubt oder blockiert ist.
Schritt 1: Eigene IoT-Zone erstellen
- Settings → Security → Zones
- Klicke Create Zone
- Konfiguration:
| Feld | Wert |
|---|---|
| Name | IOT_ZONE |
| Description | IoT Geräte (isoliert) |
| Networks | IoT (dein VLAN 20) |
Schritt 2: Zone-Policies in der Matrix konfigurieren
Die Zone-Matrix zeigt alle Zonen als Tabelle. Klicke auf eine Zelle um die Policy zu ändern:
| Von → Nach | Policy | Bedeutung |
|---|---|---|
| Internal → IOT_ZONE | Block All | Hauptnetz kann nicht auf IoT zugreifen |
| IOT_ZONE → Internal | Block All | IoT kann nicht ins Hauptnetz |
| IOT_ZONE → External | Allow All | IoT darf ins Internet |
| IOT_ZONE → Gateway | Allow All | DHCP/DNS funktioniert |
Wichtig für Home Assistant: Du brauchst eine Ausnahme, damit dein Pi (im Internal-Netz) auf IoT-Geräte zugreifen kann!
Schritt 3: Ausnahme für Home Assistant erstellen
Die Ausnahme-Regel erstellst du direkt in der Zone-Matrix:
- Klicke in der Zone-Matrix auf die Zelle Internal → IOT_ZONE
- Unten erscheint eine Liste mit den Regeln für diese Zone-Kombination
- Klicke auf Create Policy
- Konfiguration:
| Feld | Wert |
|---|---|
| Name | Allow HA to IoT |
| Action | Allow |
| Source | IP Address: 192.168.1.36 (DEINE Pi-Adresse!) |
| Destination | Any |
Die spezifische Regel wird automatisch VOR der generellen Zone-Policy “Block All” angewendet.
Zone-Matrix Ergebnis
Deine Zone-Matrix sollte so aussehen:
| Source ↓ / Dest → | Internal | External | Gateway | IOT_ZONE |
|---|---|---|---|---|
| Internal | Allow All | Allow All | Allow All | Block All (3)* |
| External | Allow Return | - | Allow Return | Allow Return |
| IOT_ZONE | Block All (3) | Allow All | Allow All | Block All |
*Die (3) zeigt: 3 Regeln definiert (z.B. deine HA-Ausnahme)
Klassische Firewall Rules (alle Firewalls)
Falls du die klassischen Rules bevorzugst oder eine andere Firewall nutzt:
| Firewall | Firewall-Menü |
|---|---|
| UniFi (klassisch) | Settings → Security → Firewall Rules |
| OPNsense | Firewall → Rules → [Interface] |
| pfSense | Firewall → Rules → [Interface] |
| MikroTik | IP → Firewall → Filter Rules |
Regel 1: Home Assistant → IoT erlauben
Name: Allow HA to IoT
Type: LAN In
Action: Accept
Source:
- Type: IP Address
- IP: 192.168.1.36 (DEINE Pi-Adresse!)
Destination:
- Type: Network
- Network: IoT (VLAN 20)
Bei OPNsense/pfSense: Erstelle die Regel auf dem LAN-Interface mit Source = Pi-IP, Destination = IoT-Subnet.
Regel 2: IoT → Management blockieren
Name: Block IoT to Management
Type: LAN In
Action: Drop
Source:
- Type: Network
- Network: IoT
Destination:
- Type: Network
- Network: Default (Management)
Wichtig: Diese Regel muss VOR der “Allow Established” Regel stehen! Die Reihenfolge ist entscheidend.
Regel 3: Established/Related erlauben
Name: Allow Established
Type: LAN In
Action: Accept
States: Established, Related
Bei OPNsense/pfSense ist dies oft bereits als Default-Regel vorhanden.
IoT Internet einschränken (Optional)
Wenn du IoT-Geräten keinen Internetzugang geben willst:
Zone-Based: Setze IOT_ZONE → External auf “Block All”
Klassisch:
Name: Block IoT Internet
Type: LAN Out
Action: Drop
Source: IoT Network
Destination: Any
Ausnahmen für Cloud-Geräte:
- TAPO braucht Cloud für einige Funktionen
- Hue Bridge optional (funktioniert auch lokal)
- Homematic IP Cloud braucht Internet
Teil 3: IoT-Geräte erreichbar machen
Voraussetzung: Firewall-Regel für Inter-VLAN Traffic
Wichtig: VLANs sind standardmäßig voneinander isoliert! Dein Pi im Management-VLAN kann IoT-Geräte im IoT-VLAN erst erreichen, wenn du eine Firewall-Regel erstellt hast, die den Traffic erlaubt.
Falls noch nicht geschehen, erstelle die Regel wie oben in Teil 2: Firewall-Regeln konfigurieren beschrieben:
- Zone-Based: Klicke auf die Zelle Internal → IOT_ZONE und erstelle eine Allow-Policy für deine Pi-IP
- Klassisch: Erstelle eine “Allow HA to IoT” Regel (Source: Pi-IP, Destination: IoT-Network)
Ohne diese Regel funktioniert gar nichts - weder mit festen IPs noch mit mDNS!
Brauche ich mDNS?
Kurze Antwort: Nein, in den meisten Fällen nicht.
mDNS (Multicast DNS) dient nur der automatischen Geräteerkennung - damit Home Assistant Geräte wie die Hue Bridge automatisch findet. Für die eigentliche Kommunikation ist mDNS nicht nötig.
| Methode | Sicherheit | Zuverlässigkeit | Aufwand |
|---|---|---|---|
| Feste IPs (empfohlen) | ✅ Hoch | ✅ Sehr zuverlässig | Einmalig einrichten |
| mDNS-Reflection | ⚠️ Informationsleck | ⚠️ Kann Probleme machen | Zusätzliche Konfiguration |
Warum feste IPs besser sind:
- Kein Sicherheitsrisiko durch mDNS-Reflection (IoT-Geräte “sehen” sonst Dienste im Management-VLAN)
- Geräte sind immer unter derselben IP erreichbar
- Keine zusätzliche mDNS-Konfiguration nötig
- Du weißt genau, welches Gerät welche IP hat
KI-BildKI-generiert mit Gemini
Mein Tipp: Feste IPs sind der sicherere und zuverlässigere Weg! Die einmalige Einrichtung dauert nur wenige Minuten pro Gerät - danach hast du keine Probleme mehr mit mDNS oder Auto-Discovery.
Empfohlen: Feste IPs für IoT-Geräte
Die Firewall-Regel aus Teil 2 erlaubt deinem Pi, IoT-Geräte über ihre IP-Adressen zu erreichen. Damit das zuverlässig funktioniert, sollten alle IoT-Geräte feste IPs haben.
Schritt 1: IP-Reservierungen im DHCP anlegen
In UniFi Network 9.x:
- Clients → Finde dein IoT-Gerät (z.B. Hue Bridge)
- Klicke auf das Gerät → Settings
- Fixed IP Address aktivieren
- IP vergeben (z.B.
192.168.20.10) - Speichern
Wiederhole das für alle IoT-Geräte:
| Gerät | Empfohlene IP | Hinweis |
|---|---|---|
| Hue Bridge | 192.168.20.10 | Benötigt Port 80, 443 |
| Homematic CCU | 192.168.20.11 | Ports 2001, 2010 |
| TAPO Kamera 1 | 192.168.20.20 | RTSP Port 554 |
| TAPO Kamera 2 | 192.168.20.21 | |
| Zigbee Coordinator | 192.168.20.30 | Falls netzwerkbasiert |
Tipp: Reserviere einen IP-Bereich für IoT (z.B. 192.168.20.10-99) und lass DHCP ab .100 vergeben.
Schritt 2: In Home Assistant manuell eintragen
Bei der Integration gibst du einfach die IP-Adresse ein statt auf Auto-Discovery zu warten:
Philips Hue:
- Einstellungen → Geräte & Dienste → + Integration
- Philips Hue suchen
- IP-Adresse manuell eingeben:
192.168.20.10 - Button auf Bridge drücken
TAPO Kameras:
- + Integration → TAPO
- IP-Adresse:
192.168.20.20 - Zugangsdaten eingeben
Schritt 3: Optional - DNS-Einträge im Pi-hole
Wenn du Geräte lieber über Namen ansprechen willst, füge lokale DNS-Einträge hinzu:
# /etc/pihole/custom.list
192.168.20.10 hue.iot hue.local
192.168.20.11 homematic.iot ccu.local
192.168.20.20 tapo-cam1.iot
192.168.20.21 tapo-cam2.iot
Danach Pi-hole neu starten:
pihole restartdns
Jetzt kannst du in Home Assistant auch hue.iot statt der IP verwenden.
Beliebte Smart Home Geräte die perfekt mit Home Assistant funktionieren
IoT-Geräte für Home Assistant
| Bild | Produkt | Preis | |
|---|---|---|---|
| Produktdaten werden geladen... | |||
Optional: mDNS-Reflection (nur für Auto-Discovery)
Falls du trotzdem automatische Geräteerkennung möchtest - z.B. für Chromecast oder AirPlay - kannst du mDNS-Reflection aktivieren.
Sicherheitswarnung: mDNS-Reflection ist ein Informationsleck! IoT-Geräte können dann sehen, welche Dienste (NAS, Server, etc.) in deinem Management-VLAN laufen.
UniFi Network 9.x
- Settings → Networks → IoT
- Scrolle zu Advanced Configuration
- Aktiviere Multicast DNS
- Wichtig: Auch im Management-Netzwerk aktivieren!
- Speichern
Andere Firewalls
| Firewall | mDNS-Reflection |
|---|---|
| OPNsense | Services → Avahi (Plugin installieren) |
| pfSense | Services → Avahi (Package installieren) |
| MikroTik | Manuell via Firewall-Regeln (Port 5353 UDP) |
Avahi-Reflector Container (Alternative)
Falls deine Firewall keine mDNS-Reflection unterstützt:
# docker-compose.yml - Avahi Reflector
services:
avahi:
image: flungo/avahi
container_name: avahi-reflector
restart: unless-stopped
network_mode: host
environment:
- REFLECTOR_ENABLE_REFLECTOR=yes
- REFLECTOR_INTERFACES=eth0,eth0.20
volumes:
- /var/run/dbus:/var/run/dbus
Teil 4: Pi-hole für VLAN-DNS
Da du Pi-hole nutzt, muss es DNS-Anfragen aus dem IoT-VLAN beantworten können.
Pi-hole für VLANs konfigurieren
In /etc/pihole/pihole.conf oder der Admin-Oberfläche:
# Pi-hole soll auf allen Interfaces hören
PIHOLE_INTERFACE=all
Oder spezifisch:
PIHOLE_INTERFACE=eth0,eth0.20
UniFi DHCP: Pi-hole als DNS
- Settings → Networks → IoT
- DHCP Name Server: Manual
- DNS Server:
192.168.1.36(dein Pi mit Pi-hole)
So nutzen alle IoT-Geräte Pi-hole als DNS - und du siehst, welche “nach Hause telefonieren” wollen.
Teil 5: Home Assistant mit Traefik
Warum kein network_mode: host?
Mit Traefik brauchst du Bridge-Netzwerke für die Labels. Das bedeutet:
- ❌ Automatische mDNS-Erkennung funktioniert nicht (Multicast geht nicht durch NAT)
- ✅ Aber wir nutzen feste IPs - zuverlässiger und sicherer!
- ✅ Sicherer durch Isolation
- ✅ Traefik HTTPS funktioniert
Warum funktioniert das trotzdem? Docker-Container im Bridge-Netzwerk kommunizieren über NAT mit der Host-IP als Source. Die Firewall sieht also die IP deines Pi (z.B. 192.168.1.36) - und genau die haben wir in Teil 2 für den Zugriff auf das IoT-VLAN freigegeben!
Docker Compose für Home Assistant
Lokales Setup (PiHole, lokale DNS, nur Heimnetzwerk):
- ✅ Nutze
entrypoints=web(HTTP) - ✅ Keine Zertifikate nötig
- ✅ Funktioniert problemlos mit allen Integrationen (Tapo, Hue, Škoda Connect, etc.)
- ⚠️ Ab HA 2025.11: Companion App warnt bei HTTP, ist aber weiterhin nutzbar
Externes Setup (DynDNS, von außen erreichbar):
- ✅ Nutze
entrypoints=websecure+certresolver=letsencrypt(HTTPS) - ✅ Let’s Encrypt Zertifikate für sichere Verbindung
- ✅ Nötig für externen Zugriff
Beispiel unten zeigt HTTPS-Variante - für HTTP ersetze einfach:
- "traefik.http.routers.homeassistant.entrypoints=websecure"
- "traefik.http.routers.homeassistant.tls.certresolver=letsencrypt"
+ "traefik.http.routers.homeassistant.entrypoints=web" # ~/docker/home-assistant/docker-compose.yml
services:
homeassistant:
container_name: homeassistant
image: ghcr.io/home-assistant/home-assistant:stable
restart: unless-stopped
privileged: true
networks:
- traefik_network
environment:
- TZ=Europe/Berlin
volumes:
- ./config:/config
- /run/dbus:/run/dbus:ro
labels:
# Traefik Konfiguration
- "traefik.enable=true"
- "traefik.http.routers.homeassistant.rule=Host(`home.deine-domain.de`)"
- "traefik.http.routers.homeassistant.entrypoints=websecure"
- "traefik.http.routers.homeassistant.tls.certresolver=letsencrypt"
- "traefik.http.services.homeassistant.loadbalancer.server.port=8123"
networks:
traefik_network:
external: true
Alternative: Mit Macvlan für direkte VLAN-Anbindung
Wenn du möchtest, dass Home Assistant eine eigene IP im IoT-VLAN bekommt, kannst du Macvlan nutzen. Eine ausführliche Erklärung zu Macvlan findest du in meinem Docker Macvlan Artikel.
# docker-compose.yml mit Macvlan
services:
homeassistant:
container_name: homeassistant
image: ghcr.io/home-assistant/home-assistant:stable
restart: unless-stopped
privileged: true
networks:
traefik_network:
iot-vlan:
ipv4_address: 192.168.20.5
environment:
- TZ=Europe/Berlin
volumes:
- ./config:/config
- /run/dbus:/run/dbus:ro
labels:
- "traefik.enable=true"
- "traefik.http.routers.homeassistant.rule=Host(`home.deine-domain.de`)"
- "traefik.http.routers.homeassistant.entrypoints=websecure"
- "traefik.http.routers.homeassistant.tls.certresolver=letsencrypt"
- "traefik.http.services.homeassistant.loadbalancer.server.port=8123"
- "traefik.docker.network=traefik_network"
networks:
traefik_network:
external: true
iot-vlan:
driver: macvlan
driver_opts:
parent: eth0.20 # VLAN 20 Interface
ipam:
config:
- subnet: 192.168.20.0/24
gateway: 192.168.20.1
ip_range: 192.168.20.5/32 # Nur diese eine IP für HA
Hinweis: Macvlan ist komplex und hat einige Fallstricke (z.B. kann der Host den Container nicht direkt erreichen). Die erste Variante mit Bridge-Netzwerk reicht für die meisten Setups! Details: Docker Macvlan erklärt
Teil 6: Home Assistant Konfiguration
trusted_proxies konfigurieren
Da Traefik als Proxy vor Home Assistant steht:
# ~/docker/home-assistant/config/configuration.yaml
homeassistant:
name: "DarkWolf Smart Home"
unit_system: metric
time_zone: Europe/Berlin
currency: EUR
http:
use_x_forwarded_for: true
trusted_proxies:
- 172.18.0.0/16 # Docker traefik_network (Bereich anpassen!)
- 192.168.1.0/24 # Management VLAN
logger:
default: warning
Wichtig: Den IP-Bereich von traefik_network findest du mit:
docker network inspect traefik_network | grep Subnet
Geräte manuell hinzufügen
Da mDNS eventuell nicht alle Geräte findet, füge sie manuell hinzu:
Philips Hue:
- Einstellungen → Geräte & Dienste → + Integration
- Philips Hue
- IP-Adresse manuell eingeben:
192.168.20.10 - Button auf Bridge drücken
Homematic IP:
Es gibt zwei Varianten, Homematic IP in Home Assistant einzubinden:
| Variante | Hardware | Vorteile | Nachteile |
|---|---|---|---|
| Cloud (Access Point) | Homematic IP Access Point (HAP) | Einfach, keine Extra-Hardware | Cloud-Abhängig |
| Lokal (CCU) | CCU3 oder RaspberryMatic | Stabil, kein Cloud-Zwang, mehr Möglichkeiten | Extra Hardware/Setup nötig |
Variante 1: Homematic IP Cloud (Access Point)
Für die Cloud-Integration benötigst du mindestens Home Assistant 2025.5. Frühere Versionen hatten Probleme mit automatischen Status-Updates (Fix in 2025.5).
Wenn du bereits einen Homematic IP Access Point (die kleine weiße Box) mit der App nutzt:
- Einstellungen → Geräte & Dienste → + Integration
- Homematic IP Cloud suchen
- SGTIN eingeben (steht auf der Unterseite des Access Points, z.B.
3014-xxxx-xxxx-xxxx-xxxx-xxxx) - PIN eingeben (falls gesetzt, sonst leer lassen)
- Den blauen Button am Access Point drücken wenn aufgefordert
Wichtig für VLANs: Der Access Point braucht Internetzugang! Stelle sicher, dass deine Firewall-Regeln *.homematic.com und *.eq-3.de erlauben (siehe Bekannte Cloud-Domains).
Variante 2: Homematic IP lokal (CCU3/RaspberryMatic)
Die stabilere Alternative - erfordert eine CCU3 oder RaspberryMatic:
# configuration.yaml
homematic:
interfaces:
rf:
host: 192.168.20.11
port: 2001
ip:
host: 192.168.20.11
port: 2010
Diese Variante funktioniert komplett lokal ohne Cloud-Abhängigkeit.
Beliebte Homematic IP Geräte für Home Assistant - Cloud oder lokal
Homematic IP Komplett-Bundle
| Bild | Produkt | Preis | |
|---|---|---|---|
| Produktdaten werden geladen... | |||
Teil 7: Container starten und testen
Home Assistant starten
cd ~/docker/home-assistant
docker compose up -d
Logs prüfen
docker logs -f homeassistant
Achte auf Fehler wie:
- “Unable to connect” → Firewall-Regeln prüfen
- “Invalid authentication” → trusted_proxies prüfen
Verbindung zu IoT-Geräten testen
# Vom Pi aus (nicht aus dem Container!)
ping 192.168.20.10 # Hue Bridge
# Aus dem Container
docker exec -it homeassistant ping 192.168.20.10
Falls das nicht funktioniert: Firewall-Regeln in UniFi prüfen!
Traefik-Zugriff testen
curl -I https://home.deine-domain.de
Du solltest einen 200 OK oder Redirect bekommen.
Teil 8: Sicherheits-Hardening
Fail2Ban für Home Assistant
Home Assistant hat eingebauten IP-Ban nach fehlerhaften Logins. Aktiviere ihn:
# configuration.yaml
http:
ip_ban_enabled: true
login_attempts_threshold: 5
Kein externer Zugriff ohne VPN
Empfehlung: Mache Home Assistant NICHT direkt aus dem Internet erreichbar!
Bessere Optionen:
- WireGuard VPN auf dem UniFi Gateway
- Tailscale (einfach einzurichten)
- Cloudflare Tunnel (ohne Port-Freigabe)
Falls du doch externen Zugriff brauchst:
# Traefik: IP Whitelist Middleware
labels:
- "traefik.http.middlewares.home-ipwhitelist.ipwhitelist.sourcerange=87.123.0.0/16"
- "traefik.http.routers.homeassistant.middlewares=home-ipwhitelist"
IoT-Geräte: Internet blockieren
Für Geräte die kein Internet brauchen (Hue, Zigbee-Geräte):
- UniFi → Firewall Rules
- Regel: Block IoT → WAN
- Ausnahmen für Cloud-Dienste (TAPO Server, Homematic Cloud)
KI-BildKI-generiert mit Gemini
Geschafft! Dein Smart Home ist jetzt professionell abgesichert. Falls etwas nicht funktioniert, hilft dir der folgende Troubleshooting-Bereich.
Troubleshooting
| Problem | Ursache | Lösung |
|---|---|---|
| Hue Bridge nicht gefunden | Gerät nicht erreichbar | IP manuell eintragen (empfohlen) oder mDNS-Reflection aktivieren |
| TAPO Timeout | Firewall | Regel HA → IoT prüfen |
| TAPO “403 to handshake1” | Third-Party Compatibility nicht aktiviert | In TAPO App: Einstellungen → TAPO Lab → Third-Party Compatibility aktivieren |
| ”400 Bad Request” | trusted_proxies | Docker-Netzwerk IP-Range hinzufügen |
| Dashboard lädt nicht | HTTPS/WSS Mix | Nur HTTPS verwenden |
| Gerät antwortet nicht | VLAN-Routing | Firewall Established-Regel prüfen |
Netzwerk-Debugging
# Welche VLANs sind aktiv?
ip -d link show | grep vlan
# DNS-Auflösung testen
nslookup hue.local 192.168.1.36
# Routen anzeigen
ip route show
# Firewall-Logs in UniFi
# Settings → System → Logging → Enable Firewall Logging
Docker Netzwerk prüfen
# Traefik Netzwerk Details
docker network inspect traefik_network
# HA Container Netzwerke
docker inspect homeassistant | grep -A 20 Networks
Komplettes Setup auf einen Blick
Netzwerk-Architektur
KI-BildKI-generiert mit Gemini
Zusammenfassung der Dateien
| Datei | Zweck |
|---|---|
docker-compose.yml | Home Assistant + Traefik Labels |
config/configuration.yaml | HA Basis + trusted_proxies |
config/secrets.yaml | Passwörter (nicht in Git!) |
| UniFi: Networks | VLAN 20 (IoT) |
| UniFi: Firewall Rules | HA ↔ IoT Kommunikation |
Du wirst hier einen groben Überblick finden.
Allerdings biete ich dir auch noch etwas mehr Support an:
- Du benötigst persönlichen Support
- Du möchtest von Beginn an Unterstützung bei deinem Projekt
- Du möchtest ein hier vorgestelltes Plugin durch mich installieren und einrichten lassen
- Du würdest gerne ein von mir erstelltes Script etwas mehr an deine Bedürfnisse anpassen
Für diese Punkte und noch einiges mehr habe ich einen limitierten VIP-Tarif eingerichtet.
Falls der Tarif gerade nicht verfügbar ist, kontaktiere mich auf Discord!
Fazit
Ein professionelles Smart Home Setup mit VLANs ist mehr Aufwand - aber die Sicherheit ist es wert. IoT-Geräte sind berüchtigt für Sicherheitslücken, und mit dieser Architektur können sie maximal das IoT-VLAN kompromittieren.
Was du erreicht hast:
| Aspekt | Vorher (host mode) | Jetzt (VLANs) |
|---|---|---|
| IoT-Isolation | ❌ Alles im selben Netz | ✅ Eigenes VLAN |
| Firewall | ❌ Keine Kontrolle | ✅ Explizite Regeln |
| DNS-Kontrolle | ❌ - | ✅ Pi-hole für alle |
| Reverse Proxy | ❌ Direkt Port 8123 | ✅ Traefik HTTPS |
| Externer Zugriff | ❌ Port-Forwarding | ✅ VPN/Tunnel |
Die komplette Serie
- Home Assistant Installation
- Integrationen: TAPO, Hue, Homematic IP
- Dashboards und Automatisierungen
- Fortgeschritten: Traefik, VLANs, UniFi (dieser Artikel)
Fragen zur VLAN-Konfiguration? Schreib in die Kommentare oder komm auf meinen Discord-Kanal.
Kommentare