EMQX

适用范围:EMQX 4.x/5.x Broker 单节点、集群和企业版场景。

不适用标识说明:

  • 使用 【不适用】 明确标记现场可判定为不适用的控制点。
  • 判定依据采用 GB/T 28448-2019 的对象边界原则;EMQX 既可能只是协议接入层,也可能直接承载用户设备身份和消息内容,需按现场实际角色判定。

基础信息

核查命令

emqx version 2>/dev/null
ps -ef | grep emqx
find . -name emqx.conf -o -name cluster.hocon -o -name emqx_dashboard.conf
  • 备注:先识别版本、部署模式、节点角色、Dashboard 地址、监听端口、配置目录和日志目录。
  • 预期证据:版本截图、进程截图、配置目录截图、端口截图。
示例输出(节选)
emqx version
EMQ X Enterprise 5.4.1
ps -ef | grep emqx(节选)
emqx 12101 beam.smp -emqx etc /opt/emqx/etc
find .
etc/emqx.conf  etc/cluster.hocon  data/configs/cluster.hocon

身份鉴别

A. Dashboard 登录鉴别

核查命令

grep -R "dashboard" etc data/config 2>/dev/null
  • 备注:重点核查 Dashboard 是否开启、是否要求密码、是否通过 HTTPS、是否限制来源。
  • 预期证据:Dashboard 登录截图、配置截图。
示例输出(节选)
grep dashboard etc
etc/emqx.conf: dashboard.listeners.http.bind = "192.168.10.101:18083"
(Dashboard 仅内网绑定,经堡垒机映射访问)

B. 客户端认证方式

核查命令

find etc -type f | grep -E "emqx_auth|acl|authorization"
grep -R "authn\\|authz" etc data/config 2>/dev/null
  • 备注:现场应区分用户名密码、ClientID、HTTP、MySQL、JWT、TLS 证书等认证方式。
  • 预期证据:认证插件配置截图、账号台账、访谈记录。
示例输出(节选)
find etc | grep acl|authorization
etc/acl.conf
grep authn etc/data/configs/cluster.hocon
authentication = [ { mechanism = password_based, backend = mysql, ... } ]
(接入 MySQL 认证器,ACL 文件启用)

C. 口令与失败控制

核查命令

grep -R "password\\|deny\\|rate_limit" etc data/config 2>/dev/null
  • 备注:客户端锁定能力通常依赖认证后端、限速和安全设备,需按实际实现判断。
  • 【不适用】若 EMQX 未提供面向人工运维的本地登录界面,仅处理设备连接认证,则“人工用户登录失败锁定/会话超时”对 Broker 本体可判定为不适用;应转而核查设备认证、Dashboard 鉴别和访问限制。依据:GB/T 28448-2019 身份鉴别控制点按实际鉴别主体和场景适用。
  • 预期证据:限流配置截图、认证平台截图、制度。
示例输出(节选)
grep password/deny/rate_limit etc
data/configs/cluster.hocon: max_conn_rate = 50
etc/acl.conf: { deny, all, subscribe, ["$SYS/#"] }
(默认拒绝 $SYS 订阅,连接速率限制开启)

D. 会话与远程管理

核查命令

grep -R "idle_timeout\\|session_expiry_interval" etc data/config 2>/dev/null
  • 备注:管理面与 MQTT 客户端会话需要分别核查。
  • 预期证据:会话参数截图、平台材料。
示例输出(节选)
grep idle_timeout/session_expiry_interval etc
data/configs/cluster.hocon:
mqtt.idle_timeout = 15m
mqtt.session_expiry_interval = 30m
(会话过期 30 分钟,空闲连接 15 分钟回收)

访问控制

A. ACL 与授权

核查命令

find etc -type f | grep -E "acl|authorization"
grep -R "publish\\|subscribe\\|allow\\|deny" etc data/config 2>/dev/null
  • 备注:应核查客户端对主题的发布/订阅权限是否最小化。
  • 预期证据:ACL 截图、授权说明。
