Benutzer-Werkzeuge

Webseiten-Werkzeuge


mosquitto_mqtt_server_installieren

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    
mosquitto_mqtt_server_installieren.txt · Zuletzt geändert: von 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki