EMQX开源版4.3.5安装及相关安全漏洞处理

#安全漏洞#

一、下载安装包

emqx-4.3.5下载

二、安装

1.root目录下新增emqx目录

2.复制安装包至/root/emqx目录下

3.切换目录

4.安装

sudo yum install emqx-cenots7-v4.0.0.x86_64.rpm

5.

后台启动 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

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值