RaspberryMatic - XML-API - Authentifizierung Problem

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

viper2097
Beiträge: 46
Registriert: 19.01.2017, 07:35

RaspberryMatic - XML-API - Authentifizierung Problem

Beitrag von viper2097 » 25.01.2017, 09:03

Hallo Leute!

Mein erster Post in diesem Forum, also muss ich natürlich mal loswerden dass das Forum echt klasse ist und ich mich in den letzten Tagen schon sehr viel eingelesen habe und mich im großen und ganzen als Homematic Neuling schon sehr gut zurecht finde. Leider habe ich aber aktuell ein Problem bei dem ich nicht weiterkomme und bitte euch um Hilfe:

System:
Raspberry Pi 3 - 2.25.15.20170114
XML API 1.11

Einstellungen:
Fixe IP Adresse für Raspberrymatic
für WebUI ist ein Benutzer mit Namen und Passwort als Admin konfiguriert
Portweiterleitung im Router um den Raspi auch von Aussen zu erreichen
VPN über einen zweiten Raspberry optional möglich

Problemstellung:
Über mein und das Handy meiner Frau soll per Geofencing Anwendung (EgiGeoZone) die Anwesenheit gesteuert werden.
Das funktioniert indem mit dieser App jeweils eine URL beim Betreten und eine andere URL beim Verlassen der eingestellten Zone aufgerufen wird.
Klappt so weit über direkte URL Aufrufe der XML API überraschend gut.
Das soll natürlich im Hintergrund laufen und man soll nichts davon mitbekommen. Also Verbindung per VPN nicht machbar.
Das Problem ist dabei natürlich, dass die XML-API ohne Passwortabfrage im Netz hängt.

1. Frage: Wäre dazu die Firewall CCU Protect besser geignet? So wie ich das verstehe funktioniert diese nur im LAN, nicht aber wenn ich von Aussen per Portforwarding über den Router auf die HM zugreife da die HM ja dann nur die MAC/IP des Routers sieht...

2. Frage: Jetzt habe ich es natürlich mit dieser Methode versucht: http://psycho0verload.de/2015/03/01/ccu ... -mod_auth/
Ergebniss: Wenn ich nun auf die XML-API zugriefen will kommt die Aufforderung den Benutzernamen und das Passwort einzugeben, es wird aber anscheinend nicht akzeptiert und die Aufforderung kommt sofort wieder.

Was habe ich wie gemacht?

EDIT: Hat sich erledigt, siehe nächsten Post.
Zuletzt geändert von viper2097 am 25.01.2017, 12:59, insgesamt 1-mal geändert.

viper2097
Beiträge: 46
Registriert: 19.01.2017, 07:35

Re: RaspberryMatic - XML-API - Authentifizierung Problem

Beitrag von viper2097 » 25.01.2017, 11:23

Ach Gott, wie immer:

Da zerbricht man sich einen ganzen Tag den Kopf daran und googelt sich dumm und dämlich bis man sich endlich entschließt im Forum um Hilfe zu fragen und dann kommt man letztendlich doch selbst drauf:

Man muss entsprechend dieser Anleitung vorgehen, nur leider findet google ausschließlich die Anleitung im ersten Post:
http://psycho0verload.de/2016/10/31/ccu ... -mod_auth/

Wenn ich das richtig verstehe, dann wird hier user/password plain und nicht verschlüsselt übertragen.


Ergänzungen zur Anleitung meinerseits:

Einfach einen Ordner auf der Homematic erstellen geht genauso wie mit einer externen SD Karte
Punkt 7: Ich habe mich hier für intern und extern passwortgeschützt entschieden. SD Kartenpfad muss natürlich angepasst werden. Bei nur extern passwortgeschützt bin ich mir nciht sicher wie die http host Bezeichnung exakt lauten muss.
Punkt 8: Hier wird hingewiesen dass realm übereinstimmen muss. Wird aber gar nicht gebraucht. Einfach im Klartext benutzernamen:passwort in die Datei schreiben.
Punkt 11: Anstelle über das webinterface die Zentrale neu zu starten kann man auch einfach reboot eingeben.


Fazit:
Bei Aufruf von http://meinedyndns.com/config/xmlapi/st ... ew_value=1 kommt die Aufforderung Benutzernamen und Passwort einzugeben. Hat man das, dann kommt die gewohnte Anzeige.
Ebenso kann man aber auch http://benutzername:passwort@meinedyndn ... ew_value=1 aufrufen und der Befehl wird direkt verarbeitet.
Zuletzt geändert von viper2097 am 25.01.2017, 13:39, insgesamt 1-mal geändert.

