![步骤 1:不要把所有东西都运行为www-data](https://linux22.com/image/627329/%E6%AD%A5%E9%AA%A4%201%EF%BC%9A%E4%B8%8D%E8%A6%81%E6%8A%8A%E6%89%80%E6%9C%89%E4%B8%9C%E8%A5%BF%E9%83%BD%E8%BF%90%E8%A1%8C%E4%B8%BAwww-data.png)
我的情况比较特殊。我有 VPS 用于我自己的项目。我的一个朋友请我托管他的 wordpress 博客。
现在我已经非常简单地设置了我的 VPS,所有项目都在 /www 下,并且 apache 对这些文件夹 (www-data) 具有写访问权限,我在 ubuntu 服务器 12.04 上。
Mysql 方面没有问题,这个 wp 安装有自己的 DB/username-pass,只能访问这个 DB。
但我担心如果他的 wp-admin 密码被泄露,我的 VPS 的安全性也会受到损害。
我正在考虑将 /www/projectX 的所有权转交给 me:me。并仅向插件和图片上传目录授予写入权限。但如果所有内容都在同一个 apache 用户下运行,黑客可能会将恶意脚本上传到这些目录,从而访问服务器上我的其他项目。
我能做些什么来保护自己?至少是部分保护?
我不想保护这个特定的 WP 安装,我想保护我的其他项目不受这个 WP 安装的影响。
答案1
这两个步骤将使您达到 90% 以上的安全托管系统(从防止跨站点升级攻击的角度来看):
步骤 1:不要把所有东西都运行为www-data
使用类似系统php-fpm
来让每个站点在其自己的用户中运行。这样,一个帐户的入侵就不会自动读取其他每个站点的内容,例如数据库密码和其他密钥。
第 2 步:限制权限
确保每个站点的权限不允许其他站点用户读取任何内容。一个巧妙的方法是将每个站点的基本目录的组设置为所有网站用户都属于的某个公共组(甚至可以称之为websites
),然后将该目录的权限设置为0701
,以便组中的用户无法进入目录。