Hallo Zusammen,
nach einer etwas länger als erwarteten Entwicklungszeit habe ich soeben eine neue stabile RaspberryMatic Version (3.47.15.20190831) freigegeben. Diese Version bringt neben der Kompatibilität zur 3.47.15 CCU3/OCCU Firmware auch noch zum ersten mal Unterstützung für den neuen RaspberryPi4 mit 1GB, 2GB oder 4GB RAM mit sich. Des Weiteren sind in diese Version einige interessante Verbesserungen an der WebUI eingeflossen die nicht nur neue Feature und Bugfixes mit sich bringt, sondern gerade in Punkto System/WebUI-Sicherheit wurden von mir einige Probleme beseitigt die die WebUI um einiges sicherer machen sollte verglichen zu vorherigen Versionen.
Die komplette Liste aller Änderungen in dieser Version kann wie immer hier eingesehen werden:
CCU-System Änderungen:
- OCCU wurde auf Version 3.47.15-5 geupdatet mit voller Kompatibilität zur CCU3 3.47.15 Firmware die folgende Änderungen mit sich bringt:
- Die Daten der Logikschicht wurden beim Abmelden nicht mehr gespeichert.
- Funk-Schaltaktoren mit Leistungsmessung (HM-ES-PMSw1-Pl*) zeigten beim Energie- Zähler „NaN“ anstatt des Messwertes an.
- Bei dem HM-MOD-EM-8Bit Modul (Version 1.0) wurden die Kanalparameter des Kanal 3 in der Gerätekonfiguration nicht mehr dargestellt.
- Die Duty-Cycle Anzeige zeigte unter Umständen falsche Werte, wenn weitere Gateways im System vorhanden sind.
- Aktualisierung der ReGaHss Logikengine auf Version R1.00.0388.0212 (Aug 28 2019) die folgende Änderungen mit sich bringt:
- Verbesserung der WebUI Sicherheit durch Einführung einer automatischen login.htm Umleitung wenn auf System/ESP URLs ohne gültige SessionID zugegriffen werden.
- Beseitigung einiger Sicherheitslücken im Webserver der Logikschicht die es erlaubten via manipulierter POST requests auch ohne gültige SessionID Fremdcode auszuführen.
- Beseitigung der als CVE-2019-9583 bekannten Sicherheitslücke die es erlaubte gültige SessionIDs mittels zurückgegebener Location: Response header von der WebUI zu erhalten.
- Beseitigung der als CVE-2019-9726 bekannten Sicherheitslücke welche mit NUL-byte manipulierten URLs es erlaubte beliebige Dateien auf der CCU anzeigen zu lassen.
- Beseitigung der als CVE-2019-14474 bekannten Sicherheitslücke welche ReGaHss durch leere Call(“”) Aufrufe zum Absturz brachten.
- Problem beseitigt das trotz beendeter Session eine Warnung im Syslog ausgab.
- Bug in der neuen “State()” ReGa/HM-Skript Funktion beseitigt die es mit einem zusätzlichen Parameter erlaubt nun verzögerte Schaltoperationen durchführen zu lassen. Dort wurde die Verzögerung nur bei Schaltoperationen auf Systemvariablen durchgeführt und nicht bei der Anwendung auf Geräteobjekte welches nunmehr möglich sein sollte (#659).
- Falsche “Pointer is null” Fehlermeldungen in der ReGaHss Ausgabe beseitigt wenn keinerlei Kanäle eines Objektes aufgeräumt werden können.
- Anpassung der Monit/WatchDog Funktionalität um nun mittels der Existenz einer Datei “/etc/config/internetCheckDisabled” die konstante Überwachung und entsprechende Alarm-Benachrichtigung bei Wegfall der Internetkonnektivität der CCU zu deaktivieren (#664).
- Erhöhung des Monit/WatchDog Alarmierungsschwellwertes auf 5 Minuten für eine erhöht festgestellte CPU/Memory Nutzung des Gesamtsystems.
- Das tägliche Konfigurationsbackup auf einen externen Speicher wird nun mit einem “nice” Wert von 10 durchgeführt uns sollte somit höher prioritisierten Prozessen nicht mehr im Wege sein.
- Update des mitgelieferten CloudMatic CCU Addons auf die aktuellste Version die nun in der Webkonfiguration eine explizite SessionID Überprüfung mit sich bringt.
- Update des mitgelieferten Mediola Neo Server CCU Addons auf die aktuellste 2.4.6 version.
WebUI Änderungen:
- Integrierung eines neuen WebUI Patches der die Sicherheit beim beenden einer Session beim WebUI Logout verbessern sollte ([0060]).
- Integrierung eines neuen WebUI Patches der die Menüeinträge der WebUI alphabetisch sortiert und zusätzlich Menuicons einführt. Des Weiteren sortiert der neue Patch die Favoritenliste nun auch alphabetisch (#663, #665, @jp112sdl, [0061]).
- Erweiterung des DutyCycle ProgressBar WebUI Patches um die Möglichkeit die DutyCycle Werte für bis zu 5 zusätzliche LAN Gateways darzustellen (#670, [0057]).
- Beseitigung eines Bugs im verbesserten SkriptEditor WebUI Patch der dazu führte das das Editorfenster automatisch vergrößert wurde und kein Zeilenumbruch stattfand sodass das Editorfenster zu groß werden konnte (#671, [0046]).
- Beseitigung eines Bugs im ESP Sicherheit WebUI Patch welcher dazu führte das das im initialen Installationswizard eingegebene Admin Passwort nicht korrekt gespeichert wurde (#677, @quickmic, [0052]).
- Überarbeitung des ESP Sicherheit WebUI Patch um zusätzliche Sicherheitsüberprüfungen in “programs.fn” zu implementieren und somit die Nutzung von Funktionen je nach Nutzerlevel abzusichern. Dies sollte die in CVE-2019-14475 und CVE-2019-14473 genannten Sicherheitsprobleme beseitigen ([0052]).
Linux Betriebsystem Änderungen:
- Unterstützung für den neuen RaspberryPi4 Model B für alle drei Modelle (1GB, 2GB, 4GB RAM) hinzugefügt. Bitte hierbei beachten, dass momentan auf Grund von Limitation in der RaspberryPi firmware die HDMI console beim Hochfahren momentan keine Ausgaben anzeigt und der HDMI Ausgang momentan nicht deaktiviert werden kann um mögliche Funk-Interferenzen zu reduzieren.
- Integrierung des USB Ethernet Gadget Modus für die RaspberryPi Zero und RaspberryPi Zero W Modelle. Nun kann durch anlegen einer Datei (/etc/config/usbGadgetModeEnabled) dafür gesorgt werden das beim Hochfahren ein über USB an diese Modelle angeschlossener Rechner (Linux/macOS/Windows) als Ethernet-Gerät (eth0) erkannt wird und für den Internetzugang genutzt werden kann (#648, #216, @fhirschmann).
- Aktualisierung der Linux Kernelversion auf 4.19.69 für ASUS Tinkerboard bzw. auf 4.19.68 für RaspberryPi inkl. der passenden RaspberryPi Firmware Dateien.
- Aktualisierung der mit ausgelieferten Java version auf die aktuell stabilste 1.8.0_222-8.40.0.178 Version.
- Aktualisierung der bluetooth firmware Dateien für RaspberryPi Modelle die onboard Bluetooth support haben auf die jeweils aktuelle Version.
- Synchronisierung der U-Boot Einstellungen für alle unterstützten Hardwareplattformen.
- Änderung der Linux Kernel und CPIO Kompression auf LZ4 um das Booten so weit es geht zu beschleunigen da LZ4 etwas schneller sein sollte als GZIP Kompression.
- Abschalten der “max-worker” einstellungen in der globalen “lighttpd.conf” Konfiguration um etwaige Probleme beim WebUI-Upload größerer Dateien zu beseitigen.
Mitwirkende (diese Version, alphabetisch):
Die neue Version kann wie gehabt von folgender URL als *.zip Datei für die verschiedenen RaspberryPi Modelle heruntergeladen und installiert werden:
https://github.com/jens-maus/RaspberryM … ses/latest
Zu beachten gilt, das auf Grund der Unterstützung unterschiedlicher Geräte es getrennte Installationsarchive (*.zip Dateien) gibt die für die folgende Hardware jeweils einheitlich ist:
RaspberryPi4 Model B:
Code: Alles auswählen
RaspberryMatic-3.47.15.20190831-rpi4.zip
CCU3, ELV-Charly, RaspberryPi3 Model B+, RaspberryPi3 Model B, RaspberryPi3 Model A+, RaspberryPi2 Model B, RaspberryPi Compute Module 3, RaspberryPi Compute Module 3 lite:
Code: Alles auswählen
RaspberryMatic-3.47.15.20190831-rpi3.zip
RaspberryPi Zero W, RaspberryPi Zero, RaspberryPi Compute Module 1, RaspberryPi1 (A+/B+):
Code: Alles auswählen
RaspberryMatic-3.47.15.20190831-rpi0.zip
Tinker Board S, Tinker Board:
Code: Alles auswählen
RaspberryMatic-3.47.15.20190831-tinkerboard.zip
Bitte hierbei den Unterschied der Endung “-rpi4.zip“, “-rpi3.zip“, “-rpi0.zip” und “-tinkerboard.zip“beachten. D.h. man muss je nachdem welche Hardware eingesetzt wird ein unterschiedliches Image verwenden/installieren.
Zusätzlich dazu gibt es auch noch für den einmaligen Umstieg von einer CCU3 zu RaspberryMatic ein Installationsarchiv …
Code: Alles auswählen
RaspberryMatic-3.47.15.20190831-ccu3.tgz
… das man auf einer CCU3 direkt über den WebUI-integrierten Updatemechanismus hochladen und installieren lassen kann. Danach läuft dann auf einer CCU3 RaspberryMatic und zukünftige RaspberryMatic Updates können dann entweder durch das Einspielen von “-ccu3.tgz” Archiven erfolgen oder durch Nutzung des oben genannten “-rpi3.zip” Archives.
Update/Upgrade:
Das Update auf diese Version kann bei Einsatz einer Vorversion unter “Einstellungen->Systemsteuerung->Zentralen-Wartung” durch Upload der jeweiligen *.zip oder *.tgz Datei (Nicht ausgepackt!) erfolgen. Alternativ kann natürlich weiterhin auch einfach eine neue SD-Karte verwendet werden und das im Archiv befindliche *.img auf die neue SD Karte kopiert werden um dann von dort aus neu zu booten und via Backup-Restore das jeweils aktuelle Backup wiederherstellen zu lassen.
Hinweis:
Bitte beachten, dass natürlich vor jedem Update erst einmal ein manuelles Backup erfolgen sollte damit bei eventl. Fehlschlagen des WebUI-basierten Updates man mittels einer neuen SD-Karte dann sein aktuellstes Backup einfach wieder einspielen kann.
Für Bugreports und Featurerequests bitte den GitHub Issue-Tracker nutzen damit ich die Anfragen geordnet abarbeiten kann. Support- und Hilfeanfragen bei vermeintlichen Nutzungsproblemen bitte weiterhin hier als erstes im Forum platzieren und erst daraus ein Bugreport im GitHub machen wenn das Problem von anderen Nutzern bestätigt werden konnte.
Wie auch bei bisherigen Releases möchte ich auch bei diesem Release gerne wieder darum bitten bei Gefallen über eine mögliche Unterstützung/Spende für das RaspberryMatic Projekt nachzudenken. Wenn dem Einen oder Anderen dieses Release gefallen sollte, so würde ich mich natürlich über zahlreiche (auch gerne erneute) Spenden via PayPal oder auch Sachspenden freuen. Für PayPal-Spenden (die meine Motivation weiterhin an RaspberryMatic zu arbeiten wirklich sehr heben) bitte diesen Link nutzen.
Viel Spass mit der neuen RaspberryMatic Version!