日期:2014-05-17 浏览次数:20428 次
核心总结: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 程序需要对网站某些文件有写入权限,需