Mosquitto MQTT Broker 服務器的配置,增加登錄鑑權設置

本文的重點是從匿名訪問mqtt broker(只需要Ip和port),到需要登錄(用戶名和密碼)和鑑權(發佈和訂閱那些topics)的過度的 過程。

 安裝 Mosquitto MQTT Broker 1

sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
sudo apt-get update
sudo apt-get install mosquitto
sudo apt-get install mosquitto-clients

配置Mosquitto MQTT Broker

1. 打開 mosquitto.conf

sudo vim /etc/mosquitto/mosquitto.conf

2. 添加 

# 禁止匿名訪問
allow_anonymous false
# 認證配置
password_file /etc/mosquitto/pwfile
# 權限配置
acl_file /etc/mosquitto/aclfile

3. 添加pwfile

touch /etc/mosquitto/pwfile
mosquitto_passwd /etc/mosquitto/pwfile 用戶名

  根據提示輸入兩遍密碼
4. 添加aclfile (必須添加,否者無法啓動Mosquitto,而且這個是白名單,只有列出的topics 才能被訪問 

touch /etc/mosquitto/aclfile
vim /etc/mosquitto/aclfile
user A
topic write test/#
topic read $SYS/#

如何使用通配符,請參考MQTT Topics & Best Practices2

5. 啓動Mosquitto broker

sudo service mosquitto start

可選參數 {start|stop|reload|force-reload|restart|try-restart|status}

6. 測試 Mosquitto broker

訂閱

mosquitto_sub -h localhost -p 1883 -t "test/#" -u username -P 123456 -i "clientID"

發送

mosquitto_pub -h localhost -p port -t "test/abc" -u user name -P 123456 -i "client3" -m "How are you?"

 

請參考

1. https://www.jianshu.com/p/9e3cb7042a2e

2. https://www.hivemq.com/blog/mqtt-essentials-part-5-mqtt-topics-best-practices/

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章