Configuration ACL

image

ACL

TLS (Transport Layer Security) et ACL (Access Control List) sont deux mécanismes de sécurité différents pour la communication dans les systèmes MQTT.

ACL est un mĂ©canisme de contrĂ´le d’accès qui permet de dĂ©finir des règles de sĂ©curitĂ© pour restreindre l’accès Ă  certaines ressources ou fonctionnalitĂ©s d’un système MQTT. Cela permet de contrĂ´ler qui peut lire, Ă©crire ou s’abonner Ă  certains topics MQTT.

Configuration de ACL pour MQTT

Voici comment configurer les règles ACL pour permettre Ă  un utilisateur “admin” d’avoir des droits de lecture et Ă©criture et le reste des utilisateurs d’avoir uniquement des droits de lecture

  • Ouvrez le fichier de configuration mosquitto.conf :
sudo nano /etc/mosquitto/mosquitto.conf 

  • Ajoutez les lignes suivantes Ă  la fin du fichier pour dĂ©finir les règles ACL :
  acl_file /etc/mosquitto/acesscontrollist.conf
  allow_anonymous true
  password_file /etc/mosquitto/passwd 

Cela indique Ă  Mosquitto d’utiliser un fichier de règles ACL (acesscontrollist.conf), d’autoriser les clients anonymes Ă  se connecter et d’utiliser un fichier de mots de passe pour l’authentification.

  • CrĂ©ez le fichier de règles ACL aclfile.conf en exĂ©cutant la commande suivante :
sudo nano /etc/mosquitto/aclfile.conf 
  • Ajoutez les règles suivantes au fichier aclfile.conf :

user admin
topic readwrite #

user student
topic read #


pattern read #
pattern read $SYS/#

Cela accorde Ă  l’utilisateur “admin” les droits de lecture et Ă©criture sur tous les topics MQTT (utilisation de “#” pour reprĂ©senter tous les topics), et aux autres utilisateurs les droits de lecture uniquement sur tous les topics MQTT.

  • RedĂ©marrez le service Mosquitto pour appliquer les nouvelles règles de configuration :
sudo systemctl restart mosquitto 

Maintenant, l’utilisateur “admin” aura des droits de lecture et Ă©criture sur tous les topics MQTT, tandis que les autres utilisateurs auront uniquement des droits de lecture

Pour tester

mosquitto_sub -h localhost -t "#" -u user -P password  
mosquitto_pub -h localhost -t test/topic -u user -P password -m "Hello world!" 

Si tout est configurĂ© correctement, admin devrait ĂŞtre en mesure de publier et de s’abonner Ă  tous les topics, tandis que les autres users devraient seulement ĂŞtre en mesure de s’abonner Ă  tous les topics.