码迷,mamicode.com
首页 > 其他好文 > 详细

nginx 防攻击

时间:2015-01-20 13:36:03      阅读:480      评论:0      收藏:0      [点我收藏+]

标签:

 1 1,判断refer,我们最常用的判断访问nginx中的referer的值,判断攻击者的referer特点来阻止攻击
 2 set $flagjs_enable 0; # 0 - off , 1 - on
 3 
 4 set $flagjs 0;
 5 if ( $flagjs_enable = "1" )
 6 {
 7 set $flagjs 1;
 8 }
 9 
10 #上面是开关
11 
12 if ($http_user_agent ~* "Baiduspider") {
13 set $flagjs "${flagjs}Y";
14 }
15 
16 if ($http_user_agent ~* "baidu") {
17 set $flagjs "${flagjs}Y";
18 }
19  
20 if ($flagjs = "1YY") {
21 
22 #return 400;
23  
24 add_header Set-Cookie "wdzjccjs=wdzjcc$remote_addr";   #这两句是js跳转
25 rewrite .* "$scheme://$host$uri" redirect;
26  
27 }
28 
29 2,判断攻击的ip特点,大多数攻击者都会通过代理来攻击,然有些代理是特点多个ip,我们正常
30 访问是单个ip(排除手机访问以外),这个只有在攻击的时候开启,很有效果
31 location / {
32     root   /www/html;
33     #proxy
34     if ($http_x_forwarded_for ~ ^\d+.\d+.\d+.\d+\W\s\d+.\d+.\d+.\d+$){    #这个是匹配两个ip的
35         return 503;
36        }
37         index  index.php index.html index.htm;
38         include .htaccess;
39      }
40 
41 
42 3,利用nginx limit_zone、limie_req_zone、limit_speed_zone(这个模块需要安装)来控制并发连接数、连接频率、带宽
43 下载nginx第三方模块nginx_limit_speed_module-master.zip
44 cd nginx编译目录
45 ./configure 之前编译参数 --add-module=模块目录
46 make
47 cp objs/nginx 到nginx安装目录sbin/nginx 
48 
49 http {
50     limit_conn_zone $binary_remote_addr zone=perip:10m;      
51     limit_req_zone $binary_remote_addr zone=reqip:10m rate=10r/s; 
52     limit_speed_zone speedip $binary_remote_addr 10m;
53 }
54 
55 server {
56     limit_conn perip 20;
57     limit_rate 200k;
58     limit_speed speedip 200k;
59     limit_req zone=reqip burst=30;
60 }

 

nginx 防攻击

标签:

原文地址:http://www.cnblogs.com/zenghui940/p/4235274.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!