Eine zweite FHEM Instanz auf einem Raspberry Pi oder Banana Pi einrichten

Begonnen von NewRasPi, 20 Januar 2019, 20:15:40

Vorheriges Thema - Nächstes Thema

Otto123

Zitat von: fredl99 am 23 Januar 2019, 14:38:20
@Otto123:
Genau so hab ich es weiter oben gemeint. Aber Du hast einen typo in Deinem sed-script: "evenTypes2"
korrigiert, danke.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

fredl99

Hallo Elmar,

Eine aktuelle FritzBox, auf der auch die neuesten Versionen von FritzOS noch laufen sollte in der normalen Konfiguration ausreichend sicher nach außen sein. Die hat normalerweise auch keine unnötigen Ports offen.

Macht man absichtlich "alles dicht", sollte man auch wissen was man tut, denn so manches könnte anschließend haken. Auch kurioses kann passieren: Als vor ca. zwei Jahren die Schwachstelle aller deutschen Telekom-Router bekannt wurde, haben die Ösis vorsichtshalber die heimischen Anschlüsse abgeklappert. Mein Zugang wurde gesperrt, weil sie ihn für bereits infiziert hielten, da sie einfach nirgends reinkamen... ;)

Wieder zum topic:
Das Heimnetz nach außen abzuschotten ist nur die halbe Miete. Fängst Du dir was ein, das von innen eine Verbindung aufbaut, hilft es dagegen nicht. Genau so arbeiten praktisch alle rootkits und ähnliche Malware. Du fängst Dir über eine infizierte Webseite oder email ein mini-script ein, das sich den dicken Rest von draußen nachzieht.

Otto123

Zitat von: fredl99 am 23 Januar 2019, 14:38:20
Ohne init-script am System wird bei einem reboot natürlich überhaupt nichts passieren.
Hab oben den Beitrag um den Start ergänzt  8)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

fredl99

Zitat von: Otto123 am 23 Januar 2019, 12:15:40
Bei einem shutdown der ersten Instanz (egal wie ob in FHEM oder über systemctl) wird die 2 Instanz auch mit beendet.
Ich weiß noch nicht genau wieso, aus der fhem.service kann ich das nicht ablesen.
Wenn der Elternprozess baden geht, saufen die Kinder mit ab. :)
Eine völlig autarke Instanz benötigt ihr eigenes init-script in SysV oder service-file in systemd.

Nochmal an @NewRasPi zum Thema credentials in der URL:
Es kommt auf den Browser an. Chrome hat die Weiterleitung dieser Methode an untergeordnete Resourcen vor einiger Zeit gekippt. (https://www.chromestatus.com/feature/5669008342777856) Mittlerweile lehnt es auch den ersten Aufruf direkt ab.

Der Gnome-Browser zum Beispiel hat hingegen gar kein Problem mit http://user:passwort@server:port/fhem
Andere hab ich jetzt nicht probiert, aber ich weiß ohnehin nicht was auf Deinem TV für einer läuft...

Otto123

Zitat von: fredl99 am 23 Januar 2019, 17:01:10
Wenn der Elternprozess baden geht, saufen die Kinder mit ab. :)
Danke, ich hatte es gerade eben durch Prozesse anschauen auch begriffen  :D
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Otto123

Zweiter Teil von mir: Komplett separierte Instanz
neuer User, neues Port, kopierter /opt/fhem Pfad, neuer Dienst, neue leere Konfig
Installiertes FHEM  mit Systemd als Voraussetzung!

Achtung, das kopiert und "patched" die Version von fhem.cfg und fhem.service Stand heute! Wenn sich in Zukunft was ändert muss das Ganze angepasst werden!

