我在包含管理和rabbitmq_auth_backend_ip_range插件的计算机上通过docker image安装了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">>]}]
}
]}
].
根据documentation,仅允许对标有administrator
的帐户进行访问。但如果我做一个telnet没有改变:
telnet ip-address 5672
我可以访问它。你如何通过telnet传递凭证?如何用兔子mq完成ip限制?
答案 0 :(得分:2)
rabbitmq-auth-backend-ip-range仅提供登录/与rabbitmq服务器通信的认证机制。这并不意味着您的5672端口未打开。 您仍然可以在5672上进行telnet但是如果某些管理员用户尝试特别连接到RabbitMQ服务器,那么它应该与给定的IP地址匹配,否则验证失败将返回
对于RabbitMQ管理,您可以定义如下所示的IP地址:
{rabbitmq_management, [
{listener, [{port, 15672}, {ip, "127.0.0.1"}]}
]}
答案 1 :(得分:1)
Rabbitmq-auth-backend-ip-range link是基于源IP地址的客户端授权的社区插件。使用此社区插件,我们可以根据IP地址限制对客户端的访问
步骤在rabbitmq版本3.6.X中配置插件
rabbitmq-plugins enable rabbitmq_auth_backend_ip_range
[ {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且所有其他标签可以从任何IP地址访问的rabbitmq服务器PS:由于没有在线配置rabbitmq_auth_backend_ip_range插件的有效链接,所以我通过配置步骤回答了这个问题