我有许多 VPS 服务器,每个服务器有 3 或 4 个网站。大多数网站都是基于 WordPress 的
在过去的两年里,我收到了 3 次针对被入侵插件的攻击,这些攻击不仅影响了安装插件的网站,还影响了同一服务器中的所有网站
由于 Apache2 始终以 www-data 用户(或配置中定义的任何用户)运行,因此通过 Apache 的站点脚本对所有核心文件具有写访问权限,不仅是站点,而且是 www-data 为所有者的整个服务器(即所有其他站点)的/var/www/html
某些目录。
根据大多数指南,目录的经典权限为 755(所有者、www-data 的完全访问权限),文件的经典权限为 644,但 wp-config.php 除外,其权限为 600。但是,当 Web 服务器中的 php 文件受到感染时,所有者的三个权限均为 7 或 6,这意味着完美的读/写访问权限。
我过去读到的经典解决方案是同时使用多个 Apache2 chrooted 进程,每个进程都有不同的用户。但我非常怀疑很多人在实践中会这样做,因为维护起来很复杂。理论上比实践上看起来更好,特别是当你拥有数百个网站,必须维护数百个 apache2 chrooted 进程时。
所以我的问题是:有没有人还有其他想法可以避免这种特定情况吗?
答案1
编辑:
这就是我最终解决这个问题的方法!
https://www.cloudbooklet.com/how-to-install-php-fpm-with-apache-on-ubuntu-18-04-google-cloud/
经过研究,我发现实际上我正在使用的 PHP-FPM 已经通过池实现了这种用户隔离。
我不敢相信我这么长时间都没能找到它