2

我通过 docker 镜像在包括管理和 rabbitmq_auth_backend_ip_range 插件的机器上安装了 rabbit mq。我想限制对端口 5671/2 和 15672 的访问,只允许某些 IP 访问它们。

由于 15672 是 Web 界面,因此我没有当前的解决方案。有什么想法吗?

对于 5671/2(哪个是安全的?)我想使用该插件rabbitmq_auth_backend_ip_range,因为据我了解,这就是它的目的。

我现在的rabbitmq.config样子是这样的:

[
    {rabbit, [
        {auth_backends, [{rabbit_auth_backend_ip_range}]}
    ]},
    {rabbitmq_auth_backend_ip_range, [
        {tag_masks,
            [{'administrator', [<<"::FFFF:192.168.0.0/112">>]}]
        }
    ]}
].

根据只允许访问标记为的帐户的文档administrator。但如果我做一个 telnet 没有任何改变:

telnet ip-address 5672

我可以访问它。您如何通过 telnet 传递凭据?使用rabbit mq如何进行ip限制?

4

2 回答 2

3

rabbitmq-auth-backend-ip-range 仅提供身份验证机制来登录/与 rabbitmq 服务器对话。这并不意味着您的 5672 端口未打开。您仍然可以在 5672 上远程登录,但如果某些管理员用户尝试特别连接到 RabbitMQ 服务器,那么它应该与给定的 IP 地址匹配,否则身份验证失败将返回

对于 RabbitMQ 管理,您可以像这样定义 IP 地址:

{rabbitmq_management, [
        {listener, [{port, 15672}, {ip, "127.0.0.1"}]}
    ]}
于 2016-12-23T06:58:19.810 回答
1

Rabbitmq-auth-backend-ip-range链接是基于源 IP 地址的客户端授权的社区插件。使用这个社区插件,我们可以根据 IP 地址限制对客户端的访问

在 rabbitmq 3.6.X 版本中配置插件的步骤

[
{rabbit, [
    {tcp_listeners, [5672]},
    {auth_backends, [
        {rabbit_auth_backend_internal,
        [rabbit_auth_backend_internal, rabbit_auth_backend_ip_range]
        }
    ]
    }
]},
{rabbitmq_auth_backend_ip_range, [
    {tag_masks,
        [{'customtag', [<<"::FFFF:172.xx.xx.xxx">>]}]},
    {default_masks, [<<"::0/0">>]}
]}
].
  • 此配置将以这样一种方式生效,即具有标签的用户customtag将能够连接到 IP 地址为 172.xx.xx.xxx 的 rabbitmq 服务器,并且所有其他标签都可以从任何 IP 地址访问
  • sudo service rabbitmq-server 重启

PS:由于网上没有配置rabbitmq_auth_backend_ip_range插件的有效链接,所以我用配置步骤回答了这个问题

于 2018-06-12T09:01:34.070 回答