设为首页收藏本站

全球主机交流论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: discuz
查看: 1400|回复: 0
打印 上一主题 下一主题

使用Nginx防御CC攻击

[复制链接]

该用户从未签到

跳转到指定楼层
楼主
发表于 2013-7-1 12:14:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本文主要介绍了有关使用Nginx防御CC攻击的一些配置。CC攻击针对的是服务器上面的内存和CPU资源,因此通常会找到一些比较高消耗的接口,例如search.php之类的需要大量sql查询的接口。因此,明白了这一点,我们就很好防御了,主要是针对单个ip地址的连接数和请求php文件的密度来控制的。
我们主要用到的是Nginx中提供的两个limit模块:
ngx_http_limit_conn_module  
ngx_http_limit_req_module
一、白名单
首先这两个模块是支持白名单的,就是可能有某些IP地址,我们是不需要进行限制的,比如可能会是搜索引擎啦什么的或者自己的IP,因此需要设置一个白名单,不需要的可跳过本步。具体方法:
在HTTP段中插入如下格式内容,声明白名单IP
http{   
.......   
geo $limited{         
default 1;         
#公司         
119.123.5.0/24 0;     
}   
.........   
}   
geo指令定义了一个白名单$limited变量,默认值为1,如果客户端IP在上面的范围内,$limited的值为0。
然后紧跟在上面内容后使用map指令映射搜索引擎客户端的ip为空串,如果不是白名单IP就显示本身真实的IP,这样搜索引擎iIP就不能存到limit模块的内存session中,所以不会限制白名单的IP访问。
map $limited $limit {                     
1 $binary_remote_addr;                     
0 "";            
}  
二、访问频率限制
访问频率限制使用到的是ngx_http_limit_req_module,需要在两个地方配置,首先在HTTP段中,声明好这个模块一些参数,如果有设置白名单,设置如下
http{   
...   
limit_req_zone $limit zone=one:10m rate=20r/m; ##平均20r/m 每分钟20个请求   
...   
}  
如果没有配置白名单,所有来访IP都会限制,配置如下
http{   
...   
limit_req_zone $binary_remote_addr zone=one:10m rate=20r/m; ##平均20r/m 每分钟20个请求  
...   
}   
解释一下上面的参数,第一个代表的是需要限制的ip群,这个很好理解,第二个zone=one表示这个limit_zone的名字叫做one,后面的使用中可以用这个one来进行指代,后面的15m,代表为这个zone分配10m的内存,1m可以保存16000的$binary_remote_addr。最后一个是频率,如果要按秒来算可以设置20r/s这样。
最后是配置到Nginx的php的解析段
location ~ \.php$ {   
...   
limit_req zone=one burst=5 nodelay;   
...   
}   
指定了使用名字为one的zone,然后缓冲队列为5,无延迟,如果不设置无延迟,访问会卡住。
三、访问连接限制
访问连接限制使用到的是ngx_http_limit_conn_module,也是需要在两个地方配置,首先在HTTP段中,声明好这个模块一些参数,如果有设置白名单,设置如下
http{   
...   
limit_conn_zone $limit zone=addr:10m;   
...   
}   
如果没有配置白名单,所有来访IP都会限制,配置如下
view sourceprint?http{   
...   
limit_conn_zone $binary_remote_addr zone=addr:10m;   
...   
}   参数的意思跟上面的差不多也就不多解释了。
后面的就是在server段中进行设置了,可以具体到某个目录什么的了
server {        
location /download/ {           
limit_conn addr 5;        
}  
来源:http://bbs.xtjc.com/thread-447598-1-1.html

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|中国U网    

GMT+8, 2024-4-29 10:51 , Processed in 0.071163 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表