TinyMatic und passwortgesicherter Zugang zum XML-API

Support, Fragen und Diskussionen zur HomeMatic App für Android

Moderator: Co-Administratoren

DAC324
Beiträge: 19
Registriert: 05.06.2019, 16:35
Danksagung erhalten: 1 Mal

TinyMatic und passwortgesicherter Zugang zum XML-API

Beitrag von DAC324 » 05.06.2019, 16:59

Hallo alle,

ich habe den Zugang zum XML-API meiner CCU2 mit Passwort gesichert (Anleitung hier).

Allerdings kann TinyMatic damit nichts anfangen; trotz der entsprechenden Einstellungen erhalte ich nur die Fehlermeldung "401 Unauthorized".

Vom Rechner aus über den Browser funktioniert das auch wie gewünscht, nur die App TinyMatic verweigert die Anmeldung und gibt den Fehler 401 Unauthorized aus.

HTTP Auth ist in den Netzwerkeinstellungen aktiviert, Benutzername und Passwort sind eingetragen (und funktionieren im Browser auch).

Ich habe die Einstellungen komplett zurück gesetzt und alles neu eingetragen. Es funktioniert einfach nicht (unabhängig auch von der Einstellung "HTTPS aktiviert").

Wo liegt der Fehler?

Beste Grüße
DAC324

ultrah
Beiträge: 427
Registriert: 08.03.2010, 13:38
Hat sich bedankt: 6 Mal
Danksagung erhalten: 34 Mal

Re: TinyMatic und passwortgesicherter Zugang zum XML-API

Beitrag von ultrah » 05.06.2019, 23:17

Hi,

Es gibt von dieser Anleitung eine aktualisierte Version, die mit TinyMatic funktioniert:

https://web.archive.org/web/20170627190 ... -mod_auth/

Danke übrigens für die Idee mit archive.org, ich hatte die Anleitung schon verloren geglaubt!

DAC324
Beiträge: 19
Registriert: 05.06.2019, 16:35
Danksagung erhalten: 1 Mal

Re: TinyMatic und passwortgesicherter Zugang zum XML-API

Beitrag von DAC324 » 06.06.2019, 10:49

ultrah hat geschrieben:
05.06.2019, 23:17
Hi,

Es gibt von dieser Anleitung eine aktualisierte Version, die mit TinyMatic funktioniert:

https://web.archive.org/web/20170627190 ... -mod_auth/

Danke übrigens für die Idee mit archive.org, ich hatte die Anleitung schon verloren geglaubt!
Vielen herzlichen Dank für diese Aktualisierung und die schnelle Hilfe. Damit funktioniert es tatsächlich wie gewünscht.

Ich habe hier bei mir auf den Einsatz einer extra SD-Karte verzichtet und die Dateien nebst Anleitung auf meinem Rechner gespeichert. Da man nach einem Update der CCU-Firmware ohnehin die Konfigurationsdateien des lighttpd anpassen muss, kann man bei dieser Gelegenheit dann auch die config.conf wieder zurück spielen.
Außerdem fand ich den Hinweis in den Kommentaren, doch am besten gleich den kompletten Zugang über SSL zu schützen, sehr sinnvoll. Bei der normalen Portweiterleitung über den Router ist die Oberfläche der CCU sonst aus dem Internet ohne Schutz erreichbar.

