Linux 上保障 RabbitMQ 安全的可落地方案
一 身份与访问控制
rabbitmqctl add_vhost myvhost、rabbitmqctl add_user appuser StrongPass!rabbitmqctl set_permissions -p myvhost appuser ".*" ".*" ".*"(配置/写/读)rabbitmqctl set_user_tags appuser administratorrabbitmqctl delete_user guest{loopback_users, ["guest"]} 来限制本机访问(注意不同版本的配置格式差异)。二 传输与网络防护
三 消息与数据安全
spring.rabbitmq.publisher-confirm-type=correlated、spring.rabbitmq.publisher-returns=truespring.rabbitmq.listener.simple.acknowledge-mode=manual四 系统与运维安全
五 快速加固清单
| 控制点 | 建议 | 关键命令或配置 |
|---|---|---|
| 默认账户 | 删除或禁用 guest,创建专用管理员与业务账户 | rabbitmqctl delete_user guest;rabbitmqctl add_user ...;rabbitmqctl set_user_tags ... administrator |
| 访问控制 | 按 vhost 最小权限授权 | rabbitmqctl add_vhost ...;rabbitmqctl set_permissions -p ... |
| 远程管理 | 禁用 guest 远程,管理端走内网/白名单 + HTTPS | 配置 /etc/rabbitmq/rabbitmq.config 的 loopback_users;启用管理插件后使用 HTTPS |
| 加密传输 | 启用 TLS/SSL(AMQPS/HTTPS) | 配置证书与客户端使用 amqps:// |
| 端口与防火墙 | 仅开放 5671/5672/15671/15672,限制来源 | firewalld/iptables 白名单策略 |
| 消息可靠性 | Confirm/Returns + 持久化 + 手动 ACK + DLX | Spring:publisher-confirm-type、publisher-returns、acknowledge-mode=manual |
| 运行安全 | rabbitmq 用户运行、目录权限最小化、日志审计 | 目录属主 rabbitmq:rabbitmq,权限 600/644 |
| 监控与告警 | 监控登录、权限变更、节点健康与队列积压 | 结合管理插件指标与日志告警策略 |