Content
Dateianzeige für mosquitto (3.4.0)
usr/share/doc/mosquitto/mosquitto.txt
Mosquitto
Mosquitto ist ein leichtgewichtiger Open-Source Message-Broker fuer
das MQTT Protokoll. Er unterstuetzt die Protokollversionen 5.0, 3.1.1
und 3.1.
Das vorliegende eisfair-Paket erlaubt es, mehrere Listener (Zugangs-
punkte) anzulegen und mit verschiedenen Berechtigungen und Eigenschaften
zu versehen. Dies sind:
- Bindung an eine lokale IP-Adresse.
- Wahl des Protokolls zwischen MQTT und websockets.
- Feier Zugang oder gesicherter Zugang ueber Benutzernamen und Kenn-
woerter (User-ACLs).
- Sicherung der Socket-Verbindung ueber SSL mit Pruefung der Server-
authentizitaet.
Nicht unterstuetzt werden gegenwaertig u.a.:
- Sicherung der Verbindung mittels bekannter Schluessel (preshared-
keys).
- Pruefung der Authentizitaet der Clients mit Hilfe von Zertifikaten.
- Einstellung von Zugriffsberechtigungen auf der Ebene einzelner
Topics.
Konfiguration
-------------
START_MOSQUITTO
Schaltet den Dienst frei. Sobald der Wert auf 'yes' gesetzt wird,
wird mosquitto beim Aktivieren der Konfiguration und bei jedem
Neustart des Systems automatisch gestartet.
Gueltige Werte: yes, no
Standardwert: START_MOSQUITTO='no'
MOSQUITTO_LOG_CONNECTIONS
Wird der Wert auf ''yes'' gesetzt, dann werden Protokollein-
traege erzeugt, sobald sich ein Client mit dem Server verbindet
oder die Verbindung trennt.
Gueltige Werte: ''yes'', ''no''
MOSQUITTO_LOG_ERROR
Protokolleintraege unterschiedlicher Typen koennen separat ein-
bzw. ausgeschaltet werden. Diese Option aktiviert Meldungen vom
Typ "Fehler".
Gueltige Werte: ''yes'', ''no''
MOSQUITTO_LOG_WARNING
Protokolleintraege unterschiedlicher Typen koennen separat ein-
bzw. ausgeschaltet werden. Diese Option aktiviert Meldungen vom
Typ "Warnung".
Gueltige Werte: ''yes'', ''no''
MOSQUITTO_LOG_NOTICE
Protokolleintraege unterschiedlicher Typen koennen separat ein-
bzw. ausgeschaltet werden. Diese Option aktiviert Meldungen vom
Typ "Hinweis".
Gueltige Werte: ''yes'', ''no''
MOSQUITTO_LOG_INFORMATION
Protokolleintraege unterschiedlicher Typen koennen separat ein-
bzw. ausgeschaltet werden. Diese Option aktiviert Meldungen vom
Typ "Information".
Gueltige Werte: ''yes'', ''no''
MOSQUITTO_LOG_SUBSCRIBE
Protokolleintraege unterschiedlicher Typen koennen separat ein-
bzw. ausgeschaltet werden. Diese Option aktiviert Meldungen vom
Typ "Abonnieren".
Gueltige Werte: ''yes'', ''no''
MOSQUITTO_LOG_UNSUBSCRIBE
Protokolleintraege unterschiedlicher Typen koennen separat ein-
bzw. ausgeschaltet werden. Diese Option aktiviert Meldungen vom
Typ "Abbestellen".
Gueltige Werte: ''yes'', ''no''
MOSQUITTO_ACL_N
Anzahl der Zugriffslisten, die definiert werden sollen. Unter
eisfair werden Mosquitto User in Zugriffslisten verwaltet, die
den einzelnen Listenern zugeordnet werden. Ein User der auf
einen Listener zugreifen moechte muss Mitglied in einer
Zugriffsliste sein, die wiederum dem Listener zugeordent sein
muss.
Um getrennte Userlisten fuer jeden Listener zu haben, muss eine
einzelne Zugriffsliste fuer jeden Listener angelegt werden.
Diese wird dann dem jeweiligen Listener zugeordnet. Um statt dessen
eine globale Liste von Anwendern zu erhalten, die gleichermassen
auf alle Listener zugreifen duerfen, kann eine einzelne
Zugriffsliste angelegt werden, die dann allen Listenern
zugewiesen wird. Da es moeglich ist, einem Listener mehrere
Zugriffsliste zuzuordnen, koennen beide Zugriffsmodelle (global
und lokal) kombiniert werden.
Beispiel: ''3''
MOSQUITTO_ACL_x_NAME
Ein eindeutiger Name fuer die Zugriffsliste. Dieser Name wird
verwendet, um die Zugriffsliste bei der Zuordnung zu einem
Listener eindeutig zu identifizieren. Gueltige Werte fuer ACL
Namen bestehen aus Buchstaben, Zahlen und Unterstrichen. Die
Gross-Kleinschreibung der Namen spielt keine Rolle.
Beispiel: ''LOCAL_HOME''
MOSQUITTO_ACL_x_USER_N
Anzahl der Anwender, die in der aktuellen Zugriffsliste (x)
angelegt werden sollen.
Beispiel: ''10''
MOSQUITTO_ACL_x_USER_x_ACTIVE
Wenn dieser Wert auf ''yes'' steht, dann ist der jeweilige
Anwender aktiv (Standard). Um den User (temporaer) aus der
aktuellen Liste zu entfernen, kann der Wert auf ''no'' gesetzt
werden. In diesem Fall wird der Anwernder ignoriert, wenn die
Benutzerdatenbanken zusammengestellt werden.
Um den Anwender dauerhaft aus der Liste zu entfernen, wird er an
das Ende der Liste verschoben (F3). Anschliessend wird die
Laenge der Liste um ein Element reduziert.
Gueltige Werte: ''yes'', ''no''
MOSQUITTO_ACL_x_USER_x_NAME
Login Name des Anwenders.
Beispiel: ''hans''
MOSQUITTO_ACL_x_USER_x_PASSWD
Kennwort des Anwenders (wird im ECE maskiert dargestellt).
Beispiel: ''geheim''
MOSQUITTO_LISTENER_N
Der mosquitto server ist im Stande MQTT Verbindungen auf
mehreren IP-Ports entgegen zu nehmen. Diese Ports werden als
Listeners bezeichnet und koennen mit verschiedenen Protokoll
oder Sicherheitseinstellungen betrieben werden.
Hier wird die Gesamtzahl der Listeners vorgegeben.
Beispiel: ''2''
MOSQUITTO_LISTENER_x_ACTIVE
Mit diesem Aktivierungsschalter koennen Listeners temporaer
deaktiviert oder reaktiviert werden, ohne dass sie dazu aus
der Konfiguration geloescht und anschliessend wieder komplett
neu angelegt werden muessen.
Gueltige Werte: ''yes'', ''no''
MOSQUITTO_LISTENER_x_PORT
Setzt den Netzwerk-Port auf dem der Listener auf eingehende
Verbindungen warten soll.
Beispiel: ''1883''
MOSQUITTO_LISTENER_x_BIND
Optional kann mit dieser Einstellung die IP Adresse eines lokalen
Netzwerkinterfaces angegeben werden. Ist dies der Fall, dann
ist der Listener ausschliesslich ueber dieses Interface erreich-
bar.
Bleibt der Wert leer (Standardeinstellung), dann ist der Listener
ueber alle Interfaces erreichbar.
Beispiel: ''127.0.0.1''
MOSQUITTO_LISTENER_x_PROTOCOL
Hiermit kann das Protokoll gewaehlt werden, mit dem aktuelle
Listener arbeiten soll. Zur Auswahl stehen entweder "mqtt" oder
"websockets". Fuer die normale Kommunikation via MQTT ist "mqtt"
die richtige Einstellung. Nur wenn MQTT ueber websockets ge-
tunnelt werden soll, waere hier statt dessen "websockets" aus-
zuwaehlen.
Beispiel: ''mqtt''
MOSQUITTO_LISTENER_x_SCOPE
Diese Option kann dazu verwendet werden, um Gruppen von Clients
voneinander zu isolieren. Wenn sich ein Client zu einem Listener
verbindet, der diese Option verwendet, dann wird die Zeichenkette
dem angegebenen Topic-Namen vorangestellt. Dieser Praefix wird
dagegen aus allen Nachrichten entfernt, die zu einem Client zu-
rueckgesendet werden. Das bedeutet, dass ein Client, der mit
einem Listener mit dem Scope "example" verbunden ist, nur die
Nachrichten sehen kann, die hierarchisch unterhalb des Topics
"example" angeordnet sind.
Beispiel: ''example''
MOSQUITTO_LISTENER_x_ANONYMOUS
Boolscher Wert, der festlegt, ob sich Clients am Server anmelden
duerfen, ohne einen Anmeldenamen anzugeben. Falls der Wert auf
"no" gesetzt wird, muss ein anderer Mechanismus verwendet werden,
um die Zugriffskontrolle sicherzustellen.
Gueltige Werte: ''yes'', ''no''
MOSQUITTO_LISTENER_x_ACL
Falls anonyme Zugriffe deaktiviert wurden, kann hier eine durch
Leerzeichen getrennte Liste von ACL-Namen angegeben, um die Zu-
griffskontrolle darueber zu steuern.
Beispiel: ''LOCAL_HOME EXTERNAL''
MOSQUITTO_LISTENER_x_USE_SSL
Die Option kann auf "yes" gesetzt werden, um eine Verbindungs-
verschluesselung und eine Pruefung der Server-Authentizitaet zu
erzwingen. Wird die Option auf "no" gesetzt, werden alle Daten,
sowie Anmeldenamen und Kennwoerter im Klartext ueber das Netz-
werk uebertragen.
Gueltige Werte: ''yes'', ''no''
MOSQUITTO_LISTENER_x_CAFILE
Hiermit wird der Pfad einer Datei angegeben, die PEM kodierte
vertrauenswuerdige CA Zertifikate enthaelt.
Bitte beachten Sie, dass es Ihre Aufgabe ist, die jeweiligen
SSL Zertifikate zu erzeugen und an die passende Stelle zu kopie-
ren. Es gibt keinen Automatismus, der das fuer Sie uebernimmt.
Allerdings koennen Sie das cert-Paket verwenden umd die Aufgabe
auszufuerhen.
Beispiel: ''/etc/mosquitto/ca.crt''
MOSQUITTO_LISTENER_x_KEYFILE
Hiermit wird der Pfad auf den Schluessel angegeben, den der
Server fuer die Verschluesselung verwendet.
Bitte beachten Sie, dass es Ihre Aufgabe ist, die jeweiligen
SSL Zertifikate zu erzeugen und an die passende Stelle zu kopie-
ren. Es gibt keinen Automatismus, der das fuer Sie uebernimmt.
Allerdings koennen Sie das cert-Paket verwenden umd die Aufgabe
auszufuerhen.
Beispiel: ''/etc/mosquitto/server.key''
MOSQUITTO_LISTENER_x_CERTFILE
Hiermit wird der Pfad auf die Datei angegeben, die das PEM
kodierte Server-Zertifikat enthaelt.
Bitte beachten Sie, dass es Ihre Aufgabe ist, die jeweiligen
SSL Zertifikate zu erzeugen und an die passende Stelle zu kopie-
ren. Es gibt keinen Automatismus, der das fuer Sie uebernimmt.
Allerdings koennen Sie das cert-Paket verwenden umd die Aufgabe
auszufuerhen.
Beispiel: ''/etc/mosquitto/server.crt''
SSL
---
SSL/TLS Verschluesselung ist ein umfangreiches Thema und kann im
Rahmen dieser Dokumentation nicht erschoepfend behandelt werden.
Aktuell unterstuetzt das vorliegende Paket lediglich die Verschlues-
selung der Verbindung mit einer Pruefung der Server-Authentizitaet.
die Pruefung der Client-Authentizitaet kann dagegen noch nicht ge-
prueft werden.
Damit SSL/TLS moeglich ist, benoetigt man auf dem Server, wie auch
auf dem Client das Zertifikat der CA, die zur Pruefung der Authen-
tizitaet verwendet werden soll. Fall selbst signierte Zertifikate
zum Einsatz kommen, ist dies das Zertifikat der eigenen CA (z.B.
aus dem certs Paket).
Zusaetzlich muss ein Server-Zertifikat erstellt werden, das den
MQTT-Broker identifiziert. Dieses Zertifikat muss der CA bekannt
sein, deren Zertifikat in der Konfiguration angegeben wurde. Zu
beachten ist zudem, das der Common-Name des Zertifikats die voll-
staenige Adresse (FQDN) oder die IP-Adresse des Servers enthalten
muss. Falls mehrere Host-Namen / Interfaces auf dem Server vor-
liegen, ist dasjenige anzugeben, das von den Clients kontaktiert
wird (-h Parameter).
Sobald SSL eingerichtet wurde, koennen Clients verschluesselt zu-
greifen:
mosquitto_pub -h mqtt.home.lan -t "test" \
--cafile /path/to/ca.crt \
-p 1884 -m "Hallo Welt"