Verkürzte Vorgehensweise also:
  1. SSH-Zugang über die Web-Oberfläche der CCU freischalten (Einstellung -> Systemsteuerung -> Sicherheit)
    Über SSH auf der CCU einloggen:

    Code: Alles auswählen

    ssh root@IP-Adresse.der.CCU
    Man landet dabei automatisch im Verzeichnis /root, welches sich sehr gut als Ablage für die Konfigurationsdateien missbrauchen lässt. Im Folgenden wird also dieses Verzeichnis verwendet. Wer eine SD-Karte hat, muss natürlich die Pfade gemäss Anleitung von psycho0verload anpassen.
  2. Root-Filesystem als schreibbar einhängen:

    Code: Alles auswählen

    mount -o remount,rw /
  3. Konfigurationsdatei für den Zugriff auf das XML-API erstellen:

    Code: Alles auswählen

    vi config.conf
    Inhalt der Datei:

    Code: Alles auswählen

    auth.backend = "plain"
    auth.backend.plain.userfile = "/root/.pw"
    auth.require = (
            "/config/xmlapi" =>
            (
                    "method" => "basic",
                    "realm" => "Benutzername",
                    "require" => "valid-user"
            ),
            "/addons/xmlapi" =>
            (
                    "method" => "basic",
                    "realm" => "Benutzername",
                    "require" => "valid-user"
            )
    )
  4. Konfigurationsdatei für den Zugriff über SSL erstellen:

    Code: Alles auswählen

    vi config.conf.ssl
    Inhalt der Datei:

    Code: Alles auswählen

    auth.backend = "plain"
    auth.backend.plain.userfile = "/root/.pw"
    auth.require = (
            "/" =>
            (
                    "method" => "basic",
                    "realm" => "Benutzername",
                    "require" => "valid-user"
            )
    )
  5. Datei mit Benutzernamen und Passwörtern erstellen:

    Code: Alles auswählen

    vi .pw
    Inhalt der Datei:

    Code: Alles auswählen

    Benutzername:Passwort
    WICHTIG: Der Benutzername sollte mit dem Namen unter "realm" in den Konfigurationsdateien übereinstimmen!
  6. Konfiguration des lighttpd aktualisieren:

    Code: Alles auswählen

    vi /etc/lighttpd/lighttpd.conf
    Folgende Zeile ist ganz ans Ende der Datei einzutragen (mit "G" springt man im VI ans Dateiende):

    Code: Alles auswählen

    include "/root/config.conf"
  7. Konfiguration des lighttpd für SSL-Zugriff aktualisieren:

    Code: Alles auswählen

    vi /etc/lighttpd/lighttpd_ssl.conf
    Folgende Zeile ist ganz ans Ende der Datei einzutragen (mit "G" springt man im VI ans Dateiende):

    Code: Alles auswählen

    include "/root/config.conf.ssl"
  8. CCU neu starten mit

    Code: Alles auswählen

    reboot
Fertig :)


Vielen Dank und beste Grüße
DAC324

ultrah
Beiträge: 427
Registriert: 08.03.2010, 13:38
Hat sich bedankt: 6 Mal
Danksagung erhalten: 34 Mal

Re: TinyMatic und passwortgesicherter Zugang zum XML-API

Beitrag von ultrah » 06.06.2019, 11:47

Super! Und vielen Dank für die Anleitung, das wird anderen Nutzern sicher helfen :)

funnydee
Beiträge: 3
Registriert: 09.01.2023, 17:35
System: Alternative CCU (auf Basis OCCU)

Re: TinyMatic und passwortgesicherter Zugang zum XML-API

Beitrag von funnydee » 09.01.2023, 17:40

Seit einem der letzten Updates funktioniert das so nicht mehr. Der Passwortschutz wird ignoriert und man kann die Seite wieder einfach so aufrufen. Hat Jemand eine Idee was angepasst werden muss? Oder gibt's irgendwo eine noch aktuellere Anleitung?

rentier-s
Beiträge: 409
Registriert: 19.06.2017, 09:24
Hat sich bedankt: 20 Mal
Danksagung erhalten: 72 Mal

Re: TinyMatic und passwortgesicherter Zugang zum XML-API

Beitrag von rentier-s » 10.01.2023, 10:30

Bei mir läuft XML-API 1.22 auf PivCCU3 3.65.8, müsste also beides aktuelle sein.

Die Passwortabfrage für die XML-API hatte ich mir seinerzeit irgendwo gegoogelt, weiß aber nicht mehr wo.

Am Ende der /etc/lighttpd/lighttpd.conf steht include "/etc/config/lighttpd/*.conf", ich glaube das ist da standardmäßig schon drin.

/etc/config/lighttpd/xmlapi_auth.conf hat dann folgenden Inhalt:

Code: Alles auswählen

auth.backend = "htpasswd"
auth.backend.htpasswd.userfile = "/etc/config/lighttpd/.htpasswd"
auth.require = ( "/addons/xmlapi/" =>
        (
        "method" => "basic",
        "realm" => "Authentication required",
        "require" => "valid-user"
        ),
                "/config/xmlapi/" =>
       (
        "method" => "basic",
        "realm" => "Authentication required",
        "require" => "valid-user"
        )
)
Frag mich bitte nicht, wie ich die /etc/config/lighttpd/.htpasswd erstellt habe, das htpasswd Tool gibt es nämlich nicht. Wahrscheinlich auf dem Raspberry OS und dann rein kopiert.

