#安全漏洞#
一、下载安装包
emqx-4.3.5下载
二、安装
1.root目录下新增emqx目录
2.复制安装包至/root/emqx目录下
3.切换目录
4.安装
sudo yum install emqx-cenots7-v4.0.0.x86_64.rpm
后台启动 EMQX
$ emqx start
EMQX v4.0.0 is started successfully!
systemctl 启动
$ sudo systemctl start emqx
EMQX v4.0.0 is started successfully!
service启动
$ sudo service emqx start
EMQX v4.0.0 is started successfully!
三、启用 Dashboard(容易被攻击,上线后建议关闭)
EMQX Dashboard 功能由 emqx-dashboard (opens new window)插件实现,该插件默认处于启用状态,它将在 EMQX 启动时自动加载。如果你希望禁用 Dashboard 功能,你可以将
data/loaded_plugins
(请参见 插件)中的
{emqx_dashboard, true}
修改为
{emqx_dashboard, false}
。
{emqx_dashboard, true}.
四、查看 Dashboard
EMQX Dashboard 是一个 Web 应用程序,你可以直接通过浏览器来访问它,无需安装任何其他软件。
当 EMQX 成功运行在你的本地计算机上且 EMQX Dashboard 被默认启用时,你可以访问 http://localhost:18083 来查看你的 Dashboard,默认用户名是
admin
,密码是
public
。
五、开启MySQL 认证
要启用 MySQL 认证,需要在
etc/plugins/emqx_auth_mysql.conf
中配置以下内容(如果找不到文件则是
etc/emqx/plugins/emqx_auth_mysql.conf
)
配置 MySQL 服务相关的连接地址,用户名密码和数据库:
## 服务器地址
auth.mysql.server = 127.0.0.1:3306
## 连接池大小
auth.mysql.pool = 8
auth.mysql.username = emqx
auth.mysql.password = public
auth.mysql.database = mqtt
auth.mysql.query_timeout = 5s
默认表结构
MySQL 认证默认配置下需要确保数据库中有下表:
CREATE TABLE `mqtt_user` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(100) DEFAULT NULL,
`password` varchar(100) DEFAULT NULL,
`salt` varchar(35) DEFAULT NULL,
`is_superuser` tinyint(1) DEFAULT 0,
`created` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `mqtt_username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
默认配置下示例数据如下:
INSERT INTO `mqtt_user` ( `username`, `password`, `salt`)
VALUES
('emqx', 'efa1f375d76194fa51a3556a97e641e61685f914d446979da50a551a4333ffd7', NULL);
启用 MySQL 认证后,你可以通过用户名: emqx,密码:public 连接。
加盐规则与哈希方法
MySQL 认证支持配置加盐规则与哈希方法:
# etc/plugins/emqx_auth_mysql.conf
auth.mysql.password_hash = sha256
认证 SQL(auth_query)
进行身份认证时,EMQX 将使用当前客户端信息填充并执行用户配置的认证 SQL,查询出该客户端在数据库中的认证数据。
# etc/plugins/emqx_auth_mysql.conf
auth.mysql.auth_query = select password from mqtt_user where username = '%u' limit 1
Dashboard中启用mysql认证
六、关闭匿名访问(安全漏洞问题)
1.修改 /etc/emqx/emqx.conf 的配置项
## Allow anonymous authentication by default if no auth plugins loaded.
## Notice: Disable the option in production deployment!
##
## Value: true | false
allow_anonymous = false
## Allow or deny if no ACL rules matched.
##
## Value: allow | deny
acl_nomatch = deny
版权归原作者 摸鱼工程师zsf 所有, 如有侵权,请联系我们删除。