日期:2014-05-17  浏览次数:20395 次

正确设置 php-fpm子进程用户 提高网站安全性 防止被挂木马

核心总结:php-fpm 子进程所使用的用户,不能是网站文件所有者。 凡是违背这个原则,则不符合最小权限原则。

?

根据生产环境不断反馈,发现不断有 php网站被挂木马,绝大部分原因是因为权限设置不合理造成。因为服务器软件,或是 php 程序中存在漏洞都是难免的,在这种情况下,如果能正确设置 Linux 网站目录权限, php 进程权限,那么网站的安全性实际上是可以得到保障的。

?

那么,造成网站被挂木马的原因是什么?

?

1.  ftp 连接信息被破解,对这个原因,可行的办法就是使用非常复杂的FTP 用户名(不要使用常用的用户名),如果是固定作业,可考虑使用 iptables 防火墙限制来源 IP 。但是一些情景下,可能需要使用 VPN 以便远程维护。 即网站维护者需要使用 FTP 修改网站文件时,必须先登录到 IDC 机房的 VPN 服务器上,再进行后续的操作。

?

2.  网站服务器软件/ 配置 /php 程序存在漏洞,被利用
在讨论这个问题前,先说明文件及进程权限的几个概念:

A.? FTP用户对网站目录具有最大修改权限,那么网站的文件所有者一定属于 FTP,  这是毋庸置疑的 ,? 否则如何修改文件呢?

B.? php-fpm进程, nginx 进程对网站文件至少需要有读取权限,例如,以下命令即可查看这两个进程所使用的账号:



通过上图,我们可以发现,nginx php-fpm 子进程账号是 nobody

?

我们再查看网站文件目录的权限:

发现网站文件所有者是www 账号,那说明:

|? nginx php 对网站只有读取权限,无写入权限

l? 如果php 程序需要对网站某些文件有写入权限,需