教程

iManager安全漏洞解决方案

本篇罗列了一些iManager常见的安全漏洞,以及解决方案。如遇见相同问题,请参照下文解决:

  1. OpenSSL代码问题漏洞(CVE-2020-1967)

    解决方案:升级部署iManager机器的OpenSSL到v1.1.1d版本,下载地址https://www.openssl.org/source/

  2. OpenSSH用户枚举漏洞(CVE-2018-15919)

    解决方案:升级部署iManager机器的OpenSSH到v7.8版本以上。

  3. Hashicorp Consul Web UI和API访问

    解决方案(示例以Ubuntu为例,如果您使用的其他系统,请根据系统替换命令):

    (1)安装防火墙:

    sudo apt-get install ufw

    (2)开启防火墙:

    //开启了防火墙,并在系统启动时自动开启。
    sudo ufw enable
    //关闭所有外部对本机的访问,但本机访问外部正常。
    sudo ufw default deny

    (3)查看iManager容器的IP段:

    docker exec -it imanager bash

    hashicorp

    (4)增加防火墙规则,仅允许部署iManager服务的IP以及iManager容器的IP段访问服务;

    //允许iManager所在服务器IP访问,请将下面命令中的<ip>替换为您实际环境的IP。
    sudo ufw allow from <ip>
    //允许iManager容器的IP段访问,请将下面命令中的172.18.0.3/16替换为您查到的IP段。
    sudo ufw allow from 172.18.0.3/16

    (5)开放8390端口:

    sudo ufw allow 8390

    注意:
    若防火墙规则未起效,可重启机器。

    (6)使用命令查看docker的防火墙规则:

    iptables -L DOCKER -n --line-number

    dockerfirewallrules

    (7)修改防火墙规则,只允许某个ip访问容器的9200端口(请将下面命令中的IP 192.168.11.145 替换为您部署iManager服务的机器IP):

    iptables -R DOCKER 11 -p tcp -m tcp -s 192.168.11.145 --dport 9200 -d 172.18.0.13 -j ACCEPT

    9200port

    (8)修改防火墙规则,只允许某个ip段访问容器的9200端口(请将下面命令中的IP段 192.168.11.145/24 替换为您部署iManager服务的机器IP段):

    iptables -R DOCKER 11 -p tcp -m tcp -s 192.168.11.145/24 --dport 9200 -d 172.18.0.13 -j ACCEPT

    ip9200port

  4. Docker Remote Api未授权漏洞

    解决方案:

    (1)生成证书,请参考Docker官方文档

    (2)打开iManager环境变量配置文件。在iManager安装目录下(iManager安装包解压后的文件夹),进入目录supermap-imanager-docker,打开.env文件:

    sh vi .env ​

    (3)在环境变量中配置存放证书的路径。配置变量DOCKER_CERTS_PATH,可自行指定证书的存放路径,或使用默认路径,默认为/etc/imanager/docker-cert。

    modifycertificatepath

    (4)在步骤(3)配置的证书存放路径下,创建文件夹,文件夹需要以提供iManager服务的Docker环境的主机IP命名;

    (5)将证书放入步骤(4)创建的文件夹中。

    例如,提供iManager服务的Docker主机IP为192.168.17.148,则在证书存储路径下创建文件夹“192.168.17.148”,并将证书ca.pem,key.pem,cert.pem放入文件夹“192.168.17.148”中:

    storecertificates

    注意:
    若iManager服务由多个拥有Docker环境的机器提供,则需创建多个以机器IP命名的文件夹,并将证书放入对应的文件夹中。

  5. 本地Docker配置stl访问

    (1)在docker.service或者docker.conf文件的配置中加入如下参数:

    --tlsverify --tlscacert=/etc/docker/ca.pem --tlscert=/etc/docker/server-cert.pem --tlskey=/etc/docker/server-key.pem

    dockerstl

    (2)更新配置,并重新启动docker服务,输入如下命令:

    systemctl daemon-reload
    systemctl restart docker