http://keystone-enclave.org/ https://github.com/hardenedlinux/grsecurity-101-tutorials/blob/master/grsec-code-analysis
除了能力机制之外,还可以利用一些现有的安全机制来增强docker的安全性,例如TOMOYO,AppArmor,SELinux,GRSEC等. Docker 当前默认只开启了能力机制,用户可以采用多种方案来加强Docker主机的安全,例如: 在内核中启用GRSEC和PAX,这将增加很多编译和运行时的安全检查,通过地址随机化避免恶意探测等, 另外,用户可以使用现有工具,比如Apparmor,SELinux,GRSEC来增强安全性,甚至自己在内核中实现更复杂的安全机制.
内核级别 · 及时更新内核 · User NameSpace(容器内的root权限在容器之外处于非高权限状态) · Cgroups(对资源的配额和度量) · SELiux/AppArmor/GRSEC( 如SELinux,AppArmor,GRSEC等,都是Docker官方推荐安装的安全加固组件。 如果先前已经安装并配置过SELinux,那么可以在容器使用setenforce 1来启用它。 security-opt ="label:disable"(完全禁用标签限制) AppArmor的选项: --secutity-opt ="apparmor:PROFILE"(设置AppArmor配置文件) GRSEC 的选项: gradm -F -L /etc/grsec/learning.logs GRSEC的更多说明请参考:https://en.wikibooks.org/wiki/Grsecurity 限制系统命令调用
为了加固一个Docker主机,你可以使用现有知名的系统: TOMOYO AppArmor SELinux GRSEC, etc.
使用 GRSEC 和 PAX 运行内核,在编译和运行时增加许多安全检查 使用具备安全特性的容器模板 自定义访问控制策略
阻断从容器到所有内网IP的通信(当然如果需要也可以针对特定的IP/端口开放权限) 通过selinux或者apparmor限制某个容器所能访问的资源 对某些sysfs或者procfs目录,采用只读方式挂载 通过grsec
除了轻量级这个特点,它也遵循安全为主的原则,并且使用grsec / Pax,对于Linux内核而言增强了安全。 Docker仍然是业界最热门的工具之一。
内核级别 · 及时更新内核 · User NameSpace(容器内的root权限在容器之外处于非高权限状态) · Cgroups(对资源的配额和度量) · SELiux/AppArmor/GRSEC( 如SELinux,AppArmor,GRSEC等,都是Docker官方推荐安装的安全加固组件。 如果先前已经安装并配置过SELinux,那么可以在容器使用setenforce 1来启用它。 ="label:disable"(完全禁用标签限制) 复制 AppArmor的选项: --secutity-opt ="apparmor:PROFILE"(设置AppArmor配置文件) 复制 GRSEC 的选项: gradm -F -L /etc/grsec/learning.logs 复制 GRSEC的更多说明请参考:https://en.wikibooks.org/wiki/Grsecurity
2.4 安全性: AppArmor, SELinux, GRSEC 安全永远是相对的,这里有三个方面可以考虑Docker的安全特性: 由kernel namespaces和cgroups实现的Linux
辅助安全机制 描述: 除此之外,我们还可以利用一些现有的安全机制来增强使用 Docker 的安全性,例如 TOMOYO, AppArmor, SELinux, GRSEC 等。 Docker 当前默认只启用了能力机制,用户可以采用多种方案来加强 Docker 主机的安全,例如: 在内核中启用 GRSEC 和 PAX,这将增加很多编译和运行时的安全检查;通过地址随机化避免恶意探测等 默认情况下,如果运行容器内以非特权用户身份运行进程时,容器通常是相对安全的,但是您仍然可以通过启用 AppArmor、SELinux、GRSEC 或其他适当的组件服务系统来添加额外的安全层,来更进一步来保证容器的安全
然后,使用AppArmor / seccomp / SELinux / grsec等运行[限制容器权限](http://linux-audit.com/docker-security-best-practices-for-your-vessel-and-containers