找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
楼主: smyz

AMH面板防CC攻击模块已发布。

[复制链接]

265

主题

2504

回帖

5843

积分

论坛元老

积分
5843
 楼主| 发表于 2013-5-24 16:05:05 | 显示全部楼层

lazyzhu 发表于 2013-5-24 18:36



区别大了

一个页面有5个图片,假设访问时图片同时加载

是说已发的这个模块的两条规则区别不大。


回复

使用道具 举报

30

主题

583

回帖

1276

积分

金牌会员

积分
1276
发表于 2013-5-24 16:40:46 | 显示全部楼层

lazyzhu 发表于 2013-5-24 18:36



区别大了

一个页面有5个图片,假设访问时图片同时加载

嗯 是没懂 $binary_remote_addr 和 $request_uri
举个栗子
一个页面 如果html有10个
加载了5个css  3张图片
那么
$binary_remote_addr  是 4
$request_uri 是 1  
对么?
对于html中的link  和   a href  应该是不算在里面的?
因为我测试的页面图片都是外链  所以真没发现问题  一直以为$binary_remote_addr 是在定义客户端

怎么才能对$binary_remote_addr和$request_uri  计数并输出哪?
貌似这样瞎整也不好   有输出这样我就能理解点了
求带
回复

使用道具 举报

30

主题

583

回帖

1276

积分

金牌会员

积分
1276
发表于 2013-5-24 16:53:35 | 显示全部楼层

smyz 发表于 2013-5-24 17:45



3r/s 是小了些
$request_uri  是当前请求url
$binary_remote_addr 是客户端地址

嗯 我再多看看文档 多学学
回复

使用道具 举报

30

主题

583

回帖

1276

积分

金牌会员

积分
1276
发表于 2013-5-24 16:54:20 | 显示全部楼层
本帖最后由 Zeraba 于 2013-5-24 19:12 编辑

lazyzhu 发表于 2013-5-24 18:36



区别大了

一个页面有5个图片,假设访问时图片同时加载


对了 虽然这两行 limit_req2_zone 在http段里  img php *  超过3r/s 都会被判定到
但是
在vhost的conf里  我只在php段加了 limit_req2 zone  那这样是不是只影响php?
回复

使用道具 举报

542

主题

1万

回帖

2万

积分

论坛元老

积分
22390
发表于 2013-5-24 17:45:28 | 显示全部楼层
本帖最后由 lazyzhu 于 2013-5-24 19:40 编辑

Zeraba 发表于 2013-5-24 19:05



嗯 是没懂 $binary_remote_addr 和 $request_uri
举个栗子
一个页面 如果html有10个


$binary_remote_addr是客户端IP,每个请求都一样,所以相当于9r/s
$request_uri是被请求链接,供9个,每个都是1r/s
$binary_remote_addr $request_uri 如果放在一起,就是每个IP的请求

$request_uri 和 $uri 有区别
比如三个$request_uri
http://lazyzhu.com/123456.html
http://lazyzhu.com/123456.html?q=1
http://lazyzhu.com/123456.html?q=2
其$uri都是http://lazyzhu.com/123456.html
所以可以看出$request_uri 更具体




所以最佳方案可以设置这样三条

#  同一链接的请求限制在50次/秒,防止多IP的CC
limit_req2_zone $request_uri zone=one:3m rate=50r/s;
# 同一IP最多同时20个请求,保证正常的浏览要求
limit_req2_zone $binary_remote_addr zone=two:3m rate=20r/s;
#  同一IP相同的请求限制在3次/秒,防止单IP的CC
limit_req2_zone $binary_remote_addr $request_uri zone=three:3m rate=3r/s;


上面参数需根据实际情况调节




回复

使用道具 举报

152

主题

140

回帖

778

积分

高级会员

积分
778
发表于 2013-5-24 17:22:00 | 显示全部楼层
jjabc,我的心在等待,永远在等待。
回复

使用道具 举报

0

主题

1

回帖

4

积分

新手上路

积分
4
发表于 2013-5-24 18:36:08 | 显示全部楼层

lazyzhu 发表于 2013-5-24 19:28



$binary_remote_addr是客户端IP,每个请求都一样,所以相当于9r/s
$request_uri是被请求链接,供9个,每 ...

嗯 谢谢啊

#  规则 one 所有的ip发起的请求数(包括参数)超过50/秒。可防止多IP的CC
limit_req2_zone $request_uri zone=one:3m rate=50r/s;
# 规则 two 同一IP最多同时发起20个请求,保证正常的浏览要求。可防止过多请求)
limit_req2_zone $binary_remote_addr zone=two:3m rate=20r/s;
#  规则three 同一IP发起的请求(包括参数)在3次/秒。可防止单IP的CC
limit_req2_zone $binary_remote_addr $request_uri zone=three:3m rate=3r/s;

我原来的参数
limit_req2_zone $binary_remote_addr $uri zone=one:3m rate=3r/s;
limit_req2_zone $binary_remote_addr $request_uri zone=two:3m rate=3r/s

应该都是同一ip发起的请求了 就是有参数和没参数的区别而已了  设置的很差
你给的好很多啊

再然后只要在vhost的配置中加入
three rewrite mjj.html
two retrun 502
one return 400
就挺好了?





对了
three rewrite mjj.html
two retrun 502
one return 400
这三个能设置时效吗?  return 400  30s 之类的
月妹妹博客 和 你之前loc 都提到用lua写?

有栗子吃么?模块越来越多了 支持个
回复

使用道具 举报

47

主题

918

回帖

1999

积分

金牌会员

积分
1999
发表于 2013-5-24 17:45:00 | 显示全部楼层
limit_req2_zone $binary_remote_addr $request_uri zone=two:3m rate=3r/s
这个貌似有点不科学,我设置为8r/s,axel 开 5个线程都被命中了,好奇怪
回复

使用道具 举报

20

主题

3090

回帖

6284

积分

论坛元老

积分
6284
发表于 2013-5-24 19:03:43 | 显示全部楼层
支持咯~
回复

使用道具 举报

93

主题

937

回帖

2197

积分

金牌会员

积分
2197
发表于 2013-5-24 18:36:00 | 显示全部楼层
模块下载失败:limit_req2_nginx_module-1.0
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Discuz! X

GMT+8, 2025-1-22 15:03 , Processed in 0.021791 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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