mosquitto --用戶配置 及權限管理


 

mosquitto中可以添加多個用戶,只有使用用戶名和密碼登陸服務器才允許用戶進行訂閱與發布操作。可以說用戶機制是mosquitto重要的安全機制,增強服務器的安全性。
用戶與權限配置需要修改3處地方:

1、mosquitto中最最最重要的配置文件mosquitto.conf
2、pwfile.example (保存用戶名與密碼)
3、aclfile.example (保存權限配置)

 首先我們來新增兩個用戶 1: admin/admin 2: mosquitto/mosquitto 具體步驟:

  1: 打開mosquitto.conf文件,找到allow_anonymous節點,這個節點作用是,是否開啟匿名用戶登錄,默認是true。打開此項配置(將前面的 # 號去掉)之后將其值改為false

    修改前:#allow_anonymous

    修改后:allow_anonymous false

  2: 找到password_file節點,這個節點是告訴服務器你要配置的用戶將存放在哪里。打開此配置並指定pwfile.example文件路勁(注意是絕對路勁)

    修改前:#password_file

    修改后:password_file  /etc/mosquitto/pwfile.example (這里的地址根據自己文件實際位置填寫)

  3: 創建用戶名和密碼、打開命令窗口 鍵入如下命令:  

mosquitto_passwd -c /etc/mosquitto/pwfile.example admin

       提示連續兩次輸入密碼、創建成功。命令解釋: -c 創建一個用戶、/etc/mosquitto/pwfile.example 是將用戶創建到 pwfile.example  文件中、admin 是用戶名。

  4: 創建mosquitto用戶。在命令窗口鍵入如下命令:

mosquitto_passwd /etc/mosquitto/pwfile.example mosquitto

 同樣連續會提示連續輸入兩次密碼。注意第二次創建用戶時不用加 -c 如果加 -c 會把第一次創建的用戶覆蓋。

至此兩個用戶創建成功,此時如果查看 pwfile.example 文件會發現其中多了兩個用戶。

 

注意,mosquitto_passwd -c命令每次都只會生成只包含一個用戶的文件,如果你想在passwd.conf中存放多個用戶, 可以使用mosquitto_passwd -b 命令

    mosquitto_passwd -b [最終生成的password_file文件]  [用戶名]  [密碼]

    mosquitto_passwd -b命令必須在控制台輸入明文的密碼,且每次只是在passwd.conf中新增一個用戶,不會覆蓋之前已生成的用戶

   同時也可以使用mosquitto_passwd -D命令刪除一個用戶

   mosquitto_passwd的具體應用可以參考 http://mosquitto.org/man/mosquitto_passwd-1.html

此時所有客戶端連接 Mosquitto 服務都需要輸入用戶名密碼、

Mosquitto 權限是根據 topic 控制的、類似與目錄管理。您可以設定每個用戶訂閱/發布權限、也可以設定每個用戶可訪問的topic范圍、從而達到權限控制的目的

 1: 給這兩個用戶配置不同的權限(假定已經創建了admin 和 mosquitto這兩個用戶)

    admin 設置為訂閱權限,並且只能訪問的主題為"root/topic/#"

    mosquitto 設置為發布權限,並且只能訪問的主題為"root/topic/#"

    如果用 admin 進行發布是不會成功的、反過來用 mosquitto 進行訂閱同樣不會接受到任何信息。因為他們的權限不同。

  2: 增加權限配置

    打開配置文件 aclfile.example 在其中添加如下配置信息。

user admin
topic read root/topic/#
user mosquitto
topic write root/topic#

  

read 訂閱權限 、write 發布權限、# 通配符表示所有的、保存退出。

  3:修改 Mosquitto.conf 配置選項

    打開mosquitto.conf文件,找到acl_file節點。打開配置做如下修改:
    修改前:#acl_file
    修改后:acl_file /etc/mosquitto/aclfile.example 根據自己文件實際位置填寫

至此admin 、 Mosquitto 兩個用戶的權限已配置完成。

 

修改mosquitto端口 ①、默認情況下,mosquitto使用的是1883端口 
在.conf文件找到port,改成自己需要的端口號。我改成了1884,不能使用已占用的端口。

 

 

 

 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM