保险Docker

数据中心容器话后区域隔离和安全如何做?

数据中心docker容器化后,网络上的隔离该如何处理?传统的网络都是通过防火墙对每个区域做访问控制,且金融监管要求也是要有DMZ区域。

参与14

4同行回答

dl528888dl528888系统运维工程师游戏公司
容器的网络模块可以设置namespace做隔离,默认不同namespace不能互相访问,dmz可以设置公共区域,默认所有namespaces都能访问。显示全部

容器的网络模块可以设置namespace做隔离,默认不同namespace不能互相访问,dmz可以设置公共区域,默认所有namespaces都能访问。

收起
互联网服务 · 2017-11-30
浏览2195
邱旻骏邱旻骏系统工程师上海银行
在该问题上,涉及两个层面的问题。首先,是IAAS层的问题,我对你这个问题的理解,认为是基于IAAS层的网络隔离控制。将互联网区设置为一个单独的网络区域,该网络区域与其他区域比如核心区等已经实现了网络隔离。然后,在该独立的网络区域内,搭建宿主机集群。我认为目前的容器技术在网...显示全部

在该问题上,涉及两个层面的问题。首先,是IAAS层的问题,我对你这个问题的理解,认为是基于IAAS层的网络隔离控制。将互联网区设置为一个单独的网络区域,该网络区域与其他区域比如核心区等已经实现了网络隔离。然后,在该独立的网络区域内,搭建宿主机集群。
我认为目前的容器技术在网络隔离效果方面还有待提高,因为可以通过容器控制该容器所在的宿主机,然后通过宿主机跳转至该网络区域内其他服务器。但可以从容器规范上进行控制,达到容器进程无法渗透控制宿主机的可能。

收起
银行 · 2017-11-30
浏览2291
longlong899longlong899网站架构师武汉制造业信息化工程技术有限公司
看看!!!!!!!显示全部

看看!!!!!!!

收起
IT咨询服务 · 2017-11-30
浏览2286
GaryyGaryy系统工程师某保险
我们的容器平台选用了红帽的openshift,他们推荐的安全机制:1、文件系统级防护文件系统只读:有些Linux系统的内核文件系统必须要mount到容器环境里,否则容器里的进程就会罢工。这给恶意进程非常大的便利,但是大部分运行在容器里的App其实并不需要向文件系统写入数据。基于这种...显示全部

我们的容器平台选用了红帽的openshift,他们推荐的安全机制:
1、文件系统级防护
文件系统只读:有些Linux系统的内核文件系统必须要mount到容器环境里,否则容器里的进程就会罢工。这给恶意进程非常大的便利,但是大部分运行在容器里的App其实并不需要向文件系统写入数据。基于这种情况,开发者可以在mount时使用只读模式。比如下面几个: /sys 、/proc/sys 、/proc/sysrq-trigger 、 /proc/irq、/proc/bus
写入时复制(Copy-On-Write):Docker采用的就是这样的文件系统。所有运行的容器可以先共享一个基本文件系统镜像,一旦需要向文件系统写数据,就引导它写到与该容器相关的另一个特定文件系统中。这样的机制避免了一个容器看到另一个容器的数据,而且容器也无法通过修改文件系统的内容来影响其他容器。
2、Capability机制
Linux对Capability机制阐述的还是比较清楚的,即为了进行权限检查,传统的UNIX对进程实现了两种不同的归类,高权限进程(用户ID为0,超级用户或者root),以及低权限进程(UID不为0的)。高权限进程完全避免了各种权限检查,而低权限进程则要接受所有权限检查,会被检查如UID、GID和组清单是否有效。从2.2内核开始,Linux把原来和超级用户相关的高级权限划分成为不同的单元,称为Capability,这样就可以独立对特定的Capability进行使能或禁止。通常来讲,不合理的禁止Capability,会导致应用崩溃,因此对于Docker这样的容器,既要安全,又要保证其可用性。开发者需要从功能性、可用性以及安全性多方面综合权衡Capability的设置。目前Docker安装时默认开启的Capability列表一直是开发社区争议的焦点,作为普通开发者,可以通过命令行来改变其默认设置。
3、NameSpace机制
Docker提供的一些命名空间也从某种程度上提供了安全保护,比如PID命名空间,它会将全部未运行在开发者当前容器里的进程隐藏。如果恶意程序看都看不见这些进程,攻击起来应该也会麻烦一些。另外,如果开发者终止pid是1的进程命名空间,容器里面所有的进程就会被全部自动终止,这意味着管理员可以非常容易地关掉容器。此外还有网络命名空间,方便管理员通过路由规则和iptable来构建容器的网络环境,这样容器内部的进程就只能使用管理员许可的特定网络。如只能访问公网的、只能访问本地的和两个容器之间用于过滤内容的容器。
4、Cgroups机制
主要是针对拒绝服务攻击。恶意进程会通过占有系统全部资源来进行系统攻击。Cgroups机制可以避免这种情况的发生,如CPU的cgroups可以在一个Docker容器试图破坏CPU的时候登录并制止恶意进程。管理员需要设计更多的cgroups,用于控制那些打开过多文件或者过多子进程等资源的进程。
5、SELinux
SELinux是一个标签系统,进程有标签,每个文件、目录、系统对象都有标签。SELinux通过撰写标签进程和标签对象之间访问规则来进行安全保护。它实现的是一种叫做MAC(Mandatory Access Control)的系统,即对象的所有者不能控制别人访问对象。

收起
保险 · 2017-11-30
浏览2186

提问者

chenkai2055
系统架构师ab
擅长领域: 服务器存储系统管理

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2017-11-30
  • 关注会员:5 人
  • 问题浏览:3910
  • 最近回答:2017-11-30
  • X社区推广