Linux kernel LXC对于IaaS是否足够安全?

Linux kernel LXC对于IaaS是否足够安全?,linux-kernel,cloud,virtualization,lxc,Linux Kernel,Cloud,Virtualization,Lxc,我在Debian手册中找到了一些关于LXC的隔离限制 这些限制是关于: 内存隔离 共享文件系统 内核消息 内核妥协可能性 对于内存隔离和文件系统,这似乎不是问题,因为可以配置容器来隔离它们。但是有一种方法可以充分保护内核,以确保不受信任的用户不会危害内核,也不会读取内核消息 如果可能的话,这种受限的用户访问是否会限制IaaS?或者,使用真正的虚拟化或准虚拟化来提供IaaS解决方案不是更好吗 所有Linux容器仍然在一个内核下运行。如果所述内核被破坏,并且由于该内核在最特权的硬件模式下运行(x

我在Debian手册中找到了一些关于LXC的隔离限制

这些限制是关于:

  • 内存隔离
  • 共享文件系统
  • 内核消息
  • 内核妥协可能性
对于内存隔离和文件系统,这似乎不是问题,因为可以配置容器来隔离它们。但是有一种方法可以充分保护内核,以确保不受信任的用户不会危害内核,也不会读取内核消息


如果可能的话,这种受限的用户访问是否会限制IaaS?或者,使用真正的虚拟化或准虚拟化来提供IaaS解决方案不是更好吗

所有Linux容器仍然在一个内核下运行。如果所述内核被破坏,并且由于该内核在最特权的硬件模式下运行(x86的环0),它可能会影响每个正在运行的容器。使用传统的硬件虚拟化,即使一个客户机内核受到破坏,虚拟机监控程序也基本上存在于另一个保护环(同样是x86术语)中,以隔离虚拟客户机。当然,假设虚拟机监控程序的实现中存在错误,就有可能破坏虚拟机监控程序,但破坏虚拟机不会直接影响其他客户机


此外,受损的客户机可能会通过(虚拟化)网络间接影响其他客户机,即发送恶意消息,但这类似于网络中的一台机器受到破坏,并在没有虚拟化的情况下对另一台机器进行同样的操作。此外,受威胁的来宾可能会通过微体系结构元素(例如,破坏缓存)开始影响其他机器的性能,或者将所述微体系结构元素用作旁道攻击,以收集有关其他虚拟机的一些信息。

感谢您的回复。那么有没有一种方法可以保护用户无法访问内核的LXC容器?我在这个主题上看到了:LXC容器可以用于IaaS,但当我读到你的文章时,它似乎是危险的。@MartinDonies一个进程(在Linux容器中)不与内核交互(通过系统调用)将不是很有用。最好的办法是限制容器中的进程具有哪些功能,最好在serverfault.com上询问您如何做到这一点。无论您是想使用容器还是虚拟机来实现IaaS,几乎可以肯定的是,这超出了SO帖子所能回答的范围,而且会得到很多固执己见的答案。关于虚拟机和容器的争论可能会很激烈,这取决于被问到的人。