MQTT Projekt II.: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „=Grundaufbau= {{#drawio:mqtt-plan1}} =Connectivity= ==ssh== ;mqtt *ssh xinux@opnsense -p 9822 ;sensor *ssh xinux@opnsense -p 9823 ;aktor *ssh xinux@opnsense -p…“)
 
 
(14 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 15: Zeile 15:
 
*http://opnsense:9724
 
*http://opnsense:9724
  
=Unverschlüsselt ohne Passwort=
+
=Unverschlüsselt mit Passwort=
 
==mqtt==
 
==mqtt==
 +
;Benutzer anlegen
 +
*user: xinux
 +
*pass: 123Start$
 +
 +
*mosquitto_passwd -c /etc/mosquitto/passwd xinux
 +
 
;Konfiguration kopieren
 
;Konfiguration kopieren
*cp -v /etc/mosquitto/conf.d/defaults.conf.unverschlüsselt /etc/mosquitto/conf.d/defaults.conf
+
*cp /etc/mosquitto/conf.d/defaults.conf.mit-password /etc/mosquitto/conf.d/defaults.conf
 
;Konfigurationsdatei
 
;Konfigurationsdatei
 
<pre>
 
<pre>
Zeile 25: Zeile 31:
  
 
# Erlaubt anonyme Verbindungen, d. h. ohne Benutzername und Passwort.
 
# Erlaubt anonyme Verbindungen, d. h. ohne Benutzername und Passwort.
allow_anonymous true
+
allow_anonymous false
  
 
# Aktiviert alle Log-Typen für eine detaillierte Protokollierung.
 
# Aktiviert alle Log-Typen für eine detaillierte Protokollierung.
Zeile 32: Zeile 38:
 
# Zeigt Verbindungs- und Trennungsmeldungen von Clients im Log an.
 
# Zeigt Verbindungs- und Trennungsmeldungen von Clients im Log an.
 
connection_messages true
 
connection_messages true
 +
 +
#Hier gegen wird authentifiziert.
 +
password_file /etc/mosquitto/passwd
 +
 
</pre>
 
</pre>
 
;Restarten
 
;Restarten
Zeile 40: Zeile 50:
 
==Aktor==
 
==Aktor==
 
Der Aktor '''abonniert (subscribed)''' die Nachrichten und reagiert darauf.
 
Der Aktor '''abonniert (subscribed)''' die Nachrichten und reagiert darauf.
*mosquitto_sub -h mqtt.lab.intern -t test
+
*mosquitto_sub -h mqtt.lab.intern -u xinux -P 123Start$ -t test
  
 
==Sensor==
 
==Sensor==
 
Der Sensor '''sendet (published)''' die Nachrichten an das Topic.
 
Der Sensor '''sendet (published)''' die Nachrichten an das Topic.
*mosquitto_pub -h mqtt.lab.intern -t test -m "Hello World"
+
*mosquitto_pub -h mqtt.lab.intern -u xinux -P 123Start$ -t test -m "Hello World"
*mosquitto_pub -h mqtt.lab.intern -t test -m "2 Nachricht"
+
*mosquitto_pub -h mqtt.lab.intern -u xinux -P 123Start$ -t test -m "2 Nachricht"
 +
 
 
==kali==
 
==kali==
 
Hier kann man auf Wireshark mitschneiden. Der Text ist Hexadezimal codiert.  
 
Hier kann man auf Wireshark mitschneiden. Der Text ist Hexadezimal codiert.  
;Beispiel
+
;Schaut mal was man sieht.
*'''536368616c7465206469652054757262696e656e20766f6d2041746f6d6b726166747765726b20617573'''
+
=Anpassen von node.js=
;Die kann man mit Follow TCP Stream oder auf der Konsole decodieren.
+
;sensor
*echo -n "536368616c7465206469652054757262696e656e20766f6d2041746f6d6b726166747765726b20617573" | xxd -r -p
+
*cat /usr/local/control-switch/.env
  Schalte die Turbinen vom Atomkraftwerk aus
+
MQTT_HOST=mqtt.lab.intern
 +
MQTT_PORT=1883
 +
MQTT_USER=xinux
 +
MQTT_PASS=123Start$
 +
*systemctl restart control-switch.service
 +
*http://opnsense:9723/
 +
;aktor
 +
*cat /usr/local/control/.env
 +
MQTT_HOST=mqtt.lab.intern
 +
MQTT_PORT=1883
 +
MQTT_USER=xinux
 +
  MQTT_PASS=123Start$
 +
*systemctl restart control.service
 +
*http://opnsense:9724/

Aktuelle Version vom 10. März 2025, 14:17 Uhr

Grundaufbau

Connectivity

ssh

mqtt
  • ssh xinux@opnsense -p 9822
sensor
  • ssh xinux@opnsense -p 9823
aktor
  • ssh xinux@opnsense -p 9824

http

sensor
aktor

Unverschlüsselt mit Passwort

mqtt

Benutzer anlegen
  • user: xinux
  • pass: 123Start$
  • mosquitto_passwd -c /etc/mosquitto/passwd xinux
Konfiguration kopieren
  • cp /etc/mosquitto/conf.d/defaults.conf.mit-password /etc/mosquitto/conf.d/defaults.conf
Konfigurationsdatei
# Öffnet den MQTT-Broker auf Port 1883 und bindet ihn an alle verfügbaren Netzwerkinterfaces.
listener 1883 0.0.0.0

# Erlaubt anonyme Verbindungen, d. h. ohne Benutzername und Passwort.
allow_anonymous false

# Aktiviert alle Log-Typen für eine detaillierte Protokollierung.
log_type all

# Zeigt Verbindungs- und Trennungsmeldungen von Clients im Log an.
connection_messages true

#Hier gegen wird authentifiziert.
password_file /etc/mosquitto/passwd

Restarten
  • systemctl restart mosquitto.service
Checken
  • systemctl status mosquitto.service

Aktor

Der Aktor abonniert (subscribed) die Nachrichten und reagiert darauf.

  • mosquitto_sub -h mqtt.lab.intern -u xinux -P 123Start$ -t test

Sensor

Der Sensor sendet (published) die Nachrichten an das Topic.

  • mosquitto_pub -h mqtt.lab.intern -u xinux -P 123Start$ -t test -m "Hello World"
  • mosquitto_pub -h mqtt.lab.intern -u xinux -P 123Start$ -t test -m "2 Nachricht"

kali

Hier kann man auf Wireshark mitschneiden. Der Text ist Hexadezimal codiert.

Schaut mal was man sieht.

Anpassen von node.js

sensor
  • cat /usr/local/control-switch/.env
MQTT_HOST=mqtt.lab.intern
MQTT_PORT=1883
MQTT_USER=xinux
MQTT_PASS=123Start$
aktor
  • cat /usr/local/control/.env
MQTT_HOST=mqtt.lab.intern
MQTT_PORT=1883
MQTT_USER=xinux
MQTT_PASS=123Start$