zoukankan      html  css  js  c++  java
  • 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,不能使用已占用的端口。

      

  • 相关阅读:
    Network (poj1144)
    C. Hongcow Builds A Nation
    ZYB loves Xor I(hud5269)
    D. Chloe and pleasant prizes
    Game(hdu5218)
    约瑟夫环的递推方法
    Misaki's Kiss again(hdu5175)
    Exploration(hdu5222)
    B. Arpa's weak amphitheater and Mehrdad's valuable Hoses
    C. Arpa's loud Owf and Mehrdad's evil plan
  • 原文地址:https://www.cnblogs.com/saryli/p/9820532.html
Copyright © 2011-2022 走看看