Verschlüsselter Zugriff per HTTPS/SSL via Synology Reverse-Proxy
Ziel:
Mittels HTTPS/SSL gesicherter Zugriff auf den Miniserver aus der Web-Oberfläche, App und Config
Damit kann man auch in offenen Netzen (z.B. Bahn, Cafe, Hotel, ...) sicher auf den Miniserver zugreifen, ohne ein VPN bereitstellen/aufbauen zu müssen (was oft in den genannten Situationen fehlschlägt)
Achtung: HTTPS/SSL ist kein 100% Schutz vor Attacken auf den Miniserver
Der Miniserver ist auch mit einer HTTPS/SSL Lösung weiterhin von außen erreichbar. Wer also Benutzername/Passwort errät, bzw. mittels brute-force herausbekommt, ist im Miniserver drinnen. Wer den Miniserver mit vielen Requests lahmlegen möchte (denial-of-service Attacke), kann das auch via HTTPS/SSL. Um den Miniserver auch gegen diese Bedrohungsszenarien stärker zu schützen, benötigt man andere/weitergehende Lösungen (z.B. VPN oder HTTPS/SSL mit Client-Zertifikat)
Die nachfolgende Anleitung beschreibt einfach (sollte also auch für Anfänger geeignet sein), wie man mit Hilfe eines Reverse-Proxys auf einer Synology NAS eine per SSL gesicherte (verschlüsselte) Verbindung auf den Miniserver der Generation 1 machen kann. Prinzipiell kann das auch über jeden anderen Server, der reverse-proxy beherrscht, gemacht werden.
Bei Miniserver der Generation 2 nicht nötig
Der Miniserver ab Generation 2 beherrscht selbst den Zugriff per HTTPS/SSL, da er (genau für diesen Zweck) hardwaretechnisch besser ausgestattet ist. Diese Anleitung braucht man also nur bei Miniserver der Generation 1.
Voraussetzungen:
Ein Synology NAS im selben Netzwerk wie der Loxone Miniserver
Der Loxone Miniserver hat eine feste IP-Adresse im lokalen LAN
Miniserver, App und Config mindestens auf Version 10.3
Besitz einer Web-Domain (für HTTPS Voraussetzung) - Webserver/Website ist keine Voraussetzung
Etwas Erfahrung bei der Konfiguration der Web-Domain beim Domain Provider (für die Nameserver-Einstellungen)
Erfahrung bei der Einrichtung von Port-Forwarding am Router
Diese Lösung unterstützt keine automatische Änderung der URL von http://loxone.deinedomain.com auf https://loxone.deinedomain.com - man muss also im browser explizit das https:// eingeben. Um auch das zu schaffen muss auf der Synology ein Apache Server eingerichtet werden (hier nicht beschrieben).
Einrichten:
1. Beim Domain Provider C-NAME → Synology
Zunächst einmal muss beim Domain Provider eine C-NAME Einstellung für die Loxone (z.B. loxone.deinedomain.com) auf die Synology zeigen bzw. auf deren DNS-Name (z.B. mynas.synology.me). Achtung: Ein DNS-Name der Loxone (z.B. serial.dns.loxonecloud.com) wird nicht benötigt.
2. Port 80 und 443 am Router auf Synology weiterleiten
Damit ein Zertifikat via Let's Encrypt angelegt werden kann und damit dann später die HTTPS-Requests an die Synology (und von dort weiter an den Miniserver) gehen, muss die Synology in Internet erreichbar sein. Dazu muss am Router Port 80 und 443 an die Synology weitergeleitet werden. Das findet man bei den Routern meistens unter "Port Forwarding". Dort für die IP-Adresse der Synology den Port 80 und 443 weiterleiten.
3. Auf der Synology NAS einen Reverse-Proxy einrichten
Auf der Synology einen Reverse-Proxy einrichten: Unter Systemsteuerung / Anwendungsportal / Reverse Proxy:
Beschreibung: loxone.deinedomain.com
Protokoll: HTTPS
Hostname: loxone.deinedomain.com
Port: 443
HSTS aktivieren an
HTTP/2 aktivieren an
Ziel:
Protokoll: HTTP
Hostname: Interne IP Adresse vom Miniserver
Port: 80
Das wars, unter Custom Header oder Advanced Settings muss nichts verändert werden. Die Einrichtung eines Apache HTTP-Servers ist ebenfalls nicht notwendig.
3. Auf der Synology NAS ein Zertifikat für die Loxone einrichten
Auf der Synology unter "Systemsteuerung", Sicherheit", "Zertifikat" ein Zertifikat für loxone.deinedomain.com von Let's Encrypt erstellen lassen. Hat man bereits ein Zertifikat für die Loxone anderswo her, dann muss dieses ebendort eingespielt werden.
Wichtig:
Alternative Name vergeben (gleich wie der Domain-Name) - Chrome verweigert sonst das Zertifikat
Danach unter Konfigurieren den Dienst "loxone.deinedomain.com" dem neuen Zertifikat zuordnen.
4. Port 80 am Router wieder entfernen
Damit die Synology nur mehr HTTPS Requests erhält muss am Router die Weiterleitung des Ports 80 auf die Synology wieder entfernt werden.
Wenn die Loxone zu diesem Zeitpunkt noch via Loxone Cloud-DNS erreichbar ist, kann jetzt auch die Port-Weiterleitung des dafür verwendeten Ports entfernt werden - es sei denn man will weiterhin die Handy-App verwenden und ist sich im Klaren, dass diese nicht gut abgesichert ist.
Beinahe Fertig
Jetzt geht jeder https Request auf loxone.deinedomain.com zunächst (wegen des C-NAME Eintrags) auf mynas.synology.me und (wegen der Port-Weiterleitung) an die Synology. Dort wird der Request dann (wegen des Reverse-Proxys) von HTTPS auf HTTP umgewandelt und an die Loxone weitergeleitet. Antworten werden wiederum wegen des Reverse-Proxys analog dazu verschlüsselt zurückgegeben.
Problembehandlung:
Falls es noch nicht funktioniert, dann noch folgende Schritte machen:
Ist der Miniserver aus Browser/Config extern erreichbar, aber nicht aus der App, dann folgende Schritte probieren:
In der Config beim Miniserver unter Externe Adresse explizit loxone.deinedomain.com:443 eingeben
In der App den Miniserver löschen und außerhalb vom LAN manuell mit der externen Adresse (loxone.deinedomain.com) neu anlegen
Bild und/oder Ton der Intercom werden nicht übertragen:
Die App verwendet den in der Loxone als interner Zugriff angegebenen Link, die Lösung ist also beim internen Link dasselbe wie bei externem Link anzugeben. Also z.B. so wie im Bild rechts. ACHTUNG: Der Zugriff erfolgt via HTTP, ist also (samt Username/Passwort) unsicher
Für das Video muss eine Port-Weiterleitung am Router vom in der Config angegebenen Port auf den Port 80 der Intercom eingerichtet werden (z.B. so wie im Bild rechts)
Klingeln der Intercom funktioniert nicht mehr:
In der Config unter Gerätestatus prüfen, ob für die Intercom eine Seriennummer (=MAC Adresse) vorhanden ist, wenn nicht:
Intercom aus Config löschen - an Miniserver schicken (→ unter Gerätestatus nicht mehr vorhanden)
Intercom neu anlegen (noch mit IP-Adressen für internes Video/Audio) - an Miniserver schicken (→ unter Gerätestatus mit MAC Adresse vorhanden)
wie oben beim internen Video/Audio dieselbe Adresse eintragen wie bei extern
Eine 2te Intercom anlegen und bei dieser
bei Host für Audio (intern) die IP-Adresse des SIP-Moduls eintragen
den Ausgang Qb mit dem Eingang Tr der ersten Intercom verbinden