疯狂的执着,造就疯狂的安全,细节决定成败,昨日仔细研究了一下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调用!方法暂时保密,,留一手,如有需要以后单独讲解!
好了,吃饭去了,安全无极限,攻击无止境,系统大家能根据自己的需要,寻找到安全---性能 安全--可用性的平衡点,大家多交流,共同进步!
本文出自 “清蒸BSD红烧LINUX” 博客,转载请与作者联系!