我正在尝试保护 RabbitMQ 的安装,但不确定如何保护 Erlang EPMD 端口。我只有一台机器在运行,所以我想让它只监听环回设备。每文档, 我已经添加:
ERL_EPMD_ADDRESS=127.0.0.1
至/etc/rabbitmq/rabbitmq-env.conf
,但这没有效果,因为端口仍然显示nmap
从远程系统打开。
有没有办法锁定这个我不会使用的端口?
答案1
此端口已安全。对此端口的访问由 Cookie 控制,Cookie 基本上是此特定服务器独有的开发人员密钥,在安装时创建。它可能位于 /var/lib/rabbitmq/.erlang.cookie 中,尽管发行版可以更改该位置。您会注意到,cookie 文件只能由 root 读取。
如果远程节点(另一台服务器)或本地节点(此服务器上的另一个 Erlang 实例)想要与您的 RabbitMQ 服务器通信,则它们必须在通过 EPMD 通信时提供 cookie,否则请求将被忽略。
如果您遵循 RabbitMQ 最佳实践,那么您将在其自己的服务器上运行 RabbitMQ,并且将有两到三个其他 RabbitMQ 服务器与其集群。在此上下文中,“集群”意味着共享相同的 cookie 并通过相同的 EPMD 端口进行通信。阻止此端口是一件坏事。
但是,在集群周围设置一个边界通常是件好事,该边界由防火墙管理,以便 EPMD 端口只能在边界内使用。这意味着阻止是在防火墙设备上,或充当防火墙的服务器,或 EC2 防火墙或类似设备。