Xel66
Beiträge: 14165
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 585 Mal
Danksagung erhalten: 1500 Mal

Re: RaspberryMatic - XML-API - Authentifizierung Problem

Beitrag von Xel66 » 25.01.2017, 12:36

viper2097 hat geschrieben: Portweiterleitung im Router um den Raspi auch von Aussen zu erreichen
Meinst Du, dass das gut ist? Die CCU Firmware ist auf Grund der viele Zugriffsmöglichkeiten nicht geeignet, direkt im Internet zu hängen. Je nach installierten Addons sind direkte unautorisierte Zugriffe ohne notwendiges Login möglich. Es gibt mehrere Threads, die sich mit dieser Problematik auseinandersetzen.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Luxtra
Beiträge: 452
Registriert: 13.12.2014, 07:00
Danksagung erhalten: 1 Mal

Re: RaspberryMatic - XML-API - Authentifizierung Problem

Beitrag von Luxtra » 25.01.2017, 13:07

Ist an deiner Anwesenheitssteuerung etwas Besonderes, oder warum nutzt du nicht eine der hier kursierenden einfachen Möglichkeiten?

viper2097
Beiträge: 46
Registriert: 19.01.2017, 07:35

Re: RaspberryMatic - XML-API - Authentifizierung Problem

Beitrag von viper2097 » 25.01.2017, 13:15

Xel66 hat geschrieben:
viper2097 hat geschrieben: Portweiterleitung im Router um den Raspi auch von Aussen zu erreichen
Meinst Du, dass das gut ist? Die CCU Firmware ist auf Grund der viele Zugriffsmöglichkeiten nicht geeignet, direkt im Internet zu hängen. Je nach installierten Addons sind direkte unautorisierte Zugriffe ohne notwendiges Login möglich. Es gibt mehrere Threads, die sich mit dieser Problematik auseinandersetzen.

Gruß Xel66
Nunja, ich sehe das etwas differenziert.

Per Portweiterleitung hängt mein Raspberry Pi2 im WWW.
Auf dem läuft:
FTP
HTTP Wake on Lan Service
SSH
OpenVPN
Samba Server

Dann habe ich eine Foscam IP Kamera die ebenfalls per Portweiterleitung im WWW hängt.

Und jetzt kommt eben die Homematic dazu welche ebenfalls per Portweiterleitung für WebUI/XML-API und SSh im WWW hängt.


Kein einziger dieser "Dienste" hängt an einem Standard Port, ausser natürlich FTP.

FTP - Passwortgeschützt
HTTP Wake on Lan Service - Passwortgeschützt
SSH Raspberry - Passwortgeschützt
OpenVPN - Zertifikat
Samba Server - Nur intern
Foscam - Passwortgeschützt
SSH Raspberrymatic - Passwortgeschützt
WebUI/XML-API - Da ich das zum Laufen gebracht habe, nun auch passwortgeschützt

Ein potentzieller Angreifer müsste also:
1. Einen richtigen Port erwischen (das dauert lange, die verwendeten fangen meist fünfstellig an)
2. Wissen auf welches Gerät er da jetzt gestoßen ist
3. Bei einer Brutforce Attacke das in drei Versuchen knacken, sonst wird seine IP für 15 Minuten gesperrt

Dazu muss ich noch interessant genug sein dass mich überhaupt wer "angreifen" will, und zusätzlich noch die Zeit investieren etwas zu knacken.
Das Risiko halte ich für äusserst gering und sehr überschaubar.

Seitdem ich Geräte habe auf die man von Aussen zugreifen kann, sehe ich mir regelmäßig die Log Files meines Routers an.
In 1 1/2 Jahren war letzte Woche zum ersten mal ein Zugriff denn ich nicht mir oder einem Bekannten zuordnen konnte. Der hat den FTP Server angesprochen. Allerdings gibt es kein Log über eine IP Sperre und ich habe auch keinen nicht erfolgreichen Anmeldeversuch in den Logs gesehen. Es wurde also anscheinend entweder nur der Port gescannt, oder die Anmeldemaske wurde weggeklickt.

Aber zurück zum Thema:
Würde ich "nur" die App Homedroid verwenden, dann wäre es kein Problem, da würde ich jedes mal eine VPN Verbindung aufbauen.

