当前位置:   article > 正文

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

emqx漏洞

#安全漏洞#

一、下载安装包

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

  1. $ emqx start
  2. EMQX v4.0.0 is started successfully!

systemctl 启动

  1. $ sudo systemctl start emqx
  2. EMQX v4.0.0 is started successfully!

service启动

  1. $ sudo service emqx start
  2. 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 服务相关的连接地址,用户名密码和数据库:

  1. ## 服务器地址
  2. auth.mysql.server = 127.0.0.1:3306
  3. ## 连接池大小
  4. auth.mysql.pool = 8
  5. auth.mysql.username = emqx
  6. auth.mysql.password = public
  7. auth.mysql.database = mqtt
  8. auth.mysql.query_timeout = 5s

默认表结构

MySQL 认证默认配置下需要确保数据库中有下表:

  1. CREATE TABLE `mqtt_user` (
  2. `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  3. `username` varchar(100) DEFAULT NULL,
  4. `password` varchar(100) DEFAULT NULL,
  5. `salt` varchar(35) DEFAULT NULL,
  6. `is_superuser` tinyint(1) DEFAULT 0,
  7. `created` datetime DEFAULT NULL,
  8. PRIMARY KEY (`id`),
  9. UNIQUE KEY `mqtt_username` (`username`)
  10. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

默认配置下示例数据如下:

  1. INSERT INTO `mqtt_user` ( `username`, `password`, `salt`)
  2. VALUES
  3. ('emqx', 'efa1f375d76194fa51a3556a97e641e61685f914d446979da50a551a4333ffd7', NULL);

启用 MySQL 认证后,你可以通过用户名: emqx,密码:public 连接。

加盐规则与哈希方法

MySQL 认证支持配置加盐规则与哈希方法

  1. # etc/plugins/emqx_auth_mysql.conf
  2. auth.mysql.password_hash = sha256

认证 SQL(auth_query)

进行身份认证时,EMQX 将使用当前客户端信息填充并执行用户配置的认证 SQL,查询出该客户端在数据库中的认证数据。

  1. # etc/plugins/emqx_auth_mysql.conf
  2. auth.mysql.auth_query = select password from mqtt_user where username = '%u' limit 1

Dashboard中启用mysql认证

六、关闭匿名访问(安全漏洞问题)

1.修改 /etc/emqx/emqx.conf 的配置项

  1. ## Allow anonymous authentication by default if no auth plugins loaded.
  2. ## Notice: Disable the option in production deployment!
  3. ##
  4. ## Value: true | false
  5. allow_anonymous = false
  6. ## Allow or deny if no ACL rules matched.
  7. ##
  8. ## Value: allow | deny
  9. acl_nomatch = deny

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/865332
推荐阅读
相关标签
  

闽ICP备14008679号