Question sécurité, ne devrait on pas mettre allow_anonymous à false pour bénéficier d'une protection par mot de passe?

Bonjour,

Ecore merci @Domochip pour ton plugin. Indispensable !!!

Je me suis aperçu que dans la config du brocker MQTT, on peut rentrer n’importe quoi comme mot de passe ou utilisateur et tout marche quand même.
Du coup, j’ai été voir le fichier de config mosquito et on a allow_anonymous à true.

Bref, je pensais bénéficier de la protection utilisateur/mdp et non, ce n’est pas le cas.

Une suggestion : ne peut on pas faire en sorte que si on place dans les paramètre un utilisateur / mdp du coup, allow_anonymous passe à false + information du serveur du couple utilisateur / mdp

Question bête, je je fais la manip à la main : allow_anonymous à false + la manip que je ne connais pas par coeur (mais je sais que c’est facile à trouver) qui permet d’informer le serveur de qui a le droit de se connecter, que va il se passer à la prochaine mise à jour du plugin ? Ces configurations seront bien conservées ?

1 « J'aime »

Hello @mic78000,

La configuration de mosquitto par jmqtt n’est effectuée qu’une seule fois lors de l’installation des dépendances (et donc de mosquitto par jmqtt), si aucune configuration n’est présente :

Donc tu peux sans problème modifier cette configuration initiale par toi même et elle sera persistante au mises à jour suivantes MAIS PAS A UNE RESTAURATION DE JEEDOM.

Vu que ton Jeedom est en docker sur Syno, pourquoi ne pas mettre mosquitto directement dans un autre docker, comme ça tu t’affranchi de la gestion par JEEDOM et fait exactement ce que tu veux sur ce service ?

(Mon mosquitto principal est justement en docker sur Syno, si tu veux voir à quoi ressemble la config du docker je peux te faire une capture.)

Bad

Bonjour,

Je me permets et je m’incruste mais je suis très intéressé par quelques captures d’écran de la config du docker Mosquitto et si possible de la config du plugin dans Jeedom ! Je suis également sous Docker pour Jeedom sur mon Syno et je galère de mon côté …

Merci !

Bonjour et merci pour la réponse !
Perso, je ne suis pas sous docker Syno.
J’ai un pi qui héberge jeedom et mosquito. Mosquito installé par le plugin jMQTT.
Je viens de faire l’expérience sur un autre pi de test avec jeedom, j’ai pu faire en sorte que le couple utilisateur / mot de passe soit nécessaire pour se connecter.
J’ai aussi tester de faire une mise à jour vers la béta et je n’ai pas perdu le fait que le mot de passe soit nécessaire.
Par contre, si j’ai bien compris ce que tu dis (je vais essayer puis éditer ce message), si je fais une sauvegarde de mon jeedom et que je restaure cette sauvegarde, je vais perdre le fait qu’il faut un utilisateur ./ mot de passe.

Je viens donc de faire l’essai :
J’ai fait une sauvegarde de jeedom par le menu système / sauvegardes
Puis, j’ai fait une restauration de cette sauvegarde.
Il est toujours nécessaire de mettre un utilisateur / mot de passe et si je me trompe par ex dans le nom de l’utilisateur, la connexion ne se fait pas.
La configuration a donc bien été remise.
J’ai fais le teste de relancer les dépendances et pareil, c’est OK

Ce que tu voulais dire je suppose est que si je repars d’une nouvelle installation de jeedom et que je fais une restauration, là, il faudra refaire la manip de configuration pour avoir la sécurité utilisateur/mot de passe.
C’est bien cela ?

Un question puis un tuto qui sera peut être modifié en fonction de la réponse à la question :

LA QUESTION par rapport à ce que je dit dans le tuto : si au lieu de placer le fichier de mot de passe dans

/etc/mosquitto/passwd

on le plaçait par exemple dans le dossier de jeedom qui correspond au plugin jMQTT, du coup, ce fichier serait sauvegardé lors d’une sauvegarde de jeedom. ce serait mieux non ?

LE TUTO :
Comment mettre en place la sécurité utilisateur / mot de passe :

Par ssh (par puTTy par exemple), allez modifier le fichier de configuration de mosquito créé par jMQTT :

sudo nano /etc/mosquitto/conf.d/jMQTT.conf

Remplacez

allow_anonymous true

par

allow_anonymous false

Ajouter la ligne indiquant où se trouvera le fichier de mot de passe mosquito :

password_file /etc/mosquitto/passwd

Sortez en validant (Ctrl X)
Il faut maintenant donner les couples utilisateurs / mot de passe.

Une commande va permettre de créer le fichier mot de passe et d’ajouter le premier utilisateur :
sudo mosquitto_passwd -c /etc/mosquitto/passwd NOM_UTILISATEUR

Vous aurez alors à rentrer 2 fois le mot de passe pour l’utilisateur en question.
Par curiosité, si vous ouvrez le fichier /etc/mosquitto/passwd vous verrez que le mot de passe est crypté.

Vous pouvez ajouter un autre utilisateur par la commande

sudo mosquitto_passwd -b /etc/mosquitto/passwd NOM_UTILISATEUR MOT_DE_PASSE

Pour effacer un utilisateur :

sudo mosquitto_passwd -D /etc/mosquitto/passwd NOM_UTILISATEUR

Il faut relancer mosquito pour que les changements soient pris en compte :

sudo systemctl restart mosquitto
4 « J'aime »

Hello,

Le Docker et sa conso :
image

Les Ports ouverts :
image

Bridgé sur l’IP de mon Syno :
image

Les points de montages dans le NAS avec les fichiers persistants :
image

La config du Broker dans jMQTT :

Tout à fait, la config étant fait dans un répertoire qui n’est pas sauvegardé par le backup Jeedom.

Oui tout à fait, le répertoire /etc/mosquitto/ n’est pas sauvegardé par Jeedom.

Merci pour le tuto :wink:
Il ne reste plus qu’à faire la même chose pour le TLS :stuck_out_tongue:

1 « J'aime »

Merci !!!

Pour le TLS, je viens de faire plein d’essais.
J’arrive à configurer le serveur comme il faut. J’arrive à configurer MQTT explorer comme il faut.
Je dis comme il faut car les deux se parlent bien.
Par contre, je n’ai pas encore réussi à configurer jMQTT pour qu’il parle bien à mosquitto en TLS !

Hello,

As-tu réussi dans ta quête ?

Tu as vu cette partie de la doc :
https://docs.bad.wf/fr_FR/jmqtt/stable/index#configuration

Et celle-ci :
https://docs.bad.wf/fr_FR/jmqtt/stable/index#Chiffrement%20TLS
Qui point sur cette doc très bien faite :

A noter que l’ajout de certificats/clés dans jMQTT se fait dans la page configuration du plugin :

Les fichiers acceptés sont :

Bad

J’avoue ne pas m’être de nouveau penché sur le sujet. Pourtant il va falloir.

Merci @Bad
J’avais déjà vu ces tutos, enfin surtout celui d’Openest, mais il n’abordait pas directement la configuration de jeedom.

J’avais testé effectivement le « téléverser » de la page de configuration du plugin.
Il va falloir que je creuse ce que tu me dis sut l’extension pem et les types de certificats. C’est sans doute mon problème.