====== Schritt 1 Pakete Installieren und konfigurieren ====== sudo apt update; sudo apt install mosquitto mosquitto-clients Zum testen zwei ssh Fenster zum Server öffnen. Im ersten Fenster mit mosquitto_sub einen Listener öffnen und auf den Topic test lauschen mosquitto_sub -h localhost -t test Im zweiten Fenster mittels mosquitto_pub eine Nachricht versenden. mosquitto_pub -h localhost -t test -m "hello world" ====== Schritt 2 — Verwendung von Passwörtern in MQTT ====== Konfiguration von Mosquitto um Passwörter zu verwenden. Erst eine passwd Datei für Mosquitto erstellen dann einen weiteren Benutzer anlegen. Die passwd Datei wird in ''/etc/mosquitto/passwd'' erstellt.Das Beispiel erstellt die Datei und legt den Benutzer ''mqtt'' an das Password wird abgefragt. Für den Benutzer ''sensor1'' wird das Password ''geheim12'' verwendet. sudo mosquitto_passwd -c /etc/mosquitto/passwd mqtt sudo mosquitto_passwd -b /etc/mosquitto/passwd sensor1 geheim12 Anpassung der Konfiguration zur Verwendung von Passwörtern sudo vi /etc/mosquitto/conf.d/default.conf In der leeren Datei die folgenden Zeilen einfügen. Unbedingt eine Leerzeile am ende Datei einfügen. allow_anonymous false password_file /etc/mosquitto/passwd allow_anonymous false erzwingt die Verwendung von Passwörtern. Die password_file Zeile konfiguriert die erstellte passwd Datei. Den Dienst neu starten um die änderungen anzuwenden. sudo systemctl restart mosquitto Ein Verbingsaufbau ohne Password sollte nicht mehr funktionieren. mosquitto_pub -h localhost -t "test" -m "hello world" Ausgabe sollte so aussehen. Connection Refused: not authorised. Error: The connection was refused. Verwenden der Konsolen mosquitto_sub -h localhost -t test -u sensor1 -P password mosquitto_pub -h localhost -t test -m "hello world" -u sensor1 -P password sudo mosquitto_passwd /etc/mosquitto/conf.d/passwd admin Das wiederholt man mit allen Benutzern, die man gerne hätte. ==== Zugriffsrechte vergeben ==== Die Zugriffsrechte werde dann in der acl-Datei festgelegt: # admin darf alles user admin topic readwrite # topic readwrite $SYS/# # openhab2 darf alles lesen, aber nur bestimmte Topics schreiben # um Steuer-Befehle abzusenden user openhab2 topic read # topic write garage/target topic write sonoff_rf_1/cmnd/POWER # Die Sonoffs bekommen alle den gleichen Benutzer, also # volle Berechtigung auf die Sonoff-Topics user sonoff_pow topic readwrite sonoff_pow_1/# topic readwrite sonoff_pow_2/# topic readwrite sonoff_rf_1/# # Homegear hat auch sein eigenes Topic mit kompletten Rechten user homegear topic readwrite homegear/# # Und das gleiche für die Garage user garage topic readwrite garage/# Jeder bekommt nur die Rechte, die er wirklich benötigt. Jetzt noch den Broker neu starten, damit die Config übernommen wird: sudo systemctl restart mosquitto.service