使用最新的安全增强技术进行 Docker 调优(2)

这样就使得这个容器运行在比一般容器更严格的SELinux安全机制下。要注意的是,你也许要关注下审计日志,确认你的应用是否需要额外的SELinux放行规则。

你可以通过audit2allow命令添加这些规则,将这些规则追加到已有的 .te 文件中,然后重新编译安装。

# grep docker_apache_t /var/log/audit/audit.log | audit2allow >> docker_apache.te

# make -f /usr/share/selinux/devel/Makefile docker_apache.pp

# semodule -i docker_apache.pp

多级安全模式

目前,我们使用MCS分离以确保出容器并不允许交互或者与其他容器交互,除非他是通过网络。某些政府系统要求不同类型的政策MLS(多级安全)。使用MLS,你标记基于他们将被看见的数据级别的处理。MLS说,如果你的容器将被处理Topsecret数据,那么它应该运行在Topsecret.我们增加了选项到Docker,允许管理员设置的容器在特定的水平上运行。其中应该满足MLS系统的需求。

docker run -d --security-opt label:level:TopSecret --security

这将能使Docker容器两者都运行于交替类型,和水平上,并且会防止容器使用并不是在同一标签上的数据。通过鉴定,在这一点上这并没有消失,但是我们将愿意帮助第三方MLS用户建立解决方案。

调整空间

在其他安全论坛上,我已经讨论了如何把命名空间(namespaces)可以被认为是一种安全机制,由于它会消除一个进程在系统(PID命名空间)上看到其他进程的能力。网络空间(network namespace)可以消除从你的命名空间看到其他网络的能力。IPC(进程间通信)命名空间具有阻止Container调用其它容器IPC的能力。

Docker现在已经有能力放松这些限制。你可以和容器共享主机命名空间:

--pid=host 让容器共享主机pid命名空间

--net=host 让容器共享主机网络命名空间

--ipc=host 让容器共享主机ipc命名空间

请注意,为了让上述的设置生效,让容器共享主机的PID或IPC命名空间, 我们还需要禁用SELinux权限分隔限制。

docker run -ti --pid=host --net=host --ipc=host rhel7 /bin/sh

你可能想要读有关这个主题的额外信息Super Privileged Containers

Docker安装应用(CentOS 6.5_x64)  

在 Docker 中使用 MySQL

Ubuntu Trusty 14.04 (LTS) (64-bit)安装Docker  

Docker安装应用(CentOS 6.5_x64)  

Ubuntu 14.04安装Docker   

阿里云CentOS 6.5 模板上安装 Docker  

Docker 的详细介绍请点这里
Docker 的下载地址请点这里

英文原文:Tuning Docker with the newest security enhancements

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/4cfaac03a857f8f3defae77796861702.html