Aber die Anwesenheit soll ja von meinem, und dem Handy meiner Frau, per Geofancing gesteuert werden. Das funktioniert unglaublich gut mit der App EgiGeoZone. Wenn ich die festgelegte Zone betrete wird URL A aufgerufen. Wenn ich die festgelegte Zone verlasse, dann wird URL B aufgerufen.
Damit ändere ich jeweils die Systemvariable von meiner Anwesenheit oder der meiner Frau.
Das geht leider nicht vollautomatisiert im Hintergrund, denn dazu müsste dan am Handy permanent die VPN Verbindung eingeschalten sein, was sinnlos ist und bei weitem nicht die gewünschte Stabilität hat.

Somit habe ich keine andere Wahl als die Homematic von Außen erreichbar einzurichten. Aber, das ist jetzt Passwortgeschützt und somit ist es für mich sicher genug und in Ordnung.

Absolute Sicherheit gibt es so oder so nicht. Sicherheit ist nur ein anderer Ausdruck für die Dauer die es benötigt um sich wo Zutritt zu verschaffen.
Wäre meine Eingangstür aufgesperrt und vielleicht sogar nur angelehnt, dann wäre das für mich nicht in Ordnung.
So ist sie aber verschlossen und abgesperrt.
Ich sehe da jetzt keinen Grund mir einen Kopf zu machen weil ich ja gerne eine 5cm dicke Eingangstür aus Stahl mit Biometrischen Zutrittssystem hätte.


Puhh, das war jetzt ausschweifender als zuerst gedacht ;).

Luxtra hat geschrieben:Ist an deiner Anwesenheitssteuerung etwas Besonderes, oder warum nutzt du nicht eine der hier kursierenden einfachen Möglichkeiten?
Welche wäre denn eine kursierende, einfache Möglichkeit?
Bei der man absolut nichts machen muss ausser heimkommen oder wegfahren und dabei vollkommen automatisch im Hintergrund läuft ohne das man was davon mitbekommt?
Habe mich in den letzten Tagen / Wochen viel eingelesen bevor ich mich dazu entschlossen habe mir die Homematic zuzulegen, hätte aber keine einfacherer / praktikablere / sicherere Methode gefunden.

Per Taster -> Uninteressant, nerviger Aufwand und vergisst man leicht.
Per WLan ping -> Uninteressant. Nach 5 Minuten sind usnere Androids im Deep Sleep und antworten nicht mehr auf einen Ping.
Zeitgesteuert -> Uninteressant, die Systemvariable soll (muss) der Wahrheit entsprechen.
Bluetooth -> Wohnung zu groß und verbraucht zu viel Strom, ausserdem würde eine praktikable Gegenstelle fehlen.

Xel66
Beiträge: 14165
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 585 Mal
Danksagung erhalten: 1500 Mal

Re: RaspberryMatic - XML-API - Authentifizierung Problem

Beitrag von Xel66 » 25.01.2017, 15:05

viper2097 hat geschrieben:WebUI/XML-API - Da ich das zum Laufen gebracht habe, nun auch passwortgeschützt
Das ist jetzt nicht Dein Ernst. Du glaubst, nur weil Du das Webinterface mit einem Passwort versehen hast, ist die es in irgendeiner Weise geschützt. Vermutlich sogar noch plain http. Der Zugriff auf die XML-API erfolgt ohne jegliches Login. Die notwendigen Daten sind direkt auslesbar. Da schützt Dich auch ein hoher Port in keinster Weise. Das ist so, als ob Du den Schlüssel Deiner Haustür unter die Fußmatte legst und meinst, die Methode sei sicher, weil ja keiner wissen kann, dass der Schlüssel da drunter liegt.
1. Einen richtigen Port erwischen (das dauert lange, die verwendeten fangen meist fünfstellig an)
Mit einem Portscanner kein wirkliches Hindernis.
2. Wissen auf welches Gerät er da jetzt gestoßen ist
Völlig uninteressant für Scriptkiddies & Co. Denen geht es darum, Rechner zu übernehmen, um des Übernehmens wegen oder um sie zur Spamschleuder oder zum Hosten von Daten fraglichen Inhaltes.
3. Bei einer Brutforce Attacke das in drei Versuchen knacken, sonst wird seine IP für 15 Minuten gesperrt
Der "Schutz" ist ein zahnloser Tieger. Solche Rechner wie Deiner werden als Zwischenstation für irgendwelche Angriffe genutzt. Die IP lässt sich also per Script binnen Sekundenbruchteilen wechseln.
Dazu muss ich noch interessant genug sein dass mich überhaupt wer "angreifen" will, und zusätzlich noch die Zeit investieren etwas zu knacken.

