LXC容器作为沙箱环境


9

我目前正在启动一个在安全的沙箱环境中评估不受信任的程序(学生作业)的项目。主要思想是围绕lxc-utils为GlassFish和Java包装器创建一个Web应用程序,以管理LXC容器。它会有一个等待程序的队列,一个Java包装器将维护一个固定数量的LXC容器(池),并为每个程序分配一个(未使用的)容器。

每个容器都应使用SELinux进行保护,以保护主机系统。

我的问题是:为沙盒环境创建这样的机制是个好主意,还是有解决这个问题的更好的解决方案?它应该轻巧可靠,以防止学生的创造力。

Answers:


6

您没有写出为什么选择LXC的原因,因为它不是最安全的虚拟化解决方案。我既是KVM / XEN的用户,也是LXC的用户,我可以说这一点:在安全性方面,我永远不会使用Linux容器(无论LXC / OpenVZ / VServer)。使用KVM / XEN更容易(并且更可靠)。

如果是关于性能或硬件要求的,那么可以-您可以尝试使用LXC,但是有一些规则应该遵循:

  • libvirt确保在使用SELinux时严格限制容器(由于使用LXC_driver)-不知道这是否仅是RHEL / Centos / Fedora情况(我使用的不是Ubuntu / Debian太多)https://www.redhat.com/archives /libvir-list/2012-January/msg01006.html-因此,使用SELinux是一个好主意(我认为在这种情况下“必须具备”)
  • 设置严格的cgroup规则,以便您的来宾不会使您的主机冻结或影响其他容器
  • 我宁愿使用基于LVM的容器-它总是多一层“安全性”
  • 考虑网络解决方案和体系结构。这些容器必须相互通信吗?

先从阅读 -这是很老,但仍然-有多少知识存在。而且-满足用户名称空间

在所有这些之后,请再考虑一遍-您真的有那么多时间来使用LXC安全性吗?KVM非常简单...


首先,感谢您的回答。我选择LXC是因为我需要一些灯光,并且它将在KVM中运行。是否可以在KVM中运行KVM?
eXPi 2013年

1

对于运行不受信任的程序,Linux名称空间仍然是最佳解决方案。它比KVM更容易设置,并且所需资源更少。您可以尝试使用LXC,但是LXC是作为运行常规Linux分发映像的更通用的沙箱而构建的。我想到了另外两个Linux名称空间沙箱:

  • Google Chrome沙盒,目前与Google Chrome / Chromium一起分发
  • Firejail,一个安全沙箱,用于运行Mozilla Firerfox和任何其他GUI程序。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.