示例输出(节选)
find etc | grep acl
etc/acl.conf
grep publish/subscribe/allow etc
etc/acl.conf:
{ allow, {user, "demo-device"}, publish, ["demo/#"] }
{ allow, {user, "demo-platform"}, subscribe, ["demo/#"] }
{ deny, all }

B. Dashboard 与 API 限制

核查命令

grep -R "listeners\\|dashboard.listeners" etc data/config 2>/dev/null
  • 备注:Dashboard、REST API 和管理端口应限制来源网络。
  • 预期证据:监听配置截图、网络 ACL 材料。
示例输出(节选)
grep listeners etc
listeners.tcp.default.bind = "0.0.0.0:1883"
listeners.ssl.default.bind = "0.0.0.0:8883"
dashboard.listeners.http.bind = "192.168.10.101:18083"
(生产流量走 8883 TLS;1883 仅限 VPC 内网白名单使用)

C. 默认账户与未使用插件

核查命令

emqx ctl plugins list 2>/dev/null
  • 备注:未使用认证插件、测试插件和默认账户应清理或停用。
  • 预期证据:插件清单截图、处置说明。
示例输出(节选)
emqx ctl plugins list
Plugin                    Status
emqx_authn_mnesia         stopped
emqx_management           running
emqx_retainer             running
(无第三方未审核插件运行)

D. 文件与运行权限

核查命令

ps -o user,pid,cmd -C beam.smp
find etc -maxdepth 1 -type f -exec ls -l {} \\
  • 备注:配置目录、日志目录和数据目录权限应最小化。
  • 预期证据:运行用户截图、权限截图。
示例输出(节选)
USER PID COMMAND
emqx 12101 beam.smp
-rw-r----- emqx emqx etc/emqx.conf
-rw------- emqx emqx data/certs/client.pem
(配置与证书权限合规,以非特权用户运行)

安全审计

A. 日志配置

核查命令

grep -R "log\\." etc data/config 2>/dev/null
find log -type f 2>/dev/null
  • 备注:应关注 Broker 日志、认证日志、Dashboard 日志和规则引擎日志。
  • 预期证据:日志配置截图、日志目录截图。
示例输出(节选)
grep log etc/data/configs/cluster.hocon
log.file.level = info
log.console.level = warning
find log -type f
log/emqx.log  log/emqx.log.1  log/erlang.log.1

B. 客户端接入与管理操作日志

核查命令

grep -R "audit\\|trace" etc data/config 2>/dev/null
  • 备注:现场需证明客户端认证、拒绝连接、管理操作和异常事件可追溯。
  • 预期证据:日志样例、平台截图。
示例输出(节选)
grep audit/trace etc
data/configs/cluster.hocon: trace 按需临时开启
log/emqx.log 中记录 dashboard 登录成功/失败事件
(管理操作审计依赖 Dashboard 日志+平台侧审计)

C. 留存与轮转

核查命令

grep -R "rotation\\|size" etc data/config 2>/dev/null
  • 备注:需核实日志轮转、保留周期和集中化策略。
  • 预期证据:轮转截图、制度、访谈记录。
示例输出(节选)
grep rotation/size etc
data/configs/cluster.hocon:
log.rotation.count = 10
log.rotation.max_size = 50MB
(按大小轮转保留 10 个文件)

D. 平台联动

核查命令

journalctl | grep emqx | tail -n 50
  • 备注:EMQX 现场通常还需结合日志平台和监控平台判断。
  • 预期证据:平台截图、告警截图。
示例输出(节选)
journalctl | grep emqx(节选)
Aug 24 08:59:20 host systemd[1]: Started emqx.service.
Aug 24 09:00:01 host emqx[12101]: EMQ X 5.4.1 is running now!
Aug 24 10:12:44 host emqx[12101]: authentication failure for client_id 'test-01'

