> CentOS > CentOS安全 >

CentOS服务器下网站根目录安全

 疯狂的执着,造就疯狂的安全,细节决定成败,昨日仔细研究了一下openbsd,发现真是一个极其完善的安全系统,真正的从源码层,gcc编译层加固了系统,使其不用使用太多的安全工具,只设置一个pf防火墙就达到了很高的安全层次,当然前提是你要使用openbsd管理的软件!真学习的过瘾的时候,一个电话来了!问我html目录的权限怎么设置好!

  这个问题到时问到了,其实我平常设置都是nginx 最小只读权限 后端的php最高权限,不过看到openbsd的执着精神,我认真的思考了一番:

 

  权限分析:

   1,apache/nginx一般对于静态资源都是负责只读分发,对于php文件不处理,只是直接跟后端php-fpm交流,让php-fpm去处理。

 

    2,后端php主要任务是解析php文件,当然可能会对静态资源进行修改!特别是在php网站安装时,需要目录的写权限。

 

   3,根目录中update目录,需要上传修改。

 

  4 ,  根目录中新创建的文件需要继续根目录用户所有者

   加固方法:

 1,chown -R php-fpm:php-fpm 把html根目录所有者修改给php-fpm,不要管nginx!

 

 2,  chmod -R 2755 html  设置html目录有用户继承权 和 755权限 drwxr-sr-x

 

3,find . -name \*.php | xargs chmod 400 把所有php文件选权限设置为只有php只读!

 

  特别加固:

 1,把根目录所在文件夹单独挂载一分区

          a,dd if=/dev/zero of=/www bs=1M count=1024 创建一个1G大小的根目录空间

           b,mkfs.ext4 /www  格式化ext4文件系统

           c,开启内核loop模块 modprobe loop

           d,mount -o noexec,nodev /www 目标挂载目录  关闭html执行功能防止二进制木马,php木马下面讲!

          注意: 如果你的网站,只是需要修改创建upload指定目录下的文件,可以更安全的隔离html和upload.给html分区-o r,noexec,nodev 给upload -o exec,nodev  一旦隔离了html和upload,我们可以使用selinux grsecurty等强制html分区只读,固化加强安全级别!防止主页串改!使用cron定期刷新内存防止内存缓存串改!

 

 2,php木马防御,这个简单有下面几种方法:

   1,基本犯法,html全目录md5/sha1签名,使用aide等签名软件或者自己shell脚本,定制执行报警

 

   2,笨一点的方法 直接find . -name \*.php | grep -iE '常见的木马文件内容比如eval base64...'

 

   3,高效点的直接修改php.ini禁止不需要的函数

    disable_functions= passthru,exec,shell_exec,system,fopen,mkdir,rmdir,chmod,unlink,dir ,fopen,fread,fclose,fwrite,file_exists ,closedir,is_dir,readdir.opendir ,fileperms.copy,unlink,delfile 等更具需要添加哈。。。。。。

 

   4,彻底的方法,直接使用selinux grecruty 进行系统资源控制,防止php系统调用,网络socket调用!方法暂时保密,,留一手,如有需要以后单独讲解!

(责任编辑:IT)