网站目录权限加固
说明
webshell入侵过程在一个入侵链路中,往往是利用某个安全漏洞,向服务器写入或上传一个webshell(后门),再通过webshell提权或进行后续渗透入侵行为。
这个过程中,获取webshell是最关键最重要的一个步骤,如能在这个环节中阻止攻击者获得webshell,能有效保障到服务器(网站)安全。
网站目录文件权限
网站目录文件权限的设置对网站的安全至关重要,在安全原则中应遵循网站目录文件最小权限设置。
第一个原则:有写入权限的目录,不给动态脚本的执行权限。
第二个原则:有执行权限的目录,不给写入权限。
还有一个原则,php-fpm/nginx 进程所使用的用户,不能是网站文件所有者。 凡是违背这个原则,则不符合最小权限原则。
常规权限:
-rw------- (600) 只有所有者才有读和写的权限
-rw-r--r-- (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限
-rwx------ (700) 只有所有者才有读,写,执行的权限
-rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限
-rwx--x--x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限
-rw-rw-rw- (666) 每个人都有读写的权限
-rwxrwxrwx (777) 每个人都有读写和执行的权限
安全配置实例
1、nginx和php-fpm运行用户为www
2、假设web目录所属着为web_owner
3、将web目录的用户和用户组设置为web_owner和www,如下命令:
chown -R web_owner:www /usr/local/nginx/html
4、设置网站目录权限为750,750是web_owner用户对目录拥有读写执行的权限,这样web_owner用户可以在任何目录下创建文件,用户组有有读执行权限,这样才能进入目录,其它用户没有任何权限。
find -type d -exec chmod 750 {}
5、设置网站文件权限为640,640指只有web_owner用户对网站文件有更改的权限,web服务器只有读取文件的权限,无法更改文件,其它用户无任何权限。
find -not -type d -exec chmod 640 {}
6、针对个别目录设置可写权限。比如网站的一些缓存目录就需要给web服务有写入权限。例如cache目录就必须要写入权限。
find -name 'cache' -type d -exec chmod 770 {}
参考:
http://www.2cto.com/article/201402/277715.html
http://jingyan.baidu.com/article/9158e0008855e2a2541228e1.html