安全最佳实践:epmd
·一分钟阅读
安全最佳实践:epmd
Erlang 端口映射守护进程 (epmd
) 是一个内置组件,可帮助基于 Erlang 的应用程序(包括 RabbitMQ)发现彼此的分发端口。epmd
与用于主机名解析的 DNS 一起,是 RabbitMQ 节点用于集群、节点间通信和 CLI 工具连接的基础设施的一部分。
虽然 epmd
的范围非常有限,但将其暴露于公共互联网通常意味着 Erlang 分发端口也暴露在外。这会产生潜在的安全风险:如果攻击者找到这些分发端口,他们只需一个密钥值即可针对节点(或集群)运行 CLI 命令。
最近的扫描显示,超过 85,000 个可公开访问的 epmd
实例,其中大约一半与 RabbitMQ 服务器相关联。
幸运的是,通常只需限制对一系列端口的网络访问即可缓解此风险。epmd
和节点间通信也可以限制为本地网络接口,特别是对于用于运行测试的单节点集群。
阅读 Erlang 生态系统基金会博客上的完整文章。