我是否需要担心我的 VPS 上的 suexec 和 suphp?

我是否需要担心我的 VPS 上的 suexec 和 suphp?

我即将设置一个 VPS,用于托管我公司的多个网站,只有我才能访问这些网站。这些网站是我们自己的网站,因此,服务器上将运行我自己的代码。

所以我想知道,我是否应该费心将网站与它们自己的用户/组分开,以便对每个网站进行沙盒处理?显然,我不会将 shell 上传到其中一个网站来读取另一个网站的文件 - 我只需通过 SSH 即可:>

但是,我考虑的是,如果其中一个网站由于在 CMS/我的代码/等等中发现漏洞而被其他人攻击。如果我将其沙盒化,那么被攻击的只是一个网站,而不是所有网站。

我该为此烦恼吗?

答案1

在沙盒中运行网站始终是个好主意。但您需要问的一个重要问题是 - 您和您的客户是否愿意承受实施 suexec/suPHP 带来的性能损失?

我找不到更新的文章,但是这篇 2007 年的文章基准测试 suexec 表明它比常规 mod_php 慢 30 倍。

如果你的客户端运行的是混合技术栈(例如,Perl 和 PHP 都是必需的),你可能需要考虑读取器 MPM相反。peruser MPM 不是核心 Apache 代码库的一部分,但它列在Apache 官方维基这似乎表明 Apache 基金会相信 MPM 开发不会在一夜之间消失。

现在,如果你的客户端只运行常规的 LAMP 堆栈(重点在 P)——你可能需要研究一下PHP-FPM相反。它是一种 PHP-CGI 实现,提供本机沙盒、chrooting 和本机 PHP-CGI+suPHP 不提供的许多其他自定义功能。此外,从 PHP 5.3.3 开始PHP-FPM 是核心 PHP 堆栈的一部分,因此您不必担心兼容性问题。

答案2

简单的回答:是的,你应该这样做。

在系统上分离不同的(逻辑)用户始终是个好主意。通过每个站点拥有单独的用户,您还可以更轻松地实施文件系统配额或进程限制。

根据应用程序的性能要求和功能,您可以通过 FastCGI 而不是普通 CGI(SuPHP 使用)运行脚本。

相关内容