Das Script / die Befehle alle im sudo Kontext (sudo su) ausführen!
Ich hoffe die Kommentare genügen  :D
#!/bin/bash
# Username und Port vergeben
fUser=fhem3
fPort=8103
# Dienst User anlegen, Gruppen zuordnen
adduser $fUser --home /opt/$fUser --ingroup dialout --disabled-login --gecos ""
usermod -G audio,davfs2 $fUser
# aktiven Pfad kopieren
cp -r /opt/fhem/* /opt/$fUser/
chown -R $fUser: /opt/$fUser/
# fhem Service kopieren, anpassen und anlegen
cp /etc/systemd/system/fhem.service /etc/systemd/system/$fUser.service
sed -i -e "s/User=fhem/User=$fUser/;s/\/fhem/\/$fUser/;s/fhem.cfg/$fUser.cfg/" /etc/systemd/system/$fUser.service
systemctl --system daemon-reload
systemctl enable $fUser
# Leere cfg holen und anpassen
wget -q -O /opt/$fUser/$fUser.cfg https://svn.fhem.de/fhem/trunk/fhem/fhem.cfg
sed -i -e "s/\/fhem/\/$fUser/;s/\/eventTypes/\/eventTypes$fUser/;s/8083/$fPort/;\$aattr initialUsbCheck disable 1" /opt/$fUser/$fUser.cfg
# Service starten
systemctl start $fUser


Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

NewRasPi

Hallo Otto
das ist ja super wenn man damit automatisiert eine zusätzliche FHEM Instanz einrichten kann.
Ich hätte noch mal eine Frage zu den Rechten der einzelnen Dateien.
Für mich kurios erscheint es, dass wenn ich den Dateien die Rechte für JEDER ausschalte (chmod -R 770) auf meiner zweiten Instanz wieder kein
"Update check" oder "Update" geht.
Kann man irgend wo nachschauen, welche Dateien mit welchen Rechten ausgestattet werden müssen.
Schöne Grüße
Elmar
Raspberry Pi 2 Mod B + Raspberry Pi 3 + Raspberry Pi4; HM Lan Adapter; 8 Kanal Relaiskarte; ca. 15x 1wire Temperatur Sensor DS18B20; 10x HC-SR501 Bewegungsmelder; 9x HM Rauchmelder HM-Sec-SD; HM Funk Fenstersensoren; HM Strommess-Zwischenstecker;

Otto123

der User mit dem FHEM läuft muss Eigentümer sein.
Sieht man so für den Standardpfad ls -l /opt/fhem
Kann man für User fhem so setzen:
chown -R fhem: /opt/fhem

Ich denke: Dein FHEM läuft mit dem falschen User!
Was sagt {qx(ps -aux|grep fhem)} in deiner FHEM Kommandozeile?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

NewRasPi

Hallo Otto

fhem      2666  0.2  2.9  37600 30656 ?        S    22:11   0:08 perl fhem.pl fhem.cfg
fhem      2667  0.2  2.2  28216 22552 ?        S    22:11   0:08 perl fhem.pl fhem.cfg
fhem      2985  0.0  1.9  26288 19448 ?        S    22:11   0:00 perl fhem.pl fhem.cfg
fhem      2989  0.0  1.9  26976 20084 ?        S    22:11   0:00 perl fhem.pl fhem.cfg
fhem     17812  0.0  0.0   1892   528 ?        S    23:20   0:00 sh -c ps -aux|grep fhem
fhem     17813  0.0  0.1   7732  1512 ?        R    23:20   0:00 ps -aux
fhem     17814  0.0  0.0   4364   848 ?        S    23:20   0:00 grep fhem
Raspberry Pi 2 Mod B + Raspberry Pi 3 + Raspberry Pi4; HM Lan Adapter; 8 Kanal Relaiskarte; ca. 15x 1wire Temperatur Sensor DS18B20; 10x HC-SR501 Bewegungsmelder; 9x HM Rauchmelder HM-Sec-SD; HM Funk Fenstersensoren; HM Strommess-Zwischenstecker;

Otto123

gut alles läuft mit User fhem.
Die Rechte stimmen in allen Ebenen?
Ich weiß deinen Pfad nicht mehr ?
ls -lR /opt/fhem2/
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

NewRasPi

Zitat von: Otto123 am 23 Januar 2019, 23:57:27
gut alles läuft mit User fhem.
Die Rechte stimmen in allen Ebenen?
Ich weiß deinen Pfad nicht mehr ?
ls -lR /opt/fhem2/

Hallo Otto
bei dem Befehl rattern ja zig Seiten blitzschnell durch.
Nachdem ich eben gerade mit "sudo chmod -R 770 fhem2" im Verzeichnis /opt hatte laufen lassen, den "sudo reboot" durchgeführt,  dürfte jetzt alles passen.
.....
/opt/fhem2/www/frontend/www/frontend/lib/ext-4.2.0.663/images:
insgesamt 76
drwxrwx--- 2 fhem dialout 4096 Jul 14  2018 boundlist
drwxrwx--- 2 fhem dialout 4096 Jul 14  2018 box
drwxrwx--- 2 fhem dialout 4096 Jul 14  2018 button
drwxrwx--- 2 fhem dialout 4096 Jul 14  2018 dd
drwxrwx--- 2 fhem dialout 4096 Jul 14  2018 editor
drwxrwx--- 2 fhem dialout 4096 Jul 14  2018 form
drwxrwx--- 2 fhem dialout 4096 Jul 14  2018 grid
drwxrwx--- 2 fhem dialout 4096 Jul 14  2018 layout
drwxrwx--- 2 fhem dialout 4096 Jul 14  2018 menu
drwxrwx--- 2 fhem dialout 4096 Jul 14  2018 shared
drwxrwx--- 2 fhem dialout 4096 Jul 14  2018 sizer
drwxrwx--- 2 fhem dialout 4096 Jul 14  2018 slider
............


Ich habe aber jetzt auch mal das "Update check" und "Update" drei mal mit verbose 0 und verbose 1 (oder höher) getestet.
Es geht mit verbose 0 keine Update Prüfung und kein Update.

Grüße und gute Nacht für heute
Elmar
Raspberry Pi 2 Mod B + Raspberry Pi 3 + Raspberry Pi4; HM Lan Adapter; 8 Kanal Relaiskarte; ca. 15x 1wire Temperatur Sensor DS18B20; 10x HC-SR501 Bewegungsmelder; 9x HM Rauchmelder HM-Sec-SD; HM Funk Fenstersensoren; HM Strommess-Zwischenstecker;

Otto123

Ich halte dieses Rechte setzen für groben Unfug.
Ich weiß nicht wie das bei Linux per Standard wirklich gesetzt wird.
Ich weiß, dass verbogene Rechte ALLES bewirken können!

Normal ist es am fhem Pfad so:
Alle User haben r (4) Rechte an den Dateien und x (5) Rechte an den Verzeichnissen.
Der Eigentümer hat rw (6) an den Dateien und x (7) Rechte an den Verzeichnissen.

Irgendwo habe ich heute gelesen: mit verbose 0 gibt es keine Anzeige beim update check.

Gute Nacht
Otto

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

NewRasPi

Zitat von: Otto123 am 24 Januar 2019, 00:44:51
Ich halte dieses Rechte setzen für groben Unfug.
Ich weiß nicht wie das bei Linux per Standard wirklich gesetzt wird.
Ich weiß, dass verbogene Rechte ALLES bewirken können!

Normal ist es am fhem Pfad so:
Alle User haben r (4) Rechte an den Dateien und x (5) Rechte an den Verzeichnissen.
Der Eigentümer hat rw (6) an den Dateien und x (7) Rechte an den Verzeichnissen.

Irgendwo habe ich heute gelesen: mit verbose 0 gibt es keine Anzeige beim update check.

Gute Nacht
Otto
Hallo Otto
mich hat fredl99 aufgeschreckt. (...jeder Weltbürger ...)
Der Benutzer JEDER muss doch gar nichts auf meinem System dürfen. Das sollte "hoffentlich" auch nicht zu Störungen führen.
Bestimmt zeigt Euch Spezialisten die Erfahrung mehr dazu.
Sobald ich Zeit habe werde ich noch mal ein ganz neues jungfräuliches FHEM auf Stretch einrichten und da abgucken, wie den da die Rechte
vergeben sind.
Vielen Dank für Eure super Unterstützung.
Schöne Grüße
Elmar
 
Raspberry Pi 2 Mod B + Raspberry Pi 3 + Raspberry Pi4; HM Lan Adapter; 8 Kanal Relaiskarte; ca. 15x 1wire Temperatur Sensor DS18B20; 10x HC-SR501 Bewegungsmelder; 9x HM Rauchmelder HM-Sec-SD; HM Funk Fenstersensoren; HM Strommess-Zwischenstecker;

Otto123

Moin,

ZitatDer Benutzer JEDER muss doch gar nichts auf meinem System dürfen.
Naja aber dann dieses Recht global zu null machen ist auch keine Lösung. Bestimmte Dateien werden so abgesichert, aber "normal" darf JEDER lesen. Wie schon gesagt, die Rechte sind im FHEM Pfad normalerweise so:
drwxr-xr-x  2 fhem dialout   Verzeichnis
-rw-r--r--  1 fhem dialout  Datei

Ausnahme z.B: der Pfad .ssh - und genau deswegen ist Rechte von oben nach unten bügeln gefährlich (böse! wie Werner immer sagt)
ssh funktioniert nicht mehr mit verkorksten Rechten (777)
Das System schützt sich zum Teil gegen einen dummen Admin.  :D

Deswegen sag ich nochmal: chmod -R "einfach mal so" ist bestenfalls grober Unfug!

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Wernieman

Und auch ein reboot ist bei Rechteänderungen selten (bis gar nicht) nötig.
Wir leben in der Unix Welt (und nicht bei Windows).

Aber im fhem-Ordner selber ist eine Änderung jetzt nicht sooo dramatisch. Wichtig ist bei Sensiblen Dateien, das sie nicht für jeden lesbar/schreibbar sind, wie z.B. die ssh-keys. Auch ssl-Keys (und andere Konfigs) sind aus gutem Grunde nicht für jeden lesbar (z.B. /etc/sudoers.de). Aber bei Unterordnern sehe ich es (persönlich) entspannt.

Solange Du Rechte NICHT global setzt.

Aus meiner Berufserfahrung:
Habe mal ein chmod -R ausversehen auf / (root) angesetzt, wegen eines " " zuviel (Leerzeichen. also das chown hat ausgesehen
chmod -R / weitere/Verzeichnis/angaben
Also chmod hat "/" und "weitere/Verzeichnis/angaben" gesehen .... und wegen / Global .. anschließend konnten wir das System nur durch Neuaufbau "reparieren" ....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html