docker安全管理(CPU限制、内存限制、Block IO限制及docker安全加固)

docker容器的安全,很大程度上依赖于linux系统自身,评估docker的安全性时,主要考虑以下几个方面
linux内核的命名空间机制提供的容器隔离安全
linux控制组机制对容器资源的控制能力安全
linux内核的能力机制所带来的操作权限安全
docker程序(特别是服务端)本身的抗攻击性
其他安全增强机制对容器安全性的影响

命名空间隔离的安全
当dockr run启动一个容器时,docker将在后台为容器创建一个独立的命名空间。命名空间提供了最基础也最直接的隔离。
与虚拟机方式相比,通过linux namespace来实现的隔离并不是那么彻底
容器只是运行在宿主机上的一种特殊的进程,那么多个容器之间使用的还是同一个宿主机的操作系统内核
在linux内核中,有很多资源和对象是不能被namespace化的,例如:时间

cpu限制

cgroup控制的是资源上限
docker run -it --rm --cpu-quota 20000 busybox
在这里插入图片描述
此时再开启一个窗口,用来监控
在这里插入图片描述
可以看到它只占取了cpu20%的资源,与我们设定的相同
当我们退出时,它会立即释放资源
当我们不加参数时,其默认值为100%
在这里插入图片描述
在这里插入图片描述
当再开启一个,且参数为默认值的一半时优先级
在这里插入图片描述
在这里插入图片描述
可以看到所占cpu的资源也是默认值的一半

内存限制

cd /sys/fs/cgroup/memory/
mkdir x1
cd x1/
echo 209715200 > memory.limit_in_bytes ##设定最大写入内存为200M
echo 209715200 > memory.memsw.limit_in_bytes##设定最大写入内存为200M
cd /dev/shm/
cgexec -g memory:x1 dd if=/dev/zero of=bigfile bs=1M count=200
在这里插入图片描述
当写入200M时,系统会自动杀死进程
可以看到写入内存不能超过200M
在这里插入图片描述
useradd wxh
vim /etc/cgrules.conf
在这里插入图片描述
切换到用户wxh
在这里插入图片描述
可以看到写入内存不能超过200M,否则会被杀死

Block IO限制

在这里插入图片描述
block io 限制只对diect io 有效

docker安全加固

自定义内存大小

yum install lxcfs-2.0.5-3.el7.centos.x86_64.rpm -y
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
在这里插入图片描述
可以看到内存被改为了256M

设置特权级运行的容器

当进行一些操作时,会报错权限不够,这时就需要给容器一些特殊权限
在这里插入图片描述
此时权限不够
给予容器privileged权限
docker run -it --privileged=true busybox
在这里插入图片描述
可以看到,此时操作可以完成

设置容器白名单

docker run -it --rm --cap-add=NET_ADMIN busybox

安全加固的思路

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

保证容器的安全
对docker宿主机进行安全加固
限制容器之间的网络流量
配置docker守护程序的TLS身份验证
启用用户命名空间支持(userns-remap)
限制容器的内存使用量
适当设置容器cpu优先级

docker安全的遗留问题

主要的内核子系统都没有命名空间,如:
SElinux
cgroup
在/sys/下的文件系统
设备没有命名空间
/dev/mem
/dev/sd*文件系统设备
内核模块

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值