安全的 Apache PHP 安装:使用正确的用户:组

安全的 Apache PHP 安装:使用正确的用户:组

我想“完美地”保护我在 Linux 服务器上安装的 Apache PHP。过去,我曾遇到过脚本病毒/漏洞问题,因此它需要一个“安全”的解决方案。

我当前的解决方案:

  • 每个网络空间都有自己的用户,并有自己的用户组(例如:user1:user1)。
  • Apache 在 http:http 下运行
  • PHP 通过快速 CGI 运行,Suexec用户组用户1:用户1
  • 网络空间目录归 user1:http 所有,初始设置 chmods:全部设置为 0,然后 chmod u+rwX,g+rX。这意味着,所有者(user1)具有完全访问权限,组具有读取访问权限,其他人无权访问。

这种方法运行良好而且安全...但是在以下情况下它将不起作用:

  • 通过 PHP 创建文件
  • 通过 FTP 上传文件。

然后文件将创建为 user1:user1。这(通常)是正确的。但是 apache(http:http)不再具有访问权限。

一个解决方法是:将所有文件保留为 user1:user1,但以 root 身份运行 apache。但是,这不是很安全...

那么,有什么好的解决办法吗?当然,我读过几十篇博客,但每个解决方案都会有另一个问题。

答案1

一个好的解决方案可能是将 Apache 用户(http)添加到每个用户组:

adduser http user1
adduser http user2
adduser http user3
etc...

您需要一个小脚本来完成此操作,但它大多数时候都会为 Apache 提供所需的访问权限。

替代/更好的解决方案

查看 FTP 服务器是否有创建文件的默认组选项,并使用以下命令设置 PHPSuexecUserGroup user1:http

相关内容