下载
中文
注册

防止MPI全零侦听

  • MPI初始化拉起的后台mpirun进程存在端口未认证问题,存在被攻击的风险。

    规避措施:MPI启动之后添加防火墙规则,防止外部网络连接mpirun和orted(mpi内部组件)侦听的端口,运行结束后需要清理防火墙规则。

    • 添加防火墙规则
      ```shell
      iptables -D INPUT -p tcp -j ${规则名}
      iptables -F ${规则名}
      iptables -X ${规则名}
      iptables -t filter -N ${规则名}
      iptables -I INPUT -p tcp -j ${规则名}
      iptables -t filter -I ${规则名} -i ${要限制网卡} -p tcp --dport ${要限制的端口} -j DROP
      ```
    • 清除防火墙规则
      ```shell
      iptables -D INPUT -p tcp -j ${规则名}
      iptables -F ${规则名}
      iptables -X ${规则名}
  • MPI默认配置项在启动多个Python训练进程时会对0.0.0.0地址进行侦听。
    规避措施:找到MPI配置路径下的etc文件夹,在“openmpi-mca-params.conf”文件末尾添加以下两行配置项。
    btl_tcp_if_include = lo
    btl_tcp_if_exclude = docker0

    推荐用户仅在容器中使用MPI,并由网络命名空间进行隔离。以保证宿主机上无全零侦听,且宿主机其他用户无法连接OpenMPI未认证端口。