RabbitMQ 管理控制台
15672 是 RabbitMQ 管理插件的 Web 控制台端口:队列、连接、消费者、权限与 shovel 都在这里管理,同一套界面下还提供管理用的 HTTP 接口。它和承载消息的 5672 分工明确,但权限影响面很大——管理台上能删队列、改用户权限,因此它通常只对管理网段开放,并配合独立的管理账号使用。
基本信息
| 服务 | RabbitMQ 管理插件(Web 控制台) |
|---|---|
| 协议 | TCP/HTTP(15672;消息端口 5672) |
| 用途 | 队列与连接管理、监控对接 |
| 启用方式 | rabbitmq-plugins enable |
| 暴露要求 | 仅管理网段 |
典型使用场景
- 队列积压排查:按队列查看消息深度与消费速率
- 权限调整:为业务系统新增账号并分配虚拟主机权限
- 连接定位:查看连接明细中的客户端地址,定位异常来源
- 监控对接:通过管理接口采集指标接入监控平台
- 安全核对:确认是否存在仍在使用的默认账号
管理接口常用端点
| 端点 | 内容 | 用途 |
|---|---|---|
| /api/overview | 版本、连接数与消息速率 | 总览与监控对接 |
| /api/queues | 队列列表与消息深度 | 积压排查 |
| /api/connections | 连接明细与客户端地址 | 定位异常来源 |
| /api/nodes | 节点资源与文件句柄 | 容量与稳定性观察 |
状态与账号管理
状态与账号管理
# 确认监听端口与实际启用状态
rabbitmqctl status | grep -A3 listeners
# 启用管理插件
rabbitmq-plugins enable rabbitmq_management
# 新建管理账号并赋予监控权限
rabbitmqctl add_user ops <口令>
rabbitmqctl set_user_tags ops monitoring
rabbitmqctl list_users默认账号被限制为本机登录,这是它的一种保护机制,但很多人为了排障把它放开后忘记改回。核对时应确认默认账号已删除或恢复为本机限制,并确认所有在用的账号都有明确归属。
管理台默认监听全部接口:若同时存在弱口令,等于把消息队列的管理权交出去,攻击者可以通过管理接口读取连接信息甚至修改配置。将监听地址收敛到本机并前置反向代理,是常见的收敛方式。
加固要点
- 删除默认账号或恢复其本机登录限制
- 管理台只对管理网段开放,必要时经反向代理
- 按角色分配权限,监控账号不要给管理权限
- 把管理接口的访问纳入审计日志