Docker安全通信

一、Docker remote api 访问控制

  • 以往时候ssh的访问方式其实并不是很安全
  • Docker的远程调用API接口存在未授权访问漏洞,至少应限制外网访问。建议使用Socket方式访问
[root@promote ~]# netstat -ntap | grep dockerd
//可以看到,没有端口开放
[root@promote ~]# vim /usr/lib/systemd/system/docker.service  //更改
 14 ExecStart=/usr/bin/dockerd -H unix://var/run/docker.sock -H tcp://192.168.170.149:2375
//通过sock文件绑定unix访问连接以及tcp端口和地址
[root@promote ~]# systemctl daemon-reload    //重启服务
[root@promote ~]# systemctl restart docker
[root@promote ~]# netstat -ntap | grep dockerd   //这时再查看能看到开放的端口及地址
tcp        0      0 192.168.170.149:2375    0.0.0.0:*               LISTEN      3327/dockerd 
  • 虽然监听地址和端口开放了,但是防火墙还没有被允许,所以要设置规则,做IP访问控制(source address是客户端地址)
[root@promote ~]# firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.170.150" port protocol="tcp" port="2375" accept"
success
[root@promote ~]# firewall-cmd --reload 
success
//--add-rich-rule赋予规则,添加一个ipv4,源地址的管控,通过tcp协议,允许规则accept

二、限制流量流向

  • 使用防火墙过滤限制Docker 容器的源IP地址范围与外界通讯
[root@promote ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.170.0/24" reject"
success
[root@promote ~]# firewall-cmd --reload 
success
//--permanent永久设置   管理容器的地址作为源地址,reject 拒绝
  • 大量问题是因为Docker容器端口外放引起的漏洞,除了操作系统账户权限控制上的问题,更在于对Docker Daemon的进程管理上存在隐患
  • 目前常用的Docker版本都支持Docker Daemon管理宿主iptables的,而且一旦启动进程加上-p host_port:guest_port 的端口映射,Docker Daemon 会直接增加对应的FORWARD Chain 并且-j ACCEPT,而默认的DROP规则是在INPUT链做的,对docker没法限制,这就留下了很严重的安全隐患了。因此建议:
    • 不在有外网ip的机器上使用Docker服务
    • 使用k8s等docker编排系统管理Docker容器
    • 宿主上Docker daemon 启动命令加一个 --iptables=false,然后把常用iptables写进文件里,再用iptables-restore去刷

三、镜像安全

  • Docker镜像安全扫描,在镜像仓库客户端使用证书认证,对下载的镜像进行检查
  • 通过与CVE数据库同步扫描镜像,一旦发现漏洞则通知用户处理,或者直接阻止镜像继续构建
  • 如果公司使用的是自己的镜像源,可以跳过此步;否则,至少需要验证baseimage 的md5等特征值,确认一致后再基于baseimage进一步构建
  • 一般情况下,要确保只从受信任的库中获取镜像,并且不建议使用–insecure-registry=[] 参数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值