概述:
我在 Ubuntu 14.04 LTS 上托管了十几个 WP 安装,带有 PHP 5.5.9 和 Nginx 1.4.6。MySQL 在备用节点上运行,而不是在公共网络上运行。
目标:
使每个 WP 安装的目录和文件都不可被所有人读取。如果恶意用户获得对特定 WP 安装的访问权限,我无法让他们导航到备用 WP 安装并读取数据库凭据。
细节:
Nginx 以 www-data 形式运行。为每个虚拟主机创建一个没有 shell 的用户。每个虚拟主机支持单个 WP 安装。PHP-FPM 池针对每个用户/虚拟主机运行。PHP-FPM 池通过 socks 而不是回环 IP 与 Nginx 连接。
阅读以下内容Wordfence文章中,我尝试设置文件权限如下:
文件 - 640
目录 - 750
当我这样配置权限时,以 www-data 运行的 Nginx 无法再正确访问 WP 文件。如果我将权限重新设置为644&755,一切都按预期进行。
站点按照以下结构安装:
/var/www/site1.com/public
/var/www/site2.com/public
/var/www/site3.com/public
等等。
每个目录由相应的用户和用户组拥有。即:
site1-com:site1-com /var/www/site1.com
我们的一个 WP 网站遭到了黑客攻击,他们能够在服务器上安装一个 php 文件管理器脚本。据我了解,该脚本由用户 www-data 运行。(经 核实ps aux
)如果这是真的,我怀疑恶意用户可以通过他们的 php 文件管理器脚本访问所有其他 WP 安装。
我该如何改进权限设置以加强安全性?我愿意接受所有建议,即使这意味着重新配置整个堆栈安装。
提前致谢。