Bist Du, glaube es mir.
Das Risiko halte ich für äusserst gering und sehr überschaubar.
Na dann viel Spaß...
In 1 1/2 Jahren war letzte Woche zum ersten mal ein Zugriff denn ich nicht mir oder einem Bekannten zuordnen konnte. Der hat den FTP Server angesprochen.
Wie kann das denn passieren, wenn Du doch hohe Ports benutzt?! Den kann man doch gar nicht finden... Merkst Du was?
Allerdings gibt es kein Log über eine IP Sperre und ich habe auch keinen nicht erfolgreichen Anmeldeversuch in den Logs gesehen.
Es wäre nicht das erste Log, welches bereinigt wird.

Wie bereits beschrieben: Viel Spaß...
Ich bin per simpler G...-Suche schon unabsichtlich auf CCUs gelandet, weil ich nach bestimmten Begriffen in Scripten gesucht habe. Die wenigsten liefen auf Port 80. Das nur zu Deiner security through obscurity durch die Wahl "hoher" Ports.
Somit habe ich keine andere Wahl als die Homematic von Außen erreichbar einzurichten. Aber, das ist jetzt Passwortgeschützt und somit ist es für mich sicher genug und in Ordnung.
Es ist lediglich der Webzugang passwortgeschützt. Zugriffe sind trotzdem ohne jegliche Autorisierung möglich. Das Webinterface ist uninteressant. Auf dem Port 80 laufen noch andere Dienste. Jetzt klar? Aber auch wenn Du Dein VPn nicht ständig nutzen willst gäbe es einen Reverse-Proxy, der verschlüsselt über https kommuniziert und einen wirklichen Login benötigt. Eine Anleitung ist hier im Forum zu finden.
Absolute Sicherheit gibt es so oder so nicht. Sicherheit ist nur ein anderer Ausdruck für die Dauer die es benötigt um sich wo Zutritt zu verschaffen.
Wäre meine Eingangstür aufgesperrt und vielleicht sogar nur angelehnt, dann wäre das für mich nicht in Ordnung.
Die Eingangstür ist nur zugezogen und keineswegs verschlossen. Aber daneben steht das Fenster auf kipp. Und das mit absoluter Sicherheit.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

viper2097
Beiträge: 46
Registriert: 19.01.2017, 07:35

Re: RaspberryMatic - XML-API - Authentifizierung Problem

Beitrag von viper2097 » 25.01.2017, 23:54

Ich glaube du hast mich missverstanden.
Natürlich ist die XML API Passwortgeschützt. Ich verwechsle das nicht mit dem Passwort der WebUI.
Wenn du meine vorherigen Posts liest, dann wird dir auch auffallen dass es "nur" plain ist. Das ist aber achon mal besser als gar nichts und ohne Aufwand bekommt man das auch nicht geknackt. Da brauchts schon nen Wireshark oder MITM Angriff in dem Moment wo ich die Kommandos sende.
Sehr unwahrscheinlich.
Ja, digest authentification per SSL wäre schon mal besser, keine Frage. Habe ich auch nach der obrigen Anleitung versucht zum Laufen zu bekommen. Klappte aber leider nicht. Eventuell kannst du mir ja sagen warum nicht?

Bitte lies genau was ich schreibe. Dann wüsstest du auch dass der einzigen Scan den ich bis jetzt gefunden habe auf dem FTP Server war, welcher wiederum der einzige ist welcher den "normalen" Port verwendet.
Und glaubs mir, so einfäch hängst du dich nicht bei mir rein wenn du nicht von vorne herein weißt nach was du suchen musst...
Aber man kann auch sein neues Auto nie vom Händler abholen, weil wenn man es benützen würde, könnte es ja auch gestohlen werden...

Reverse Proxy wäre noch eine Möglichkeit, da bin ich dann aber zusätzlich von meinem zweiten RPi abhängig welcher hier und da mal gerne die Netzwerkverbindung verliert. Also ist da die Verfügbarkeit nicht hoch genug.

Ich lasse mich aber von dir noch gerne über weitere Alternativen aufklären. Ich befürchte aber dass deine Einstellung in die Richtung geht, dass nur ein Rechner ohne Netzwerkkabel in einem zubetonierten Raum wo man auch physisch nicht reinkommt so sicher ist dass man ihn auch benutzen kann.
Eventuell landen wir dann ja noch beim Sicherheitsrisiko meines gerooteten Handys und das man Onlinebanking nur mit einem frisch aufgesetzten virtuellen Betriebssystem und einem alten Nokia 3210 zum SMS Tan Empfang verwenden sollte...

