Update macht Mosquitto kaputt!

…zumindest scheinbar. Auch das reicht schon so weit,  dass sich sicher eine Menge Leute mächtig ärgern werden.

Dem allgemeinen Trend zur Bevormundung folgend und User für dumm zu erklären, haben die Mosquitto Leute ihr Produkt mit Version 2.0.0 ohne große Ankündigung “sicherer” gemacht und damit einen Großteil der existierenden Anwendungen gekillt. Gut gemeint ist eben das Gegenteil von gut.

Wer von euch Mosquitto über das Standard Raspbian Repository installiert hat, bekommt dieses Problem erst später, da dort im März 2021 noch Version 1.5.7 ausgeliefert wird.  Wer, wie ich, das Mosquitto Repository verlinkt hat, ist zwar am “bleeding edge of the development” sammelt sich damit aber mit Version 2.0.0 ff. auch ein paar – lösbare – Probleme ein. Also weiterlesen:

Was ist passiert?

Nach einem der üblichen sudo apt update und sudo apt upgrade Läufe haben meine sämtlichen MQTT basierenden Lichtschalter und Sensoren nicht mehr funktioniert. Da mosquitto seinen Status sudo service mosquitto status mit running quittiert hat, habe ich rundherum alles gecheckt aber mit keinem Gerät oder dem Windows MQTT Client MQTTfx  einen Connect auf Mosquitto hinbekommen – es war wie verhext. Spätestens zu diesem Zeilpunkt hätte ich mir das Mosquitto Log ansehen müssen – habe ich aber erst viel später gemacht – blöd!

Festzustellen war allerdings, dass das Verzeichnis /etc/mosquitto/conf.d auf einmal leer war. Dort hatte ich meine Konfigurationsdatei abgelegt, die auch den Pfad zur Passwortdatei enthielt. Auch das Wiederherstellen der Konfigurationsdatei brachte nichts.

Lange Rede, kurzer Sinn: mit Version 2.0.0 von mosquitto wird standardmäßig der ungeschützte (anonyme) Zugang zum Mosquitto-Broker deaktiviert. Früher war dies ein eigener Eintrag in der Konfiguration allow_anonymous false. Dagegen ist an sich nichts einzuwenden.

Wirklich schlimm ist: Der Connect  für externe Clients (Sensoren, Schalter, MQTTfx etc.) zum Broker wird standardmäßig disabled! Sauerei! Wie kann man nur so blöd sein, so einen “Breaking Change” mir nichts-dir nichts ohne Warnung auszurollen und dabei auch noch die Konfigurationsdatei  des Nutzers zu  löschen. Ich frage mich außerdem, welchen Sinn ein Broker hat, wenn externe Geräte nicht mit ihm kommunizieren dürfen. In der Standardeinstellung kann sich Mosquitto nur mit sich selbst unterhalten – okay, im Zeitalter von Pornhub etc. vielleicht auch ein Trend…

Der Ehrlichkeit halber sei angemerkt, dass ich das Verschwinden meiner Konfigurationsdatei aus /etc/mosquitto/conf.d beim Update eines zweiten Raspi nicht reproduzieren konnte.

Lösung

In die Konfigurationsdatei /etc/mosquitto/mosquitto.conf oder die in conf.d liegende eigene Konfigurationsdatei die Zeile

bind_address 0.0.0.0 (alternativ geht auch listener 1883) einfügen und alles läuft wieder wie geschmiert. Will man ohne Passwort arbeiten, muss zusätzlich noch

allow_anonymous true

eingetragen werden.

Anschließend den Broker mit sudo service mosquitto restart  neu starten um die Konfiguration zu aktivieren.

Was mich etwas wundert, ist die Tatsache, dass die Version 2.0.0 schon seit Dezember 2020 live ist aber das Problem bei mir trotz regelmäßigen Updates erst jetzt aufgetreten ist. Vielleicht hat die Raspbian Version etwas länger gebraucht, auch wird jetzt (März 2021) Version 2.0.8 installiert.

Im Internet habe ich dazu nur wenig gefunden, deshalb hoffe ich, dass mein Beitrag vielen Usern weiterhilft.

Ankündigung im mosquitto.org Blog: https://mosquitto.org/blog/2020/12/version-2-0-0-released/

Übrigens, das Mosquitto Repository installiert man folgendermaßen:

 

 

4 Gedanken zu „Update macht Mosquitto kaputt!

  1. Auch von mir vielen Dank! Wenn man eine Lösung installiert, die noch nicht auf die version 2 upgedated wurde, helfen die kryptischen Fehlermeldungen die man bekommt nicht. Danke für die Lösung!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.