Mosquitto
Installation de Mosquitto sur un raspberry PI (ça doit marcher pour les autres Linux)
Installation
La base
L'installation de base est toujours aussi simple que d'habitude
sudo apt install mosquitto
sudo apt-get install mosquitto-clients # pour les tests
Et on valide l'état du broker:
sudo systemctl status mosquitto
● mosquitto.service - Mosquitto MQTT Broker
Loaded: loaded (/lib/systemd/system/mosquitto.service; enabled; preset: enabled)
Active: active (running) since Thu 2025-02-13 23:10:48 CET; 11min ago
Docs: man:mosquitto.conf(5)
man:mosquitto(8)
Process: 46126 ExecStartPre=/bin/mkdir -m 740 -p /var/log/mosquitto (code=exited, status=0/SUCCESS)
Process: 46127 ExecStartPre=/bin/chown mosquitto /var/log/mosquitto (code=exited, status=0/SUCCESS)
Process: 46128 ExecStartPre=/bin/mkdir -m 740 -p /run/mosquitto (code=exited, status=0/SUCCESS)
Process: 46129 ExecStartPre=/bin/chown mosquitto /run/mosquitto (code=exited, status=0/SUCCESS)
Main PID: 46130 (mosquitto)
Tasks: 1 (limit: 3922)
CPU: 209ms
CGroup: /system.slice/mosquitto.service
└─46130 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
Feb 13 23:10:48 main-host systemd[1]: Starting mosquitto.service - Mosquitto MQTT Broker...
Feb 13 23:10:48 main-host systemd[1]: Started mosquitto.service - Mosquitto MQTT Broker.
On voit que... ça tourne et que la config est dans /etc/mosquitto/mosquitto.conf
.
Les tests
Dans une première console on entre la commande :
mosquitto_sub -v -t "#"
Et dans une seconde:
mosquitto_pub -t "feed/test" -m "1739485903880"
On vérifie que dans la première console on reçoive :
feed/test 1739485903880
Tout fonctionne!
Mais.... tout est en clair et n'importe qui peut publier et écouter!
Gestion des utilisateurs
Le fichier des utilisateurs
C'est un peu le /etc/passwd
de mosquitto.
Localisation
On peut le placer où on veut mais, personnellement, qu'il a toute sa place dans /etc/mosquitto
.
Modification
Création
sudo mosquitto_passwd -c /etc/mosquitto/users operator
On donne le mot de passe une fois et une seconde pour valider. Le fichier généré ressemble à:
operator:$5$101$A+dU0mGuSJSmHZ7y$hFDAgsE8OLjz6wMDKfs8vkARxbCKLtuMBKRFt4DqukJZq514ha8H1y91vO0hngdZdrJ/ngegCjPlJpcjezWH3A==
Ajout
On crée un utilisateur "sensor"
sudo mosquitto_passwd /etc/mosquitto/users sensor
Suppression
On supprime le même utilisateur
sudo mosquitto_passwd -D /etc/mosquitto/users sensor