Skip to content

Mosquitto (mqtt) authentication and ACL (Access control list) checking plugin. It is working based on MYSQL database.

Notifications You must be signed in to change notification settings

arshidkv12/mosquitto-plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mosquitto Dynamic Security (Mosquitto Auth Plugin - Rust)

Mosquitto authentication and ACL (Access control list) checking plugin. It is working based on MYSQL database.

Configuration

How to install?

Download mosquitto-auth.so file and load .conf file as follows mosquitto -c mosquitto.conf

Download

Move mosquitto-auth/linux-64/mosquitto_auth.so to /etc/mosquitto/mosquitto_auth.so

sudo chown mosquitto:mosquitto /etc/mosquitto/mosquitto_auth.so
sudo chmod 755 /etc/mosquitto/mosquitto_auth.so

Then edit mosquitto.conf file from /etc/mosquitto/

Add the following code in /etc/mosquitto/mosquitto.conf file.

The mosquitto.conf file

plugin /etc/mosquitto/mosquitto-auth.so
listener 1883

How to edit the environment (.env) file location?

Edit systemd Linux services environment .env file location. Enter the following code in the terminal.

sudo systemctl edit mosquitto

[Service]
EnvironmentFile=/etc/mosquitto/.env

Configure the MySQL Database

Download mosquitto.sql file and import it to your mysql by phpmyadmin. Then add database credentials in /etc/mosquitto/.env file.

DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=mosquitto
DB_USERNAME=root
DB_PASSWORD="Pass"

Feel free to PM: https://ciphercoin.com/contact. I can help you to configure.

Documentation

Authentication is working based on MYSQL users table. This plugin is checking username and password. Add username and password in the users table.

ACL: Add access details acls table.

column Value Permission
rw 1 READ
rw 2 WRITE
rw 4 SUBSCRIBE
rw 8 UNSUBSCRIBE

How To Test?

Download mosquitto.sql then import it by phpmyadmin.

Step 1: service mosquitto restart

Step 2: Open the new terminal then enter mosquitto_sub -t "test/su" -u arshid -P Pass@123

Step 3: Open the new terminal then enter mosquitto_pub -t "test/su" -m "This is a message !" -u arshid -P Pass@123

About

Mosquitto (mqtt) authentication and ACL (Access control list) checking plugin. It is working based on MYSQL database.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages