一、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*文件系统设备

内核模块

Docker 安全加固的更多相关文章

  1. 开发漫谈:千万别说你不了解Docker!

    1dotCloud到Docker:低调奢华有内涵   写在前面:放在两年前,你不认识Docker情有可原.但如果现在你还这么说,不好意思,我只能说你OUT了.你最好马上get起来,因为有可能你们公司很 ...

  2. docker好文收藏

    深入浅出Docker(一):Docker核心技术预览 2. 核心技术预览 Docker核心是一个操作系统级虚拟化方法, 理解起来可能并不像VM那样直观.我们从虚拟化方法的四个方面:隔离性.可配额/可度 ...

  3. 程序猿,千万别说你不了解Docker!

    放在两年前,你不认识Docker情有可原.但如果现在你还这么说,不好意思,我只能说你OUT了.你最好马上get起来,因为有可能你们公司很快就会引入Docker. 今天就和大家讨论讨论这个备受好评的应用 ...

  4. 深入浅出Docker(一):Docker核心技术预览

    Docker是PaaS供应商dotCloud开源的一个基于LXC 的高级容器引擎,源代码托管在 GitHub 上, 基于Go语言开发并遵从Apache 2.0协议开源.Docker提供了一种在安全.可 ...

  5. Docker生产环境实践指南

    技术栈:1. 构建系统2. 镜像仓库3. 宿主机管理4. 配置管理5. 部署6. 编排7. 日志8. 监控 镜像:1. 如果用户像往常一样运行包安装命令,这些永远也用不上的缓存包文件将会永远地成为镜像 ...

  6. Docker Architecture、Docker Usage

    目录 . 引言 - 为什么要有Docker技术 . Docker简介 . Docker安装.部署.使用 . Docker安全 . Docker底层实现 . Docker网络配置 . Dockerfil ...

  7. Docker其它安全特性

    除了能力机制之外,还可以利用一些现有的安全机制来增强使用 Docker 的安全性,例如 TOMOYO, AppArmor, SELinux, GRSEC 等. Docker 当前默认只启用了能力机制. ...

  8. 从一到万的运维之路,说一说VM/Docker/Kubernetes/ServiceMesh

    摘要:本文从单机真机运营的历史讲起,逐步介绍虚拟化.容器化.Docker.Kubernetes.ServiceMesh的发展历程.并重点介绍了容器化阶段之后,各项重点技术的安装.使用.运维知识.可以说 ...

  9. docker 安全

    由于容器运行在主机上,且与主机共用一套内核,因此在容器的安全使用上会涉及到容器本身以及主机的安全加固,如针对系统调用,系统资源,远程访问等都需要进行安全方面的考量. docker官网给出了简单的一些建 ...

  10. Docker 快速验证 HTML 导出 PDF 高效方案

    需求分析 项目中用到了 Echarts,想要把图文混排,当然包括 echarts 生成的 Canvas 图也导出 PDF. 设计和实现时,分析了 POI.iText.freemaker.world 的 ...

随机推荐

  1. excel文件 实现自动处理数据的功能

    目录 问题描述: 解决方案: 一.SQL查询 二.SQL.python处理 三.python处理 四.优化python处理 1.手动执行代码 2.开机自动执行代码 对比四种方案: 总结: 问题描述: ...

  2. 使用iframe引入文件后设置响应式宽高以及其他问题解决;

    第一 :引入iframe后背景色解决: 需要先设置 被引入文件的body样式 第二:滚动以及其他样式需要设置,span是为了小屏准备的,处理小屏时候元素距离顶部高度问题: 这个是span 的样式 然后 ...

  3. 12.ThreadLocal的那点小秘密

    大家好,我是王有志.关注王有志,一起聊技术,聊游戏,聊在外漂泊的生活. 好久不见,不知道大家新年过得怎么样?有没有痛痛快快得放松?是不是还能收到很多压岁钱?好了,话不多说,我们开始今天的主题:Thre ...

  4. JavaScript 中更安全的 URL 读写

    前言 URL对于我们开发人员来讲,应该是非常熟悉了.在对URL进行参数拼接时,我们一般都会直接进行字符串拼接或使用模版字符串,因为这样非常方便,但是我们这样其实会在不知不觉中以不安全的方式编写 URL ...

  5. Stream中的常用方法_count-Stream中的常用方法_limit

    package A_Lian_two.D04; import java.util.stream.Stream; public class Demo06Stream_limit { public sta ...

  6. drf-jwt、simplejwt的使用

    1.接口文档 # 前后端分离 -我们做后端,写接口 -前端做前端,根据接口写app,pc,小程序 -作为后端来讲,我们很清楚,比如登录接口 /api/v1/login/---->post---- ...

  7. Linux 安装 CentOS7

    1.linux 下载 http://mirrors.aliyun.com/centos/7/isos/x86_64/ centos-7-isos-x86_64安装包下载_开源镜像站-阿里云 (aliy ...

  8. C++练习6 不同参数的传递方式

    当函数的形参是变量时,函数内的操作是只对形参的操作,并不会对实参造成影响 当函数的形参是引用时,在函数内对形参操作的同时也会对实参造成影响 1 #include <iostream> 2 ...

  9. kali linux破解wifi密码-超详细过程

    前期准备VMware Workstation虚拟机在虚拟机安装好kail linunx系统无线网卡(芯片为3070或者1887L都支持Linux)一.打开终端,用airmon-ng命令查看如果出现无法 ...

  10. 郁金香-了解MFC信息机制

    控件的事件 窗口的信息