ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Docker 安全加固

2022-08-05 17:34:07  阅读:198  来源: 互联网

标签:容器 -- root 安全 加固 Docker 权限 proc docker


一、docker安全加固

1、利用LXCFS增强docker容器隔离性和资源可见性 (proc容器与宿主机之间是共享的 没有进行隔离)

  此rpm包在真机桌面q目录中  需先传到虚拟机/root/下 在进行安装

  把宿主机 /var/lib/lxcfs/proc/目录下生成的6个文件挂接到容器内 底层用cgroup来做资源控制,通过lxcfs实现隔离 给内存256M 此时我们看到的宿主机内存也是256M

2、 设置特权级运行的容器:--privileged=true

  有的时候我们需要容器具备更多的权限,比如操作内核模块,控制swap交换分区,挂载USB磁盘,修改MAC地址等。

  root用户在容器内不能宕掉某个设备 权限受限是因为安全原因在容器内降低了root用户的权限

  加上--privileged=true 就会在容器内执行root用户的权限 就可以宕掉或开启某个设备 ( 权限全开,近乎root)

3、设置容器白名单:--cap-add

  --privileged=true 的权限非常大,接近于宿主机的权限,为了防止用户的滥用,需要增加限制,只提供给容器必须的权限。此时Docker 提供了权限白名单的机制,使用--cap-add添加必要的权限。

  capabilities手册地址:

  http://man7.org/linux/man-pages/man7/capabilities.7.html

  # docker run -it --cap-add=NET_ADMIN --name vm1 ubuntu

  # docker inspect -f {{.HostConfig.Privileged}} vm1 false

  # docker inspect -f {{.HostConfig.CapAdd}} vm1 {[NET_ADMIN]}

  如果设置特权级运行的容器:--privileged=true 可以查到磁盘设备

 

 

安全加固的思路

保证镜像的安全

使用安全的基础镜像

删除镜像中的setuid和setgid权限

启用Docker的内容信任(镜像签名)

最小安装原则 对镜像进行安全漏洞扫描,镜像安全扫描器:Clair

容器使用非root用户运行(尽量用普通用户运行)

保证容器的安全

对docker宿主机进行安全加固

限制容器之间的网络流量

配置Docker守护程序的TLS身份验证

启用用户命名空间支持(userns-remap)

限制容器的内存使用量

适当设置容器CPU优先级

docker安全的遗留问题

主要的内核子系统都没有命名空间,如:

SELinux

cgroup

在/sys下的文件系统

/proc/sys, /proc/sysrq-trigger, /proc/irq, /proc/bus

设备没有命名空间:

/dev/mem

/dev/sd*文件系统设备

内核模块



标签:容器,--,root,安全,加固,Docker,权限,proc,docker
来源: https://www.cnblogs.com/muyi-yang/p/16555158.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有