数据完整性

A. 集群与消息完整性

核查命令

emqx ctl cluster status 2>/dev/null
  • 备注:关注节点状态、消息路由、桥接和规则引擎的正确性。
  • 预期证据:集群状态截图、架构说明。
示例输出(节选)
emqx ctl cluster status
running_nodes: ['emqx@192.168.10.101','emqx@192.168.10.102']
stopped_nodes: []
(两节点集群正常,节点故障可自动接管会话)

B. 传输完整性

核查命令

grep -R "listeners.ssl\\|mqtt.ssl\\|wss" etc data/config 2>/dev/null
  • 备注:MQTT/TCP、MQTT over SSL、WebSocket over TLS 应按实际协议取证。
  • 预期证据:TLS 配置截图、证书材料。
示例输出(节选)
grep listeners.ssl etc
listeners.ssl.default.bind = "0.0.0.0:8883"
listeners.wss.default.bind = "0.0.0.0:8084"
(MQTT 与 WebSocket Secure 均启用 TLS)

数据保密性

A. TLS 与证书保护

核查命令

grep -R "certfile\\|keyfile\\|cacertfile" etc data/config 2>/dev/null
  • 备注:管理面和敏感消息链路应优先启用 TLS。
  • 预期证据:证书截图、HTTPS/WSS 截图。
示例输出(节选)
grep certfile/keyfile etc/data/configs/cluster.hocon
ssl_options.keyfile = /opt/emqx/etc/certs/server.key
ssl_options.certfile = /opt/emqx/etc/certs/server.pem
ssl_options.cacertfile = /opt/emqx/etc/certs/ca.pem
verify = verify_peer

B. 敏感配置保护

核查命令

grep -R "password\\|secret\\|token" etc data/config 2>/dev/null
  • 备注:认证后端口令、规则引擎凭据、桥接凭据应重点核查。
  • 预期证据:脱敏截图、权限截图、密钥管理说明。
示例输出(节选)
grep password etc/data/configs/cluster.hocon(节选)
authentication.mysql.password = ***
dashboard.default_password = ***(首次登录已修改)
(口令掩码展示,未见明文)

备份恢复

A. 配置备份

核查命令

find etc data/config -type f 2>/dev/null
  • 备注:应覆盖 emqx.conf、Dashboard、认证插件、规则引擎和集群配置。
  • 预期证据:备份目录截图、备份策略。
示例输出(节选)
find etc data/configs -type f
etc/emqx.conf  etc/acl.conf  etc/base.hocon
data/configs/cluster.hocon
etc/certs/server.pem  etc/certs/server.key

B. 日志与数据备份

核查命令

find log data -type f 2>/dev/null | head
  • 备注:如使用持久化会话、规则引擎或外部存储,应同步说明备份范围。
  • 预期证据:目录截图、平台材料、访谈记录。
示例输出(节选)
find log data | head
log/emqx.log  log/emqx.log.1
data/mnesia/emqx@192.168.10.101/
data/certs/
(数据目录纳入每日备份)

C. 恢复能力

核查命令

emqx ctl status 2>/dev/null
  • 备注:可通过节点重建、配置恢复、集群重连或编排重启证明恢复能力。
  • 预期证据:恢复手册、演练记录、工单。
示例输出(节选)
emqx ctl status
Node 'emqx@192.168.10.101' 5.4.1 is started
(服务运行正常,配置可由备份恢复)

剩余信息保护

A. 历史配置与停用插件

核查命令

find . -type f | grep -E "bak|old|backup"
  • 备注:旧配置、停用插件、历史证书和测试配置应及时清理。
  • 预期证据:目录截图、清理说明。
示例输出(节选)
find . | grep bak|old|backup
backup-emqx-20260823.tar.gz
etc/emqx.conf.bak
(旧配置移出生产目录计划中)

B. 凭据残留

