2

我在一个共址数据中心有 2 台物理机,并希望充分利用它。我正在考虑使用 Docker、Weave 来运行高度安全的 Web 应用程序(Tomcat、Mysql、Mongodb),并且希望在安全方面格外小心。下面是我的架构。有 docker 部署经验的人可以提供反馈吗?

a) 使用 SSH 在两台物理机上创建 centos 6 操作系统并安装 Shorewall。Shorewall FW 将仅限制 ssh 和端口 80,443,并且 80,443 将转发到运行 tomcat 容器的 VM。此物理机上未安装 docker。

b) 在两台物理机上安装 Virtualbox 并启动多个虚拟机,每个虚拟机都可以通过物理机上的 SSH 隧道访问,从而提供额外的安全层

c) 在每个虚拟机上构建 docker 和 weave 网络,因此在作为主机的虚拟机上构建 weave 网络

d) 仅在 VM 上启动的所有 tomcat、mysql、mongodb 容器。

此配置的优点是我的物理机和 Docker 是分开的,并增加了额外的安全层。

我正计划建立这个。我想知道是否有人预见到任何问题或挑战或建议以更安全/更强大的方式使用 2 个服务器。

非常感谢任何指导或进一步阅读的链接。

谢谢英国。

4

1 回答 1

2

您的基础设施是一个好的开始,但只是一个开始。

您需要正确配置这些应用程序以提高安全性(无论它们以何种方式或在何处运行,是否在 docker 容器中):例如,确保您的标头响应不包含应用程序的名称及其版本(有关更多信息,请参阅Apache Tomcat 8 安全注意事项或“提高 Apache Tomcat 安全性”)

此外,docker 容器的问题是在这些容器中以 root 身份运行的进程并直接对内核进行系统调用(默认情况下没有范围限制,这意味着所有系统调用都被允许)。
这就是 docker 1.9 开始使用PR 12648(用户命名空间作为重新映射的容器根的第一阶段实现)问题 15187

  • 所有容器都有自己的用户命名空间(有效地防止使用--net=hostor --net=container:<id>)。
  • 守护程序范围的设置重新映射root所有容器的用户。
于 2015-12-05T13:02:18.247 回答