在具有安全隔离的 LAMP 上运行多个站点

在具有安全隔离的 LAMP 上运行多个站点

我一直在管理几台 LAMP 服务器,每台服务器上有 2-5 个站点。这些服务器基本上由同一个用户/客户端拥有,因此除了通过易受攻击的守护程序或脚本进行攻击外,不存在任何安全问题。我正在构建自己的服务器,并希望开始托管多个站点。我首先关心的是...隔离。我如何避免 c99 脚本破坏所有虚拟主机?此外,我是否应该阻止 c99 能够写入/读取其他站点的目录?(很容易从另一个站点“cat”config.php,然后进入 mysql 数据库)我的服务器是一个 VPS,内存为 512M,可爆发到 1G。在免费托管管理器中,有没有适合我的 VPS 的小型管理器?(可能与我想要的安全方法兼容)目前我不打算托管超过 10 个站点,但我不能接受客户端/黑客可以导航到不需要的目录,或者更糟的是,运行恶意脚本。FTP 管理就没问题。我不想让 SSH 隔离让事情变得复杂。

在这种情况下,最佳做法是什么?基本上,托管公司如何才能睡得好?:)

非常感谢!David

答案1

您可以使用 chattr +i 来修复 deface 部分,但它无法修复 php 错误。典型的 php 安全功能会有所帮助,在最坏的情况下,chroot 也是可能的。

http://php.net/manual/en/security.php

http://www.hardened-php.net/

答案2

通过购买来解决问题:
Michael 的建议是使用 VPS,我同意,但我相信你说你现在有一个 VPS,那可能已经是 XEN 或 OpenVZ 了。我以前从未听说过有人嵌套 VPS。

因此,我建议也使用虚拟化来容纳一些东西,但我认为如果你有很多网站,你可能需要租一个整个服务器,并在其上运行 OpenVZ 或 Xen。然后将每个站点或站点组放入其自己的容器中。如果您不担心某些站点相互交互,请将它们放入容器中并使用虚拟主机,否则为它们提供自己的虚拟机。

这种方法的一个缺点是,您可能需要获取更多 IP,这会花费更多。您也许可以使用反向代理来解决,但这可能得不偿失。

因此,购买整台机器和一些 IP 可能会花费更多。但我认为这比购买相同数量的 VPS 更便宜。正如您所说,在操作系统中包含内容很棘手。所以总的来说,我的解决方案只是多花一点钱租用服务器并获得 IP,但最终我认为这会让一切变得更简单。

答案3

对于这种类型的应用,我会认真考虑开放VZ它可虚拟化 Linux 系统。它不是像 XEN 或 Virtualbox 这样的虚拟机系统,因为它不模拟 CPU。相反,它创建容器,将一组 Linux 进程与机器上运行的其他进程隔离开来。

答案4

查看适用于 Apache 2.x 的 ITK MPM: http://mpm-itk.sesse.net/

mpm-itk 允许您在单独的 uid 和 gid 下运行每个 vhost - 简而言之,一个 vhost 的脚本和配置文件不再需要可供所有其他 vhost 读取。

我已经在多个繁忙的网站上使用它好几年了,没有任何问题。

此外,它在基于 Debian 的发行版中可作为 apache2-mpm-itk 轻松使用,并且在其他发行版中也应该可用。

还有一种较旧的替代方案,Peruser MPM,但上次我检查时它容易出现错误并且更难配置。

相关内容