mosquitto --用户配置 及权限管理

mosquitto中能够添加多个用户,只有使用用户名和密码登录服务器才容许用户进行订阅与发布操做。能够说用户机制是mosquitto重要的安全机制,加强服务器的安全性。
用户与权限配置须要修改3处地方:

  • mosquitto.conf (最重要的配置文件)
  • pwfile.example (保存用户名与密码)
  • aclfile.example (保存权限配置)

首先咱们来新增两个用户 1: admin/admin 2: mosquitto/mosquitto 具体步骤:c#

1: 打开mosquitto.conf文件,找到allow_anonymous节点,这个节点做用是,是否允许匿名用户登陆(默认是true,允许匿名访问),打开此项配置(将前面的 # 号去掉)以后将其值改成false

  修改前:#allow_anonymous false
  修改后:allow_anonymous false

1.1:
(1)bind_address表示开启服务器的IP地址,默认0.0.0.0
(2)port表示端口号,默认1883

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 文件会发现其中多了两个用户。

image.png

注意,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.1

给这两个用户配置不一样的权限(假定已经建立了admin 和 mosquitto这两个用户)

admin 设置为订阅权限,而且只能访问的主题为"root/topic/#"
mosquitto 设置为发布权限,而且只能访问的主题为"root/topic/#"

若是用 admin 进行发布是不会成功的、反过来用 mosquitto 进行订阅一样不会接受到任何信息。由于他们的权限不一样。

1.2

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

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

read 订阅权限 、write 发布权限、# 通配符表示全部的、保存退出。

1.3

修改 Mosquitto.conf 配置选项
打开mosquitto.conf文件,找到acl_file节点。打开配置作以下修改:

  修改前:#acl_file
  修改后:acl_file /etc/mosquitto/aclfile.example (根据本身文件实际位置填写)

至此admin 、 Mosquitto 两个用户的权限已配置完成。

修改mosquitto端口 ①、默认状况下,mosquitto使用的是1883端口
在.conf文件找到port,改为本身须要的端口号。我改为了1884,不能使用已占用的端口。

你可能感兴趣的:(mosquitto --用户配置 及权限管理)