当使用像ejabberd这样的Erlang程序时, epmd会启动Erlang端口映射器守护程序并打开端口4369.
此端口可通过Internet访问(默认情况下,只有最新的ejabberd版本允许配置epmd应绑定到localhost).
ejabberd文档建议通过数据包过滤规则阻止此端口,并且Debian错误跟踪器中的注释将此默认行为称为"从安全角度来看是一场噩梦".
当ejabberd正在运行且端口4369未被阻止时,最糟糕的情况是什么?
说 - 防火墙是偶然配置错误或类似的东西.
一个二郎流利的攻击者可以在这个港口做什么最邪恶的事情?
在epmdlinux发行版下运行什么用户/权限(例如Debian/Ubuntu)?
好问题.
除了端口4369之外,您还必须考虑它将为实际的节点间通信建议的端口(默认为5001-6024).像所有tcp服务一样,它将容易受到恶意攻击者的攻击,因为软件永远不会没有bug,因而无法攻击.认为SSH和它的缓冲区溢出漏洞.由于'epmd'没有提供很多服务,节点间通信使用安全的cookie代码进行身份验证,并且Erlang的相对老年期望在该区域中没有很多错误.但是,一个好的血统本身并不属于安全领域.;-)
正如您所写,您需要一个正确配置的防火墙,以确保服务器不会像这样暴露.您需要确保在维护过程中彻底检查防火墙的正常运行.
哦,我运行我的Erlang节点作为具有有限文件权限的非root用户.