Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
限制通过IP访问RabbitMQ_Rabbitmq_Port_Telnet_Ip Restrictions - Fatal编程技术网

限制通过IP访问RabbitMQ

限制通过IP访问RabbitMQ,rabbitmq,port,telnet,ip-restrictions,Rabbitmq,Port,Telnet,Ip Restrictions,我通过docker映像在一台机器上安装了rabbit mq,包括管理和rabbitmq\u auth\u后端\u ip\u范围插件。我想限制对端口5671/2和15672的访问,只允许某些IP访问它们 由于15672是web界面,我目前还没有解决方案。有什么想法吗 对于5671/2(哪个是安全的?),我想使用插件rabbitmq\u auth\u backend\u ip\u range,因为据我所知,这就是它的用途 我当前的rabbitmq.config如下所示: [ {rabbit,

我通过docker映像在一台机器上安装了rabbit mq,包括管理和rabbitmq\u auth\u后端\u ip\u范围插件。我想限制对端口5671/2和15672的访问,只允许某些IP访问它们

由于15672是web界面,我目前还没有解决方案。有什么想法吗

对于5671/2(哪个是安全的?),我想使用插件
rabbitmq\u auth\u backend\u ip\u 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">>]}]
        }
    ]}
].

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

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

对于RabbitMQ管理,您可以定义如下所示的IP地址:

{rabbitmq_management, [
        {listener, [{port, 15672}, {ip, "127.0.0.1"}]}
    ]}

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

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

  • wget
  • 将内容解压缩到/usr/lib/rabbitmq/lib/rabbitmq_server-3.x/plugins
  • 启用插件:
    rabbitmq插件启用rabbitmq\u auth\u后端\u ip\u范围
  • 设置一个自定义标记,此插件将针对特定IP地址阻止该标记
    • rabbitmqctl设置\用户\标记自定义\用户自定义\标记
  • 配置rabbitmqctl配置文件
    • vi/etc/rabbitmq/rabbitmq.config
[
{兔子[
{tcp_侦听器,[5672]},
{auth_后端[
{rabbit_auth_backend_internal,
[rabbit\u auth\u后端\u内部,rabbit\u auth\u后端\u ip\u范围]
}
]
}
]},
{rabbitmq_auth_backend_ip_range[
{tag_面具,
[{'customtag',[]}]},
{默认_掩码,[]}
]}
].
  • 此配置将以这样一种方式生效,即具有标签
    customtag
    的用户将能够连接到IP地址为172.xx.xx.xxx的rabbitmq服务器,并且所有其他标签都可以从任何IP地址访问
  • sudo服务rabbitmq服务器重启

PS:由于没有有效的在线链接来配置rabbitmq\u auth\u backend\u ip\u range插件,因此我通过配置步骤回答了这个问题

如何通过telnet认证为管理员?在telnet连接到5672时,您能获得任何输出吗?我认为simple不会给你任何回应。通过提供身份验证详细信息,应该需要进行适当的握手。好的,也许我当时尝试使用的来宾帐户是活动的。
{rabbitmq_management, [
        {listener, [{port, 15672}, {ip, "127.0.0.1"}]}
    ]}
[
{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">>]}
]}
].