安全改进

绑定设置

如果您安装了这个文档的系统,那么在默认情况下,会有一些组件监听端口在所有地址上绑定。为了提高系统安全级别,我们建议您更改默认设置。

  • rabbitmq

    推荐您绑定在本机回送地址 (127.0.0.1) 上。

    编辑文件 /etc/rabbitmq/rabbitmq.config , 删除 {"::1", 5672}, 作如下修改
    [
     {
      rabbit,
       [
        {
         tcp_listeners, [{"127.0.0.1", 5672}]
        }
       ]
     }
    ]
    
  • postgresql

    默认绑定在本机回送地址 (127.0.0.1) 上,不建议更改默认设置。

  • confluent

    默认绑定在本机回送地址 (127.0.0.1) 上,不建议更改默认设置。

  • influxdb

    推荐您绑定在本机回送地址 (127.0.0.1) 上。

    编辑文件 /etc/influxdb/config.toml, 在 [http] 区域中释放被注释掉的 #bind-address=":8086" 一行并把它更改为 bind-address="127.0.0.1:8086", 举例如下
    [http]
       # Determines whether HTTP endpoint is enabled.
       # enabled = true
    
       # The bind address used by the HTTP service.
       bind-address = "127.0.0.1:8086"
    
  • lico-core

    建议绑定在 Internal 地址上。但是如果集群中没有登录节点,并且 lico-portallico-core 安装在同一个节点时,那么建议您绑定在本机回送地址 (127.0.0.1) 上。

    编辑文件 /etc/lico/supervisor.d/antilles.ini, 更改在 [program:confluent_proxy] 区域块中的命令参数,将 "--bind :18080" 修改为 "--bind <INTELNAL IP>:18080", 举例如下
    [program:confluent_proxy]
    
    command=/usr/bin/gunicorn --paste /etc/lico/confluent-proxy.ini --bind 172.20.0.14:18080 --log-config /etc/lico/confluent-proxy.ini --workers 1 --threads 50 --timeout 3600 --worker-class gevent --keep-alive 65 --log-level info --access-logfile - --error-logfile - --capture-output
    
  • lico-ganalia-mond

    本机回送地址 (127.0.0.1) 是仅被信任的默认地址,不建议更改默认设置。

  • lico-confluent-proxy

    建议绑定在 Internal 地址上。但是如果集群中没有登录节点,并且 lico-portallico-confluent-proxy 安装在同一个节点时,那么建议您绑定在本机回送地址 (127.0.0.1) 上。

    编辑文件 /etc/lico/supervisor.d/confluent-proxy.ini, 更改在 [program:confluent_proxy] 区域块中的命令参数,将 "--bind :18081" 修改为 "--bind <INTELNAL IP>:18081", 举例如下
    [program:confluent_proxy]
    
    command=/usr/bin/gunicorn --paste /etc/lico/confluent-proxy.ini --bind 172.20.0.14:18081 --log-config /etc/lico/confluent-proxy.ini --workers 1 --threads 50 --timeout 3600 --worker-class gevent --keep-alive 65 --log-level info --access-logfile - --error-logfile - --capture-output
    
  • lico-vnc-proxy

    建议绑定在 Internal 地址上。但是如果集群中没有登录节点,并且 lico-portallico-vnc-proxy 安装在同一个节点时,那么建议您绑定在本机回送地址 (127.0.0.1) 上。

    编辑文件 /etc/lico/supervisor.d/vncproxy.ini, 更改在 [program:vncproxy] 区域块中的命令参数,将 "--bind :18083" 修改为 "--bind <INTELNAL IP>:18083", 举例如下
    [program:vncproxy]
    
    command=/usr/bin/gunicorn --paste /etc/lico/vnc-proxy.ini –bind 172.20.0.14:18083 --log-config /etc/lico/vnc-proxy.ini --workers 1 --timeout 3600 --worker-class gevent --keep-alive 65 --log-level info --access-logfile - --error-logfile - --capture-output
    
    ......
    
    [program:websockify]
    
    command=/usr/bin/websockify 18082 --token-plugin=JSONTokenApi --token-source='http://172.20.0.14:18083/lookup?token=%s'
    
  • lico-wechat-agent

    建议绑定在 Internal 地址上。但是如果集群中没有登录节点,并且 lico-portallico-wechat-agent 安装在同一个节点时,那么建议您绑定在本机回送地址 (127.0.0.1) 上。

    编辑文件 /etc/sysconfig/lico-wechat-agent, 更改 GUNICORN_CMD_ARGS 的命令参数, 将 "--bind :18090" 修改为 "--bind <INTELNAL IP>:18090", 举例如下
    # lico-wechat-agent environment file
    
    GUNICORN_CMD_ARGS= \
            --bind 172.20.0.14:18090 \
            --log-config /etc/lico/wechat-agent.ini \
            --workers 1 \
            --threads 4 \
            --worker-class gevent \
            --timeout 3600 \
            --keep-alive 65 \
            --log-level info \
            --access-logfile - \
            --error-logfile - \
            --capture-output True
    
  • lico-mail-agent

    建议绑定在 Internal 地址上。但是如果集群中没有登录节点,并且 lico-portallico-wechat-agent 安装在同一个节点时,那么建议您绑定在本机回送地址 (127.0.0.1) 上。

    编辑文件 /etc/sysconfig/lico-mail-agent, 更改 GUNICORN_CMD_ARGS 的命令参数, 将 "--bind :18091" 修改为 "--bind <INTELNAL IP>:18091", 举例如下
    # lico-wechat-agent environment file
    
    GUNICORN_CMD_ARGS= \
            --bind 172.20.0.14:18091 \
            --log-config /etc/lico/mail-agent.ini \
            --workers 1 \
            --threads 4 \
            --worker-class gevent \
            --timeout 3600 \
            --keep-alive 65 \
            --log-level info \
            --access-logfile - \
            --error-logfile - \
            --capture-output True
    
  • lico-sms-agent

    建议绑定在 Internal 地址上。但是如果集群中没有登录节点,并且 lico-portallico-mail-agent 安装在同一个节点时,那么建议您绑定在本机回送地址 (127.0.0.1) 上。

    编辑文件 /etc/sysconfig/lico-sms-agent, 更改 GUNICORN_CMD_ARGS 的命令参数, 将 "--bind :18092" 修改为 "--bind <INTELNAL IP>:18092", 举例如下
    # lico-sms-agent environment file
    
    GUNICORN_CMD_ARGS= \
            --bind 172.20.0.14:18092 \
            --log-config /etc/lico/sms-agent.ini \
            --workers 1 \
            --timeout 3600 \
            --keep-alive 65 \
            --log-level info \
            --access-logfile - \
            --error-logfile - \
            --capture-output True
    

