docker安全

Docker安全

Docker容器的安全性,很大程度上依赖于Linux系统自身,评
估Docker的安全性时,主要考虑以下几个方面:

  • Linux内核的命名空间机制提供的容器隔离安全
  • Linux控制组机制对容器资源的控制能力安全。
  • Linux内核的能力机制所带来的操作权限安全
  • Docker程序(特别是服务端)本身的抗攻击性。
  • 其他安全增强机制对容器安全性的影响。

命名空间

当docker run启动一个容器时,Docker将在后台为容器创建一个独立的命名空间。命名空间提供了最基础也最直接的隔离。

  • 与虚拟机方式相比,通过Linux namespace来实现的隔离不是那么彻底。容器只是运行在宿主机上的一种特殊的进程,那么多个容器之间使用的就还是同一个宿主机的操作系统内核。

  • 在 Linux 内核中,有很多资源和对象是不能被 Namespace 化的,比如:时间

  • linux namespace 的隔离
    在这里插入图片描述

控制组资源控制的安全

  • 当docker run启动一个容器时,Docker将在后台为容器创建一个独立的控制组策略集合。

  • Linux Cgroups提供了很多有用的特性,确保各容器可以公平地分享主机的内存、CPU、磁盘IO等资源。

  • 确保当发生在容器内的资源压力不会影响到本地主机系统和其他容器,它在防止拒绝服务攻击(DDoS)方面必不可少。

  • 宿主机上关于控制组资源对docker的控制,都在 /sys/fs/cgroup/docker目录下,

docker对容器内存的控制

--memory对容器使用宿主机内存的限制
--memory-swap对容器使用swap分区的限制

两个参数实则修改的是系统中的两个文件
在这里插入图片描述

docker对容器cpu的使用控制

--cpu-period默认是100000,一般不做改动
--cpu-quota份额

测试dd 命令占据了20%
在这里插入图片描述

Block IO限制
目前的block IO限制只对direct IO有效。(不使用文件缓存)
docker 对直连IO的控制参数 --device-write-bps /dev/vda:10M
在这里插入图片描述
用LXCFS增强docker容器隔离性和资源可见性:
yum install -y lxcfs-2.0.5-3.el7.centos.x86_64.rpm

lxcfs /var/lib/lxcfs &
docker run -it -m 256m \
-v /var/lib/lxcfs/proc/cpuinfo:/proc/cpuinfo:rw \
-v /var/lib/lxcfs/proc/diskstats:/proc/diskstats:rw \
-v /var/lib/lxcfs/proc/meminfo:/proc/meminfo:rw \
-v /var/lib/lxcfs/proc/stat:/proc/stat:rw \
-v /var/lib/lxcfs/proc/swaps:/proc/swaps:rw \
-v /var/lib/lxcfs/proc/uptime:/proc/uptime:rw \
ubuntu

内核能力机制:

  • 能力机制(Capability)是Linux内核一个强大的特性,可以提供细粒度的权限访问控制。

  • 大部分情况下,容器并不需要“真正的”root权限,容器只需要少数的能力即可。

  • 默认情况下,Docker采用“白名单”机制,禁用“必需功能”之外的其他权限。

  • 给予容器所有的root权限 参数: --privileged=true
    在这里插入图片描述

–cap-add 更加精确的控制参数
例子:在这里插入图片描述

网址:https://man7.org/linux/man-pages/man7/capabilities.7.html

安全加固的思路

保证镜像的安全:

  • 使用安全的基础镜像
  • 删除镜像中的setuid和setgid权限
  • 启用Docker的内容信任
  • 最小安装原则
  • 对镜像进行安全漏洞扫描,镜像安全扫描器:Clair
  • 容器使用非root用户运行

保证容器的安全:

  • 限制容器之间的网络流量
  • 配置Docker守护程序的TLS身份验证
  • 启用用户命名空间支持
  • 限制容器的内存使用量
  • 适当设置容器CPU优先级
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值