全球主机交流论坛

标题: Nginx的配置安全加固分享,涉及预防多方面的潜在危险 [打印本页]

作者: cnpanel    时间: 2011-6-9 01:02
标题: Nginx的配置安全加固分享,涉及预防多方面的潜在危险
.
看到大家重炒古老的NGINX的FAST-CGI解析PHP_PATH_INFO漏洞,真不知该做何感想,下面分享一段NGINX的配置代码,具体作用附有简单注释。
大家要记住一个原则,那就是:能执行php程序的目录一定不要开放读写权限,而可以读写的目录(比如上传)一定不要赋予php执行权限。

这段代码需要放在server段里面(较前位置,最好放在location / {...}前面),也可以存成一个文件在每个vhost里include一下。
  1. # 2011 (C) cnpanel
  2. # Disable visitors without agent
  3. if ($http_user_agent ~ ^$) { return  412; }
  4. # Disable possible Apache access files
  5. location ~ /\.ht {deny  all;}
  6. # Never can not visit or download files or DIRs starting with #
  7. location ~ /\# {deny all;}
  8. # Disable risk request in some DIRs for secure
  9. location ~* /(image|images|img|imgs|upload|uploads|upimg|upimgs|upfile|upfiles|down|download|downloads|attachment|attachments|js|css|style|styles|tpl|template|templates|theme|themes|view|views|lang|language|languages|setting|settings|app|apps|include|includes|class|classes|mod|mods|model|models|lib|libs|control|controls|source|sources|plugin|plugins|data|datas|database|tmp|temp|ipdata|html|avatar|avatars)/(.*)\.(php|php3|php4|php5|cgi|asp|aspx|jsp|shtml|shtm|pl|cfm|sql|mdb|dll|exe|com|inc|sh)$ {deny all;}
复制代码
【提示】Igor说过if clause和正则会降低一点点nginx的性能,极高并发时会比较明显 (但是谁的配置离的了这两样呢?)
【声明】这段代码的思路是网上综合而来,是我即将发布的lnmp一键脚本的关于nginx的配置的一个文件里面摘抄出来的,绝无雷同,保留权利。

最后再说一句,安全是相对的,是全方位、综合性的,nginx再安全也敌不过系统被人拿shell,或者如果网站程序本身就是筛子,那都根本不用费力气搞什么牛啊马啊的了

配置的最后一句有可能对某些冷门或自编程序不兼容,使用有什么异常也可以留言
如果有什么指教请回复,欢迎大家交流!
作者: hotsnow    时间: 2011-6-9 01:04
学习一下
作者: WAKAKA    时间: 2011-6-9 01:07
mark
作者: wdlth    时间: 2011-6-9 01:08
用白名单。
作者: 四师兄    时间: 2011-6-9 06:46
留言做记号 谢谢分享
作者: jasontse    时间: 2011-6-9 08:32
http://blog.s135.com/nginx_0day/
完美解决方案
作者: Poison    时间: 2011-6-9 08:54
apache跑php 有问题 木有?
作者: jasontse    时间: 2011-6-9 08:54
标题: 回复 7# ssh 的帖子
木有
作者: cnpanel    时间: 2011-6-9 09:14
原帖由 jasontse 于 2011-6-9 08:32 发表
http://blog.s135.com/nginx_0day/
完美解决方案



什么叫完美?

这段代码不是单独针对什么历史0day的,这段代码能做的更多
作者: cnpanel    时间: 2011-6-9 09:55
原帖由 ssh 于 2011-6-9 08:54 发表
apache跑php 有问题 木有?


Nginx如果作为前端,这段代码同样会对任何后端起的相同的保护作用,当然仅限于网站层面上

不管后端是Apache、IIS还是Tomcat等等
作者: 狂犬疫苗    时间: 2011-6-9 10:03
围观了 用的apache
作者: taian    时间: 2011-6-9 10:10
不错,进来学习
作者: 卡恩    时间: 2011-6-9 10:27
思路不错!
作者: 火雪心    时间: 2011-6-9 10:28
看不懂滴说。。。
作者: 意气形    时间: 2011-6-9 13:27
留个记号。。。
作者: 有个就好    时间: 2011-6-9 14:36
原帖由 cnpanel 于 2011-6-9 09:55 发表


Nginx如果作为前端,这段代码同样会对任何后端起的相同的保护作用,当然仅限于网站层面上

不管后端是Apache、IIS还是Tomcat等等


是的,好思路
作者: indj    时间: 2011-6-10 18:28
收藏的说。




欢迎光临 全球主机交流论坛 (https://91ai.net/) Powered by Discuz! X3.4