防火墙设置

  • el7

    考虑到系统的安全性,我们建议您在管理节点和登录节点上启用防火墙。如果您安装了集群并安装了 LiCO,请按照下面的步骤来设置您的防火墙。我们建议您参考官方的防火墙设置文档来自行设置。你可以浏览以下的官方文件:
    运行以下命令来安装和启用防火墙
    $ sduo yum install -y firewalld
    $ sudo systemctl enable firewalld
    $ sudo systemctl start firewalld
    
    • 管理节点

      运行以下命令,将角色添加到公共区域
      # Add SSH service port
      $ sudo firewall-cmd --zone=public --add-port=22/tcp --permanent
      
      # Add httpd service port
      $ sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
      
      # Add NFS service port
      $ sudo firewall-cmd --zone=public --add-port=2049/tcp --permanent
      
      # Add Ganglia gmond port
      $ sudo firewall-cmd --zone=public --add-port=8649/udp --permanent
      
      # Add Slurm slurmctld port
      $ sudo firewall-cmd --zone=public --add-port=6817/tcp --permanent
      
      # Add OpenLDAP slapd port
      $ sudo firewall-cmd --zone=public --add-port=636/tcp --permanent
      $ sudo firewall-cmd --zone=public --add-port=389/tcp --permanent
      
      # Add lico-confluent-proxy port
      $ sudo firewall-cmd --zone=public --add-port=18081/tcp --permanent
      
      # Add lico-core port
      $ sudo firewall-cmd --zone=public --add-port=18080/tcp --permanent
      
      # Add TensorBoard random binding port range
      $ sudo firewall-cmd --zone=public --add-port=20000-25000/tcp --permanent
      
      运行以下命令将内部网络接口添加到公共区域
      $ sudo firewall-cmd --zone=public --add-interface=eth0 --permanent
      $ sudo firewall-cmd --zone=public --add-interface=eth1 --permanent
      

      Note

      eth0eth1 应该是您的内部和外部网络接口。

      运行以下命令来启用角色
      $ sudo firewall-cmd --complete-reload
      
    • 登陆节点

      运行以下命令,将角色添加到公共区域
      # Add SSH service port
      $ sudo firewall-cmd --zone=public --add-port=22/tcp --permanent
      
      # Add Nginx service port, you can adjust 8443 to your setting
      $ sudo firewall-cmd --zone=public --add-port=8443/tcp --permanent
      
      运行以下命令将内部网络接口添加到公共区域
      $ sudo firewall-cmd --zone=public --add-interface=eth0 --permanent
      $ sudo firewall-cmd --zone=public --add-interface=eth1 --permanent
      

      Note

      eth0eth1 应该是您的内部和外部网络接口。

      运行以下命令来启用角色
      $ sudo firewall-cmd --complete-reload
      
  • sle12

    考虑到系统的安全性,我们建议您在管理节点和登录节点上启用防火墙。如果您安装了集群并安装了 LiCO,请按照下面的步骤来设置您的防火墙。我们建议您参考官方的防火墙设置文档来自行设置。你可以浏览以下的官方文件:
    运行以下命令运行 YaST2
    $ sudo yast
    

    选择 Security and Users > Firewall

    • 管理节点

      选择 Allowed Services:

      使用 External Zone 方式来设置 Allowed Services for Selected Zone
      点击 Advanced, 在对话框中进行如下设置:
      TCP Ports 一行添加 20000:25000 2049 22 80 389 636 6817 18080 18081
      UDP Ports 一行添加 8649

      Note

      TCP/22: ssh 服务端口
      TCP/80: httpd 服务端口
      TCP/2049: nfs 服务端口
      TCP/6817: slurm slurmctld 端口
      TCP/636, 389: openldap slapd 端口
      TCP/18081: lico-confluent-proxy 端口
      TCP/18080: lico-core 端口
      TCP/20000:25000: TensorBoard 随机绑定端口范围
      UDP/8649: ganglia gmond 端口

      选择 Interfaces:

      eth0eth1 设置为使用 External Zone

      Note

      eth0eth1 应该是您的内部和外部网络接口

      选择 Start-Up:

      设置 Service Start 的方式为 Enable Firewall Automatic Starting
      点击 Save Settings and Restart Firewall Now
      退出 YaST
    • 登陆节点

      选择 Allowed Services:

      使用 External Zone 方式来设置 Allowed Services for Selected Zone
      点击 Advanced, 在对话框中进行如下设置:
      TCP Ports 一行添加 8443 22

      Note

      TCP/22: ssh 服务端口
      TCP/8443: nginx 服务端口

      选择 Interfaces:

      eth0eth1 设置为使用 External Zone

      Note

      eth0eth1 应该是您的内部和外部网络接口

      选择 Start-Up:

      设置 Service Start 的方式为 Enable Firewall Automatic Starting
      点击 Save Settings and Restart Firewall Now
      退出 YaST