管理插件与 guest 账号
RabbitMQ 的管理插件默认监听 15672,内置 guest/guest 账号默认只允许本机登录。一旦为了图方便把这条限制改掉,或者给 guest 设了弱口令,管理界面就能被远程接管:消息、队列、用户都可任意增删。消息中间件常常是业务数据流的咽喉,被接管的影响远不止一个服务。
基本信息
| 适用平台 | Linux 与 Windows(RabbitMQ) |
|---|---|
| 相关端口 | 15672 管理界面、5672 AMQP、25672 集群通信 |
| 风险等级 | 高 |
| 基线要求 | guest 不用于远程,管理面限制来源 |
| 核查工具 | rabbitmqctl |
典型使用场景
- 消息队列管理面的暴露面核查
- 排查 guest 账号是否被改成可远程登录
- 新建运维账号并按最小权限收敛
- 收到中间件弱口令告警后的处置
- 集群端口与插件启用情况盘点
核查与处置
核查与处置
ss -tlnp | grep -E ':15672|:5672 ' # 确认管理界面与 AMQP 端口
rabbitmqctl list_users 2>/dev/null # 列出用户与标签
rabbitmqctl list_permissions 2>/dev/null # 查看权限分配
rabbitmqctl add_user ops <强口令> # 新建最小权限运维账号
rabbitmqctl set_user_tags ops monitoring # 只授予监控标签
rabbitmqctl delete_user guest 2>/dev/null # 确认不需要后删除默认账号复核必查项
| 检查项 | 含义 | 注意点 |
|---|---|---|
| 15672 | 管理插件的监听端口 | 限制来源,不对不可信网段开放 |
| 5672 | AMQP 协议端口 | 同样需要账号与来源控制 |
| loopback_users | guest 是否只允许本地登录 | 改动过要立刻复查 |
| 用户与标签 | 账号及其权限级别 | 运维账号只给必要标签 |
| 插件启用状态 | 管理插件是否开启 | 启用即登记进暴露面清单 |
guest 账号仅限本地这条限制很容易被人为改掉而无人记得:任何配置变更之后都要复查 loopback_users 的实际取值。
管理界面加固了不等于协议端口安全:5672 同样需要独立账号、最小权限与来源限制,两者要分别核查。
默认虚拟主机与权限分配也要一起看:即使账号收敛好了,如果某个用户被授予了过宽的虚拟主机权限,他照样能读写与自己业务无关的队列和交换机。