【问题标题】:What is the worst case when the epmd port is open?当 epmd 端口打开时,最坏的情况是什么?
【发布时间】:2011-07-16 09:40:09
【问题描述】:

当使用像ejabberd 这样的Erlang 程序时,Erlang port mapper daemon epmd 会启动并打开端口4369

默认情况下,此端口可通过 Internet 访问(只有最新的 ejabberd 版本允许配置 epmd 应绑定到 localhost)。

ejabberd 文档建议 blocking this port via packet filter rulescomment in the Debian bug tracker 将此默认行为称为“从安全角度来看是一场噩梦”。

当 ejabberd 正在运行并且端口 4369 未被阻塞时,最坏的情况是什么?

假设 - 防火墙意外配置错误或类似情况。

Erlang 流利的攻击者可以通过这个端口做的最邪恶的事情是什么?

在 Linux 发行版(例如 Debian/Ubuntu)下以什么用户/权限运行 epmd

【问题讨论】:

    标签: erlang


    【解决方案1】:

    很好的问题。

    除了端口 4369,您还必须考虑它为实际节点间通信建议的端口(默认为 5001-6024)。像所有的 tcp 服务一样,它很容易受到作恶者的攻击,因为软件永远不会没有错误,因此可以破解。想想 SSH 和它的缓冲区溢出漏洞。由于“epmd”不提供很多服务,节点间通信使用安全的 cookie 代码进行身份验证,并且 Erlang 相对较旧,您预计该领域不会有很多错误。但是,仅靠良好的血统并不能算入安全领域。 ;-)

    正如您所写,您需要一个正确配置的防火墙,以确保服务器不会像那样暴露。您需要确保在维护过程中彻底检查防火墙的正常运行。

    哦,我以具有有限文件权限的非 root 用户身份运行我的 Erlang 节点。

    【讨论】:

      【解决方案2】:

      您可能会发现 BEAM 之间的活动连接的源/目标地址和端口号对。这可能会导致对 BEAM 间连接的 DoS 攻击。

      【讨论】:

      • 我猜 BEAM 类似于 Erlang 中的进程?
      • BEAM 是一个虚拟机。 BEAM 启动和接收用于 BEAM 间连接的 TCP 连接。所以它不是 Erlang 进程,而确实是作为 Linux of UNIX 进程运行的 Linux 或 UNIX 程序。
      猜你喜欢
      • 2014-08-01
      • 1970-01-01
      • 2021-06-12
      • 1970-01-01
      • 2016-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-13
      相关资源
      最近更新 更多