Seite 1 von 2

openHAB schaltet Synology NAS aus

Verfasst: 31. Mär 2021 20:47
von GrandJury
Hallo,

ich bin ganz frisch im Thema openHAB dabei, nachdem ich einige Jahre Fhem genutzt habe und dies auch immer noch tue, bis ich mit openHAB einigermaßen klar komme. Steinigt mich daher bitte nicht, wenn ich einige Dinge noch nicht so ganz drauf habe. :)

Mir geht es um folgendes Szenario:

OpenHAB 3 (openhabian) läuft auf einem RPI4. Soweit so gut. Nun möchte ich aber, dass openHAB auch darüber "entscheidet", wann mein Synology NAS ein- und ausgeschaltet wird. Einschalten läuft via WOL problemlos. Ausschalten jedoch nicht.

In Fhem konnte ich das mit einem Shell Command lösen. Nun habe ich selbiges auch über openHAB versucht umzusetzen. Über die Konsole läuft dieser Befehl Problemlos durch. "authorized_keys" ist auf der Synology gesetzt und ich kann sie auch ohne Fehlermeldung herunterfahren. Mit openHAB bekomme ich das jedoch noch nicht hin.

Hinzu sei vielleicht noch gesagt, dass ich bisher nur über die WebUI arbeite, was hoffentlich nicht zu blasphemisch ist. :oops:

Ich habe hier im Forum dann den Hinweis auf das Binding Exec gesehen, wo ich dann (naiv wie ich bin) den Befehl hinterlegt habe. Natürlich war das kein Erfolg. Mein NAS bleibt weiterhin Online. Mein Befehl sieht wie folgt aus:

Code: Alles auswählen

ssh root@192.168.178.28 -p 99 poweroff
Lässt sich solch ein Befehl überhaupt absetzen oder muss man da irre viel querbeet machen? Auch habe ich hier was von einer Whitelist im Zusammenhang mit Exec gelesen, von der ich aber keine Ahnung habe, wo ich diese finde.

Zuletzt sah ich hier auch immer wieder den Hinweis, wenn es um ähnliche Probleme ging, doch MQTT zu verwenden. Da muss ich allerdings gestehen, dass ich bisher nicht mal genau verstanden habe, wie das dann in der Theorie läuft, zumal ich bislang auch nicht weiß, wie ich auf mein NAS eine Gegenstelle einrichte und diese dann dazu veranlassen kann, dass der Server heruntergefahren wird.

Tut mir leid für den ganzen Text. Aber vielleicht hat ja jemand eine Idee, wie ich so ein sleep on Lan Szenario am besten umgesetzt bekomme.

Vielen Dank. :)

Re: openHAB schaltet Synology NAS aus

Verfasst: 1. Apr 2021 15:49
von udo1toni
Also das wird ganz sicher funktionieren, Du musst halt alle Randbedingungen erfüllen :)

Punkt 1: Zugriff über ssh ohne Passworteingabe. dazu musst Du auf dem openHAB-System den private Key hinterlegen, mit dem Du dich als root auf der Synology anmelden kannst. der private Key darf nicht passwortgeschützt sein. Er darf nur für den User openhab (nicht openhabian!) lesbar sein, der user openhab muss der Eigentümer des key file sein. Die datei sollte am besten im home-Verzeichnis des Users openhab in einem Verzeichnis .ssh liegen (welches möglichst nur durch den User openhab lesbar sein sollte...) Das home-Verzeichnis für den user openhab ist gewöhnlich /usr/share/openhab/, am besten prüfst Du das aber noch mal nach. Natürlich musst Du das file mit angeben, damit ssh weiß, dass es die Datei verwenden soll.

Code: Alles auswählen

ssh root@192.168.178.28 -i ~/.ssh/keyfilename -p 99 poweroff
Zum Testen, ob das Ganze mit dem User openhab funktioniert (und nicht mit dem User openhabian...) stellst Du ein sudo -u openhab voran:

Code: Alles auswählen

sudo -u openhab ssh root@192.168.178.28 -i ~/.ssh/keyfilename -p 99 poweroff
Punkt 2: selbst wenn Du das exec Binding korrekt eingerichtet hast (also ein Thing mit der richtigen Befehlszeile und den run-Channel mit einem Switch Item verknüpft), musst Du auf jeden Fall noch die Befehlszeile exakt so, wie im Thing hinterlegt in die whitelist eintragen.

Re: openHAB schaltet Synology NAS aus

Verfasst: 2. Apr 2021 03:15
von GrandJury
Hallo udo1toni,

vielen Dank für deine Hilfe. :)

Mit dem User "openhab" konnte ich mit dem Befehl

Code: Alles auswählen

sudo -u openhab ssh root@192.168.178.28 -i ~/.ssh/authorized_keys -p 99 poweroff
die Synologie herunterfahren. Ich habe anschließend die Whitelist um diesen Befehl erweitert, wobei ich den Zusatz "sudo -u openhab" weggelassen habe. Ebenso habe ich den Befehl auch dem Exec Binding hinzugefügt und den run-Channel mit einem Switch Item verknüpft.

Nun habe ich ein Dummy Item erstellt und eine Regel hinterlegt, damit der Dummy den Switch vom Channel auslösen kann. Dort springt der Status auch auf "ON", was ja laut Beschreibung bedeuten soll, dass der Befehl ausgeführt wird. Das passiert jedoch nicht bzw. die Synology bleibt online.

Ich habe es daraufhin auch mit dem o. g. Befehl inkl. "sudo -u openhab" probiert und diesen zur Whitelist hinzugefügt. Leider brachte auch das keinen Erfolg. Ich bin mir nun unsicher, woran der letzte Schritt scheitert. Muss ich bei der Verknüpfung des Switch Items zum run-Channel noch irgendwas bestimmtes beachten?

