![在 chroot/isolated 环境中运行内容(Web 服务)](https://linux22.com/image/1247184/%E5%9C%A8%20chroot%2Fisolated%20%E7%8E%AF%E5%A2%83%E4%B8%AD%E8%BF%90%E8%A1%8C%E5%86%85%E5%AE%B9%EF%BC%88Web%20%E6%9C%8D%E5%8A%A1%EF%BC%89.png)
首先,我阅读了在网上和 Superuser 上能找到的所有 chroot 问题。基本上它们都涉及在 64 位主机上运行 32 位应用程序等。
我想拥有一个完全 chroot 的隔离系统(从那里运行 lighttpd、mysql、ssh 等)。(出于安全原因,我必须将开发环境与实时环境隔离。)因此,我安装了 chroot 环境,挂载了所有必需的东西,然后 chroot 进去。一切顺利。编辑/etc/ssh/sshd_config
为使用端口 22222 而不是 22。service ssh start
然后使用。它显示服务正在运行,但如果我尝试这样做:ssh -p 22222 localhost
我会收到“连接被拒绝”信息。到目前为止,chroot 系统非常小,因此没有防火墙、hosts.allow/deny 或任何东西。
欢迎任何想法。
附言:正如我之前提到的,chroot 环境将是一个开发领域。我认为 chroot 是最简单的方法,但如果您说 KVM 更好或者其他什么,我可以尝试。该机器可以轻松运行甚至 10 个虚拟机。
使用的方法:
http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=1&chap=6
https://help.ubuntu.com/community/BasicChroot
http://www.gentoo.org/proj/en/base/amd64/howtos/index.xml?part=1&chap=2
http://ubuntuforums.org/showthread.php?t=248724
答案1
在实时环境中以 chroot 方式运行开发环境是一个糟糕的想法。它完全不符合将开发环境与实时环境隔离的要求。只需一个小小的错误就可以杀死实时服务器进程而不是开发服务器,或者让开发服务器监听端口 22 或 80。
您可以在开发人员机器上以 chroot 形式运行开发环境,但这比配置虚拟机更难。我认为不使用虚拟机的唯一原因是您的硬件太旧,无法舒适地运行虚拟机,而您说情况并非如此。虚拟机为您提供了一个独立的网络环境(因此您可以在其真实端口上使用其真实防火墙测试服务)、一个独立的进程环境(因此您知道您真正需要多少内存以及您真正需要多少 CPU),等等。
理想情况下,如果性能允许,实时环境和开发环境都将在虚拟机内运行,使用相同的虚拟机技术。这将使部署风险尽可能低。