本文默认已经安装并且开启emqttd,做的事是关闭MQTT客户端匿名认证并且通过username和passward认证,且有一定的Linux命令基础.
环境:
Ubuntu16.04 + emq v3.2.1
正文:
关闭匿名认证
emq安装时,默认开启了匿名认证,也就是说客户端不需要用户名和密码只需要IP和端口就可以发布或者订阅主题,所以我们的第一步就是关闭匿名认证.
1 进入emqx安装目录下/etc,打开emqx.conf文件
cd /opt/emqx/etc
vim emqx.conf
2 按/键进入搜索模式,搜索关键字anonymous,找到这一行: allow_anonymous = true(我这边是447行)
将true改为false,保存,退出,就关闭了匿名认证.
添加Username插件 emq_auth_username
1 bin目录下执行下面命令,开始emq_auth_username插件
./emqttd_ctl plugins load emq_auth_username
2 执行下面命令,添加一个用户名和密码
./emqttd_ctl users add test 123456
3 使用下面命令可以执行所需的操作,大功告成
./emqx_ctl users
users list # List users
users add <Username> <Password> # Add User
users update <Username> <NewPassword> # Update User
users del <Username> # Delete User