Re: openHAB schaltet Synology NAS aus

Verfasst: 3. Apr 2021 12:03
von udo1toni
Das sudo brauchst Du keinesfalls, dabei geht es ja gerade darum, die Aktion als User openhab auszuführen.
Die whitelist ist manchmal etwas zickig. Gern genommen: Leerzeichen am Anfang des Befehls (verboten).
Ein Neustart von openHAB oder auch dem ganzen Rechner kann helfen. Manchmal muss man nach dem Neustart nochmals auf die whitelist zugreifen.
Liegt die whitelist im richtigen Verzeichnis?

Re: openHAB schaltet Synology NAS aus

Verfasst: 21. Apr 2021 17:27
von GrandJury
Sorry udo1toni, dass ich länger nicht geantwortet habe. Brauchte eine kleine OpenHAB Pause. :)

Ein Leerzeichen am Anfang habe ich nicht. Das habe ich auch eben nochmal geprüft. Neustart hatte ich einmal durchgeführt.

Zum Verzeichnis:

Die Whitelist liegt bei mir unter ./openhab/misc/
Dort ist sie als "exec.whitelist" benannt. Muss der Name eventuell ein anderer sein? Also z. B. nur "whitelist"?

Re: openHAB schaltet Synology NAS aus

Verfasst: 21. Apr 2021 21:36
von udo1toni
Also, der Name der Datei ist korrekt, der Ort ebenfalls. Ich gehe mal davon aus, dass die Datei auch "schon da war", also dass openHAB sie bei der Installation von exec angelegt hat.

Re: openHAB schaltet Synology NAS aus

Verfasst: 23. Apr 2021 14:16
von GrandJury
Ja, richtig. Die war bereits da. Habe sie also nicht selbst angelegt.

Ich habe den Befehl auch nochmal in Putty getestet. Ich bin mir nicht sicher, ob das bei meinen ersten Versuchen schon vorhanden war, jedoch kommt ein Warnhinweis zum User openhabian, dass der Zugriff zur Key-Datei nicht möglich ist. Ist ja auch ok. Soll ja von openhab geschehen. Der Befehl bewirkt dennoch, dass die Synology heruntergefahren wird.

Code: Alles auswählen

sudo -u openhab ssh root@192.168.178.28 -i ~/.ssh/authorized_keys -p 99 poweroff
[sudo] Passwort für openhabian:
Warning: Identity file /home/openhabian/.ssh/authorized_keys not accessible: Permission denied.
Über das Exec Binding klappt es dennoch weiterhin nicht mit dem Befehl:

Code: Alles auswählen

ssh root@192.168.178.28 -i ~/.ssh/authorized_keys -p 99 poweroff
Muss der Befehl im Binding noch mit Anführungszeichen (obwohl ich das auch schon mal getestet habe) versehen werden? Oder muss ich noch irgendwo definieren, dass das Binding tatsächlich den User openhab nutzt? Ich habe da keinen Ansatz mehr. Kann ich irgendwo Logs von openhab finden, um zu sehen, ob da irgendwelche Fehlermeldung auftreten? :(

Re: openHAB schaltet Synology NAS aus

Verfasst: 25. Apr 2021 02:33
von scotty
Du solltest den offen Port hier nicht so zeigen. Im Netz sind darüber hinaus genügend Portscanner unterwegs. Ich hatte selbst gerade folgendes Erlebnis:

Sehr geehrter Benutzer,

die IP-Adresse [34.77.163.42] versuchte sich innerhalb von 5 Minuten 10 Mal erfolglos bei RSYNC auf DS918 anzumelden und wurde um 22.04.2021 20:47 blockiert.

Von DS918

Jetzt achte ich noch mehr auf Sicherheit.

Re: openHAB schaltet Synology NAS aus

Verfasst: 25. Apr 2021 14:32
von GrandJury
Hallo scotty,

hast recht. Danke für den Hinweis. Bei mir ist schon nach zwei erfolglosen Anmeldeversuchen schluss. :) Der Port ist bei mir aber von außen nicht erreichbar. Ich ändere ihn aber dennoch mal kurz ab. Danke nochmal. :)

Re: openHAB schaltet Synology NAS aus

Verfasst: 26. Apr 2021 22:58
von udo1toni
Es spielt tatsächlich dank Portscanner keine Rolle, ob man den Port kennt oder nicht. Ein Angreifer, der ein Ziel sucht, probiert einfach, bis er den richtigen Port erwischt, es gibt nur 65538 davon, nicht jeder davon kann beliebig verwendet werden, was die Anzahl der zu scannenden Ports (unwesentlich) reduziert.

Meine Tipps für Sicherheit:

1. Möglichst gar keine Verbindung von Außen zulassen.
2. Wenn schon, dann nur über eine gesicherte Verbindung, z.B. über ein verschlüsseltes VPN, die FRITZ!Box bietet entsprechende Funktionen, man kann aber auch prima mit Wireguard arbeiten. Natürlich muss dazu auch ein Port durchgereicht werden, aber Wireguard ist dafür ausgelegt, nur authentisierte Zugriffe zu erlauben. :)
3. Man kann auch einen ssh Zugang nach außen legen, dann aber bitte unbedingt Passworte komplett deaktivieren und stattdessen ausschließlich über Schlüsselpaare arbeiten. Da hat nicht mal die NSA eine Chance, in annehmbarer Zeit in Dein Netz einzudringen.
4. Updates, Updates, Updates. Aller beteiligten Systeme, soweit das möglich ist.

Wenn man bereit ist, viel Zeit zu investieren, kann man auch auf eine fortgeschrittene Firewall bauen, aber immer dran denken: Eine Firewall muss auch korrekt konfiguriert werden.