核查命令

grep -R "password\\|secret\\|token" . 2>/dev/null
  • 备注:日志、配置和脚本中残留敏感信息应重点处理。
  • 预期证据:脱敏截图、整改记录。
示例输出(节选)
grep password/token .(节选)
data/configs/cluster.hocon: authentication.mysql.password = ***
log/emqx.log: authentication failure(无敏感明文)

个人信息保护

A. MQTT 主题与日志中的个人信息

核查命令

grep -R "topic" etc data/config 2>/dev/null
  • 备注:现场不建议直接抽取敏感消息内容,可通过主题命名、规则引擎、业务说明判断是否承载个人信息。
  • 【不适用】若 EMQX 承载的仅为设备状态、遥测、非个人信息消息,且经业务确认不涉及个人身份数据,则该点可判定为不适用。依据:GB/T 28448-2019 个人信息保护控制点应以实际处理个人信息为适用前提。
  • 预期证据:主题配置截图、业务访谈记录。
示例输出(节选)
grep topic etc(节选)
etc/acl.conf: ["demo/#"] "$SYS/#"
(主题命名不含个人信息字段)

B. 导出与共享控制

核查命令

find . -type f | grep -i "export\\|rule"
  • 备注:规则引擎、桥接和外部存储转发可能造成个人信息扩散,应核查授权和脱敏控制。
  • 【不适用】若未启用规则引擎导出、桥接外发、Dashboard 数据导出等能力,且消息不含个人信息,则“个人信息导出与共享控制”对 EMQX 可判定为不适用。依据:GB/T 28448-2019 按对象实际输出与共享能力判定。
  • 预期证据:规则配置截图、制度、访谈记录。
示例输出(节选)
find . | grep export|rule
scripts/export-acl.sh
data/rules/demo-rule.json(规则引擎规则导出)
(规则导出文件权限 600 并纳入变更管理)

入侵防范

A. Dashboard 与 MQTT 端口暴露

核查命令

grep -R "listeners\\|dashboard" etc data/config 2>/dev/null
  • 备注:重点核查 Dashboard、API、MQTT/TCP、WS/WSS 等端口是否对无关网络暴露。
  • 预期证据:监听配置截图、端口截图、网络 ACL 材料。
示例输出(节选)
grep listeners/dashboard etc(见上)
listeners.tcp/ssl/dashboard 配置齐备
(管理端口仅内网,业务端口经 LB 接入)

B. 默认账户与危险插件

核查命令

emqx ctl plugins list 2>/dev/null
grep -R "allow_anonymous\\|dashboard.default" etc data/config 2>/dev/null
  • 备注:关注匿名接入、默认账号、测试插件和高危桥接配置。
  • 预期证据:插件截图、配置截图、处置说明。
示例输出(节选)
emqx ctl plugins list
emqx_management running
grep allow_anonymous etc
data/configs/cluster.hocon: 未出现 allow_anonymous=true
(匿名接入禁用,认证强制生效)

C. 版本与漏洞风险

核查命令

emqx version 2>/dev/null
  • 备注:需确认版本、插件版本和高危漏洞整改情况。
  • 预期证据:版本截图、补丁或整改记录。
示例输出(节选)
emqx version
EMQ X Enterprise 5.4.1
(版本较新,CVE 修复情况见补丁台账)

D. 防护与告警联动

核查命令

journalctl | grep emqx | tail -n 50
  • 备注:EMQX 入侵防范通常依赖安全网关、日志平台、主机防护和规则告警联动。
  • 预期证据:平台截图、告警记录、安全设备材料。
示例输出(节选)
tail log/emqx.log(节选)
2026-08-24T10:12:44+08:00 [warning] clientid: test-01, msg: authentication_failure, peer: 192.168.8.66
2026-08-24T10:12:45+08:00 [info] connection closed by peer
(认证失败记录完整并联动安全平台封禁告警)