Anstelle dass man mal froh wäre dass jemand von Haus aus folgende Schritte behirnt:
Nicht Standard Port verwenden zur Weiterleitung
WebUI mit Password sichern
XML-API mit Passwort sichern

Und nicht einfach die CCU mit ner 80er Portweiterleitung ins Netz hängt und seine DynDNS öffentlich auf Facebook postet und sich dann fragt warum der nette Russe am anderen Ende der Welt das Licht zuhause ein und aus schaltet...

grissli1
Beiträge: 2268
Registriert: 22.06.2012, 17:46
System: Alternative CCU (auf Basis OCCU)
Wohnort: Tirol/Austria
Hat sich bedankt: 13 Mal
Danksagung erhalten: 2 Mal

Re: RaspberryMatic - XML-API - Authentifizierung Problem

Beitrag von grissli1 » 26.01.2017, 07:58

viper2097 hat geschrieben:Reverse Proxy wäre noch eine Möglichkeit, da bin ich dann aber zusätzlich von meinem zweiten RPi abhängig welcher hier und da mal gerne die Netzwerkverbindung verliert. Also ist da die Verfügbarkeit nicht hoch genug.
Also ich verwende einen Raspi 2 mit ReverseProxy und LXCCU seit Beginn. Hatte noch kein einziges Problem mit der Netzwerkverbindung. Und da ich wirklich viel über diese Schnittstelle mache, wäre mir das aufgefallen. Hatte am Anfang Cloudmatic drauf. Aber da sind wir ein paar mal vor verschlossener Tür gestanden, weil der Server offline war und mussten einen Schlüssel holen. Seit dem ReverseProxy hatte ich noch nie einen Ausfall.
viper2097 hat geschrieben:Eventuell landen wir dann ja noch beim Sicherheitsrisiko meines gerooteten Handys und das man Onlinebanking nur mit einem frisch aufgesetzten virtuellen Betriebssystem und einem alten Nokia 3210 zum SMS Tan Empfang verwenden sollte...
So einer arbeitet bei mir :lol: :lol: :lol:

Viele Grüße
Chris
System: RaspberryMatic 3.41.11.20190126 auf RPi3, ReverseProxy auf RPi3

viper2097
Beiträge: 46
Registriert: 19.01.2017, 07:35

Re: RaspberryMatic - XML-API - Authentifizierung Problem

Beitrag von viper2097 » 26.01.2017, 09:47

grissli1 hat geschrieben: Also ich verwende einen Raspi 2 mit ReverseProxy und LXCCU seit Beginn. Hatte noch kein einziges Problem mit der Netzwerkverbindung. Und da ich wirklich viel über diese Schnittstelle mache, wäre mir das aufgefallen. Hatte am Anfang Cloudmatic drauf. Aber da sind wir ein paar mal vor verschlossener Tür gestanden, weil der Server offline war und mussten einen Schlüssel holen. Seit dem ReverseProxy hatte ich noch nie einen Ausfall.
Der reverse Proxy und der RasPi selbst arbeiten sicher absolut zuverlässig. Ich habe mit meinem RasPi ein anderes Problem:
Seitdem ich ihn von Wheezy auf Jessie geupdatet habe, habe ich das Problem dass er die Netzwerkverbindung verliert und nicht mehr selbstständig herstellt wenn der Router neu gestartet wird.
Oder wenn bei einem Stromausfall der RasPi schneller hochgefahren ist als der Router.
Dann kann ich nur mehr den Stecker ziehen und ihn so neu starten.

Weder ich, noch ein Linux Systemadmin sind draufgekommen warum das letztendlich so ist. Und ich bin bis heute zu faul, dass ich ihn mal neu aufsetze und alles wieder einstelle / konfiguriere...
Aber wenn ich das mal angehe, dann wäre natürlich der Reverseproxy die erste Wahl.

Luxtra
Beiträge: 452
Registriert: 13.12.2014, 07:00
Danksagung erhalten: 1 Mal

Re: RaspberryMatic - XML-API - Authentifizierung Problem

Beitrag von Luxtra » 26.01.2017, 11:11

viper2097 hat geschrieben: ...

Per WLan ping -> Uninteressant. Nach 5 Minuten sind usnere Androids im Deep Sleep und antworten nicht mehr auf einen Ping.
...
WLan ping geht nicht, weil die Handys im Deep Sleep Modus sind, aber die Geofencing läuft trotzdem und erkennt Ortswechsel?

Antworten

Zurück zu „RaspberryMatic“