1、配置所有者
配置网站目录所有者和nginx运行用户以及php-fpm用户为不可登录linux的用户(登录时启动的shell为nologin),并且目录拥有者与php-fpm运行用户要不一致
创建nologin用户方法:LINUX创建www的用户组和用户,并且不允许登录权限
2、配置目录访问权限
权限最低原则,除了上传目录及缓存目录 都不配置可写权限,文件和目录都配置444,无法执行目录下的php文件,都配置为555,权限又大了,可配合find命令,分别配置
find ./ -type f -exec chmod 444 {} \; find ./ -type d -exec chmod 555 {} \;
3、取消php-fpm用户对系统命令及sh脚本的执行权限
执行以上配置后,一般的webshell无法修改目录内的文件,也无法进行创建文件、修改时间戳等操作
但借助php的exec等命令依然可以执行系统的关键命令,可以禁止php执行exec等命令,也可取消php-fpm执行用户对系统命令的执行权限
chmod 744 /bin #根据实际情况对 /usr/bin /usr/local/bin 等位置进行相应设置
4、配置nginx 取消对上传目录 缓存目录等 权限相对宽松目录的 php执行权限
location ~* ^/(data|runcache|config)/.*\.(php|php5)$ { deny all; }