centos上rabbitmq安全设置指南
导读:CentOS 上 RabbitMQ 安全设置指南 一 身份与访问控制 禁用或删除默认账户:默认的 guest/guest 仅允许从 localhost 登录,生产环境应创建专用管理员并禁用默认账户。示例:创建管理员用户 admin/Str...
CentOS 上 RabbitMQ 安全设置指南
一 身份与访问控制
- 禁用或删除默认账户:默认的 guest/guest 仅允许从 localhost 登录,生产环境应创建专用管理员并禁用默认账户。示例:创建管理员用户 admin/StrongPass!,赋予 administrator 标签,并删除 guest。完成后使用新账户登录管理界面。
命令示例:
rabbitmqctl add_user admin StrongPass!
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p / admin “." ".” “.*”
rabbitmqctl delete_user guest - 最小权限与 vhost 隔离:按业务创建 vhost(如 /prod、/dev),为用户授予“仅该 vhost”的 configure/write/read 权限,避免使用通配 vhost 的过度授权。
命令示例:
rabbitmqctl add_vhost /prod
rabbitmqctl add_user app_user AppPass!
rabbitmqctl set_permissions -p /prod app_user “." ".” “.*” - 强认证扩展:如需集中账号或企业目录,可启用 LDAP 认证插件(rabbitmq_auth_backend_ldap),集中管理凭据与策略。
二 网络与端口加固
- 只开放必要端口并限制来源:仅放行 AMQP 5672(或自定义端口)与管理插件 15672(如启用)。在云环境同时配置安全组白名单。
命令示例:
firewall-cmd --permanent --add-port=5672/tcp
firewall-cmd --permanent --add-port=15672/tcp
firewall-cmd --reload - 修改默认端口以降低暴露面:将 5672 改为非标准端口(如 5673),管理端口 15672 改为 15673。
配置示例(/etc/rabbitmq/rabbitmq.conf):
listeners.tcp.default = 5673
management.tcp.port = 15673
修改后重启服务并同步放行新端口。 - 节点间通信与常见插件端口:集群/CLI 通信依赖 4369(epmd) 与 25672;如启用 MQTT 1883/8883、STOMP 61613/61614、WebSocket STOMP/MQTT 15674/15675,仅在需要时开放并限制来源。
三 加密与传输安全
- 启用 TLS/SSL 对客户端与服务器通信加密:准备 CA/服务器证书与私钥,在 rabbitmq.conf 中配置 listeners.ssl 与 ssl_options,客户端使用 amqps:// 连接并校验证书。
证书生成简要示例:
openssl req -new -x509 -days 365 -key key.pem -out cert.pem
配置示例:
listeners.ssl.default = 5671
ssl_options.cacertfile = /path/ca_certificate.pem
ssl_options.certfile = /path/server_certificate.pem
ssl_options.keyfile = /path/server_key.pem
ssl_options.verify = verify_peer
ssl_options.fail_if_no_peer_cert = true
提示:启用后建议禁用明文 5672,或仅在内网可信网段保留并严格限制来源。
四 运行环境与系统安全
- 服务与自启:确保 rabbitmq-server 正常运行并设置为开机自启,便于安全策略与补丁更新后自动恢复。
命令示例:
systemctl start rabbitmq-server
systemctl enable rabbitmq-server - 主机与网络命名:Erlang 分布式通信依赖正确的 hostname 与 /etc/hosts 解析;节点名不一致或解析失败会导致 CLI 与集群通信异常。
- 日志与监控:通过 rabbitmqctl status、管理界面与系统日志持续观察连接、通道、队列与权限变更,及时发现异常行为。
- 补丁与版本管理:定期更新 RabbitMQ 与依赖组件,修复已知漏洞;变更前在测试环境验证,遵循变更流程与回滚预案。
五 快速检查清单
| 检查项 | 期望状态/做法 |
|---|---|
| 默认账户 | 已删除或禁用 guest,仅用自定义管理员与业务账户 |
| 账户权限 | 按 vhost 实施最小权限,定期审计 |
| 端口策略 | 仅开放 5672/5671(SSL)、15672/15673,云侧安全组白名单 |
| 传输加密 | 生产启用 TLS/SSL,客户端证书校验按需开启 |
| 管理插件 | 仅在需要时启用 rabbitmq_management,限制来源 IP |
| 节点通信 | 集群环境确保 4369/25672 可达且主机名解析正确 |
| 日志与监控 | 启用状态/连接/权限审计日志,设置告警阈值 |
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos上rabbitmq安全设置指南
本文地址: https://pptw.com/jishu/760875.html
