美文网首页
解决docker remote api漏洞

解决docker remote api漏洞

作者: 一舍 | 来源:发表于2020-04-27 11:58 被阅读0次

    Docker客户端可以使用RESTful请求,通过remote api的2375端口与docker服务端进行交互。然而,使用remote api存在远程未授权访问风险。因此,需要使用统一的认证方式验证容器api请求身份的合法性。

    查看docker remote api是否启用

    docker daemon -H tcp://10.10.10.10:2375 -H unix://var/run/docker.sock
    

    加固docker remote api

    通常情况下,建议不要启用docker的remote api服务。如果必须使用的话,可以采用如下两种方式对docker remote api进行加固。

    1. docker服务端启用CA自签名证书的TLS认证配置
    • 生成CA自签名证书
    • 启动docker daemon,并配置TLS认证
    docker -d --tlsverify --tlscacert=ca.pem --tlscert=server-cert.pem --tlskey=server-key.pem -H=tcp://10.10.10.10:2375 -H ubix://var/run/docker.sock
    
    • 客户端设置环境变量
    export DOCKER_TLS_VERIFY=1
    export DOCKER_TLS_PATH=$DOCKER_TLS_PATH
    export DOCKER_HOST=tcp://IP:PORT
    export DOCKER_API_VERSION=$DOCKER_API_VERSION
    
    1. 设置ACL,在宿主机中使用iptables对容器的访问连接进行控制,只允许特定ip访问(基于ubuntu)
    iptables -I INPUT -p tcp --dport 2375 -j DROP #在tcp协议中,禁止所有的ip访问本机2375端口
    
    iptables -I INPUT -s 特定IP -ptcp --dport 2375 -j ACCEPT #设置iptables规则
    
    service iptables save #保存iptables规则
    
    service iptables restart #重启iptables服务
    

    参考资料:

    1. https://yangrz.github.io/blog/2018/04/13/docker/

    相关文章

      网友评论

          本文标题:解决docker remote api漏洞

          本文链接:https://www.haomeiwen.com/subject/akrywhtx.html