保护共享的 Apache2 + PHP

保护共享的 Apache2 + PHP

我们想要设置一个运行 Apache2 和 PHP5 的共享 Web 服务器。我们的需求是托管一些 PHP 应用程序,如 Wordpress、Zend 框架应用程序……某些网站可能由外部开发人员控制,因此我们需要较高的安全性。

我们希望在 php safemode = Off 的情况下运行,因为在安全模式下运行 wordpress 会出现问题。

我们如何保护从 php 应用程序到服务器其余部分的访问/权限? (如何确保 PHP-cade 无法访问网络服务器配置文件、日志等)

我们如何确保两个站点之间的访问/权限安全? (如何确保一个站点不能访问另一个站点的文件/数据)

我们考虑过利用 mpm-itk 与 open_basedir 结合,但这足够吗?

对于服务器文件系统的访问权限有什么建议吗?

那么禁用某些函数(例如 system()、exec() 等)怎么样?

答案1

我正在使用细读者MPM 为服务器上的每个共享虚拟主机提供单独的用户/组。这些用户有受限制的主目录 (700) 和单独的会话文件目录。我已经用以下方法修补了 PHP苏霍辛并将与安全相关的指令(如open_basedir)添加到 php.ini。

请记住,共享主机配置永远不可能实现“完全”安全。

答案2

如果您想要一个安全的服务器,请不要运行 Wordpress,也不要运行外部开发人员编写的代码。

但既然这似乎是一项基本要求,那么除了设置安全 http 服务器时应该做的所有常规事情之外......

open_basedir 是个不错的开始。但是如果您只需要将 2 个站点分开,为什么不直接将它们放在服务器上各自的 VM 中呢?或者使用公共反向代理以不同的 uid 运行 2 个 Web 服务器实例?

您当然希望非常关注出口过滤。如果您打算采用单一 Web 服务器路线,一定要看看 suhosin。

相关内容