![强制 apache 上的脚本在不同的账户下运行以增强安全性?](https://linux22.com/image/525840/%E5%BC%BA%E5%88%B6%20apache%20%E4%B8%8A%E7%9A%84%E8%84%9A%E6%9C%AC%E5%9C%A8%E4%B8%8D%E5%90%8C%E7%9A%84%E8%B4%A6%E6%88%B7%E4%B8%8B%E8%BF%90%E8%A1%8C%E4%BB%A5%E5%A2%9E%E5%BC%BA%E5%AE%89%E5%85%A8%E6%80%A7%EF%BC%9F.png)
我客户的网站最近被破坏了,他们正在寻求减轻这种风险的方法。他们有一个运行 apache 和 mod_php 的专用服务器。该网站由安装在不同文件夹中的三个独立的 php 应用程序组成(客户门户脚本、wordpress 和自定义数据库驱动脚本)。他们的安全审计建议将每个脚本隔离,这样如果其中任何一个被黑客入侵,其他两个脚本就不会被破坏等。他们还建议使用 fast-cgi 而不是 mod_php。还提到了 Suexec,尽管不清楚为什么建议这样做。
有人能确认这是否合理并且实际上可行吗?如果可以,实现所提议的安全解决方案的最佳方法是什么?
答案1
使用 suPHP 或 suEXEC (+ fcgi/cgi) 是保护您的服务器(分离应用程序)的一个好决定。
但要做到这一点,您需要为每个应用程序设置不同的虚拟主机,例如:app1.domain.com、app2.domain.com、app3.domain.com。如果您的网站结构与上述类似,那么设置 3 个虚拟主机、使用 3 个不同的用户/组来为 php 提供服务(使用上述方法 - suexec、suphp)就没有问题了。
答案2
如果是这样,那么实现所提出的安全解决方案的最佳方法是什么?
每个站点最好使用虚拟机(KVM、OpenVZ、XEN、Jail)或使用 chroot(mod_chroot、php-fpm)。