Da alles unter /etc/config liegt, wird es in Backups mit gesichert und bei Updates nicht überschrieben.

Benutzeravatar
blackhole
Beiträge: 3742
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 188 Mal
Danksagung erhalten: 592 Mal

Re: TinyMatic und passwortgesicherter Zugang zum XML-API

Beitrag von blackhole » 10.01.2023, 15:44

funnydee hat geschrieben:
09.01.2023, 17:40
Der Passwortschutz wird ignoriert und man kann die Seite wieder einfach so aufrufen.

Erzähle doch einmal, warum genau Du einen Passwortschutz benötigst.
Es gibt sicherlich einen sinnvolleren Weg den Zugriff auf die API einzuschränken.

Matthias K.
Beiträge: 1180
Registriert: 14.02.2016, 12:32
System: Alternative CCU (auf Basis OCCU)
Wohnort: Heidenheim
Hat sich bedankt: 57 Mal
Danksagung erhalten: 230 Mal

Re: TinyMatic und passwortgesicherter Zugang zum XML-API

Beitrag von Matthias K. » 10.01.2023, 18:18

War bei mir z.B. sehr hilfreich im Zusammenspiel mit einem vorgeschalteten ReverseProxy mit Auth. (+ Fail2Ban), der die Basic Auth. an die Zentrale durchgereicht hat (natürlich mit einem passenden Zertifikat per HTTPS).
So konnte ich TinyMatic mittels SplitDNS intern wie extern mit einheitlicher Einstellung konfigurieren.

Aber inzwischen gehe ich eh andere Wege was die (manchmal notwendige) Bedienung angeht, die XML-API hab ich nicht mehr drauf, war mir ein Dorn im Auge...

funnydee
Beiträge: 3
Registriert: 09.01.2023, 17:35
System: Alternative CCU (auf Basis OCCU)

Re: TinyMatic und passwortgesicherter Zugang zum XML-API

Beitrag von funnydee » 11.01.2023, 08:32

rentier-s hat geschrieben:
10.01.2023, 10:30
Bei mir läuft XML-API 1.22 auf PivCCU3 3.65.8, müsste also beides aktuelle sein.
Ich habe 3.65.11 installiert, seitdem funktioniert es nicht mehr. Also Vorsicht beim Upgrade, ich habe auch deine Konfiguration getestet.

blackhole hat geschrieben:
10.01.2023, 15:44
Erzähle doch einmal, warum genau Du einen Passwortschutz benötigst.
Es gibt sicherlich einen sinnvolleren Weg den Zugriff auf die API einzuschränken.
Ich möchte einfach auf so sicherheitskritischen Diensten einen Passwortschutz haben. Selbst wenn ich es nur im lokalen Netzwerk nutze. Und es hat ja auch immer funktioniert. Nur seit Version 3.65.11 nicht mehr.

Benutzeravatar
jmaus
Beiträge: 9953
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 471 Mal
Danksagung erhalten: 1927 Mal
Kontaktdaten:

Re: TinyMatic und passwortgesicherter Zugang zum XML-API

Beitrag von jmaus » 11.01.2023, 17:52

rentier-s hat geschrieben:
10.01.2023, 10:30
Bei mir läuft XML-API 1.22 auf PivCCU3 3.65.8, müsste also beides aktuelle sein.

Die Passwortabfrage für die XML-API hatte ich mir seinerzeit irgendwo gegoogelt, weiß aber nicht mehr wo.
Du kannst dich gerne auch mal an der aktuellen development version des XML-API Addons versuchen die es aktuell als v2 pre-release zum testen und feedback dazu geben hier diskutiert wird:

viewtopic.php?f=41&t=77234

Diese kommt unter anderem mit einem verpflichtendem Login-Mechanismus daher um sich somit Authentifizieren zu müssen bevor mal die API nutzen kann. Und wenn man da jetzt das ganze via HTTPS absichert sollte das ganze nun sehr sicher ablaufen. Ein einfaches Port Forwarding würde ich aber trotzdem nicht drauf loslassen, vmtl.
RaspberryMatic 3.75.7.20240601 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

Antworten

Zurück zu „TinyMatic“