Docker selinux

最大的问题就是Linux的一切都不是命名空间 (namespaced). 现在, Docker使用5个命名空间来改变系统的进程: 进程, 网络, Mount, 主机名,共享内存.

虽然有给用户一定的安全级别, 但无法像KVM实施全面的安全保护. 在KVM环境下进程不直接和主机的内核交互.它们也不访问内核的文件系统如/sys和/sys/fs, /proc/*

设备结点是用于和VMs 内核交互的,而不是主机.因此, 想要越过VM来扩展特权级别, 进程要去攻击VM内核,找到HyperVisor的弱点,打破SELinux的控制(sVirt),最终攻击主机的内核.

当你运行在一个容器里时,你就已经直接可以和主机的内核打交道了.

没有被当成命名空间的主要的内核子系统如:

  • SELinux
  • Cgroups
  • /sys下的文件系统
  • /proc/sys ,  /proc/sysrq-trigger ,  /proc/irq ,  /proc/bus

没有被当成命名空间的设备:

  • /dev/mem
  • /dev/sd*  文件系统设备
  • 内核模块

如果通过一个特权进程对以上的某个模块通信或攻击的话,你就拥有了整个系统.

时间: 2024-11-03 20:47:02

Docker selinux的相关文章

Docker快速入门(一)

阅读目录 1 容器诞生背景及优势 2 Docker 基本概念 3 安装docker 4 获取镜像 5 列出镜像 6 查看镜像.容器.数据卷所占用的空间 7 虚悬镜像 8 中间层镜像 9 按需列出镜像 10 删除镜像 Docker是Go语言开发实现的容器.2013年发布至今,备受推崇.相关文档.学习资料十分详尽.近期有docker相关项目,得重新学习一下.博客以笔记. 回到顶部 1 容器诞生背景及优势 (1)软件开发和运维中,环境部署.配置,不胜其烦.举例说明,Python开发和部署都必须配置Py

SELinux的Docker安全性

原文译自:http://opensource.com/business/14/7/docker-security-selinux 这篇文章基于我今年在DockerCon一个讲座,它将讨论我们当前听到的Docker容器的安全问题. 容器并不"包容" 我听到也读到许多假定Docker容器是应用沙盒的观点--这意味着他们可以在他们的系统上使用有根权限的Docker来运行任意的程序. 他们相信Docker容器将会保护他们的主机系统. 我听到人们说Docker容器就像在VMs/KVM执行程序一样

SELinux 引起的docker启动失败

问题描述: 有一台使用中的docker突然发生了故障,然后启动docker失败. 机器的系统版本:CentOS Linux release 7.3.1611 (Core) 最后将这台机器的docker卸载后重装,但是docker还是起不来,启动docker报"Error starting daemon: SELinux is not supported with the overlay2 graph driver on this kernel."的错误.具体的报错信息如下: [[ema

docker命令无法使用,关闭selinux 即可

运行"systemctl start docker.service" 报错 'Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.' 运行'docker ps' 报错'Cannot connect

centos7安装docker并设置开机启动

版本要求:查看内核版本,需大于3.10 [[email protected] ~]# uname -r 3.10.0-327.10.1.el7.x86_64 更新内核:如果是生产机器务必慎重更新内核,避免出现不必要的问题. sudo yum update 安装docker [[email protected] ~]# curl -sSL https://get.docker.com/ | sh + sh -c 'sleep 3; yum -y -q install docker-engine'

Docker Swarm群集

Docker Swarm 是什么? Docker Swarm是一个用于创建Docker主机(运行Docker守护进程的服务器)集群的工具,使用Swarm操作集群,会使用户感觉就像是在一台主机上进行操作 docker1.12集成了swarmkit, 使你可以不用安装额外的软件包, 使用简单的命令启动创建docker swarm集群. 如果你在运行 Docker 1.12时,你就可以原生创建一个 Swarm 集群 . 集成了swarm集群的安全特性, 集成了K-V存储, 你现在不需要额外部署etcd

Docker 私有仓库详解

仓库(Repository)是集中存放镜像的地方 一个容易混淆的概念是注册服务器(Registry).实际上注册服务器是管理仓库的具体服务器, 每个服务器上可以有多个仓库,而每个仓库下面有多个镜像.从这方面来说,仓库可以被认 为是一个具体的项目或目录.例如对于仓库地址 docker.sina.com.cn/centos:centos63 来说, docker.sina.com.cn  是注册服务器地址,centos  是仓库名,centos63  是仓库的 tag. Docker Hub  官方

(八)Docker网络跨主机通讯vxlan和vlan

基于OpenvSwitch实现跨主机通信: 环境描述: 计算机名称 IP Docker01 eth0:192.168.124.150/24 eth1:172.16.100.20/24 docker0:172.17.0.1/24(默认) Docker02 eth0:192.168.124.15124 eth1:172.16.100.30/24 docker0:172.17.0.1/24(默认) dockerothsrv eth0:192.168.124.152/24 eth1:172.16.100

Docker 学习笔记

一.Docker 简介 Docker 两个主要部件: Docker: 开源的容器虚拟化平台 Docker Hub: 用于分享.管理 Docker 容器的 Docker SaaS 平台 – Docker Hub Docker 使用客户端-服务器 (C/S) 架构模式.Docker 客户端会与 Docker 守护进程进行通信.Docker 守护进程会处理复杂繁重的任务,例如建立.运行.发布你的 Docker 容器.Docker 客户端和守护进程可以运行在同一个系统上,当然你也可以使用 Docker