MQTT Mosquitto Handing: Unterschied zwischen den Versionen

Aus xinux.net
Zur Navigation springen Zur Suche springen
Zeile 2: Zeile 2:
 
'''MQTT''' steht für ''Message Queuing Telemetry Transport'' und ist ein Protokoll für die Machine-to-Machine-Kommunikation im ''Internet of Things''. Eclipse Mosquitto ist ein beliebter Open-Source MQTT-Broker.
 
'''MQTT''' steht für ''Message Queuing Telemetry Transport'' und ist ein Protokoll für die Machine-to-Machine-Kommunikation im ''Internet of Things''. Eclipse Mosquitto ist ein beliebter Open-Source MQTT-Broker.
 
= Installiere deinen Broker =
 
= Installiere deinen Broker =
*apt-get update && apt-get upgrade
+
*apt update && apt-get upgrade
*apt-get install mosquitto
+
*apt install mosquitto
*apt-get install mosquitto-clients
+
*apt install mosquitto-clients
 +
 
 
= Sichere deinen Broker mit einem Passwort ab =
 
= Sichere deinen Broker mit einem Passwort ab =
 
*mosquitto_passwd -c /etc/mosquitto/passwd testuser
 
*mosquitto_passwd -c /etc/mosquitto/passwd testuser

Version vom 14. April 2024, 09:41 Uhr

Eclipse Mosquitto MQTT Broker unter Ubuntu installieren und einrichten

MQTT steht für Message Queuing Telemetry Transport und ist ein Protokoll für die Machine-to-Machine-Kommunikation im Internet of Things. Eclipse Mosquitto ist ein beliebter Open-Source MQTT-Broker.

Installiere deinen Broker

  • apt update && apt-get upgrade
  • apt install mosquitto
  • apt install mosquitto-clients

Sichere deinen Broker mit einem Passwort ab

  • mosquitto_passwd -c /etc/mosquitto/passwd testuser
  • nano /etc/mosquitto/conf.d/default.conf
log_type all
listener 1883
allow_anonymous false
password_file /etc/mosquitto/passwd
connection_messages true
log_dest file /var/log/mosquitt.log
  • systemctl restart mosquitto

Shelly-Gerät einrichten

Für die Einrichtung eines Shelly-Geräts müssen Sie es so konfigurieren, dass es die MQTT-Einstellungen des Brokers verwendet
  • MQTT-Serveradresse (IP-Adresse oder Hostname des Mosquitto-Servers)
  • Port (standardmäßig 1883)
  • Benutzername (testuser)
  • Passwort (password)
  • Diese Einstellungen werden normalerweise über die Shelly-App oder das Webinterface des Geräts vorgenommen.

Wir schauen welche topic das Gerät hat

  • tail -f /var/log/mosquitto.log

Wir schalten und sniffen

on
  • mosquitto_pub -h broker_ip -t 'Herausgefundene Topic' -m 'on' -u testuser -P password
off
  • mosquitto_pub -h broker_ip -t 'Herausgefundene Topic' -m 'off' -u testuser -P password
toggle
  • mosquitto_pub -h broker_ip -t 'Herausgefundene Topic' -m 'toggle' -u testuser -P password


Installiere und führe Certbot für Let's Encrypt Zertifikate aus

Füge das Certbot-PPA hinzu und installiere Certbot:

add-apt-repository ppa:certbot/certbot
apt-get update
apt-get install certbot
ufw allow http

Erstelle und erneuere SSL-Zertifikate automatisch:

certbot certonly --standalone --preferred-challenges http-01 -d DNSDomainname
15 3 * * * certbot renew --noninteractive --post-hook "systemctl restart mosquitto"

Aktiviere SSL-Verschlüsselung für deinen Broker

Konfiguriere SSL in der Mosquitto-Konfigurationsdatei:

nano /etc/mosquitto/conf.d/default.conf

Füge folgende SSL-Parameter hinzu:

listener 8883
certfile /etc/letsencrypt/live/DNSDomainname/cert.pem
cafile /etc/letsencrypt/live/DNSDomainname/chain.pem
keyfile /etc/letsencrypt/live/DNSDomainname/privkey.pem

Aktualisiere die Firewall, um SSL-Verbindungen zuzulassen:

ufw allow 8883

Aktiviere Websockets für deinen Broker

Füge die Websocket-Unterstützung in der Mosquitto-Konfigurationsdatei hinzu:

nano /etc/mosquitto/conf.d/default.conf

Füge folgende Zeile für Websockets hinzu:

listener 9001
protocol websockets

Fazit

Die Einrichtung von Mosquitto als MQTT-Broker auf Ubuntu bietet eine robuste Plattform für IoT-Kommunikation. Durch die Sicherung des Brokers und die Aktivierung von SSL wird eine sichere Datenübertragung gewährleistet.

Quelle