全球主机交流论坛

标题: AMH面板防CC攻击模块已发布。 [打印本页]

作者: smyz    时间: 2013-5-24 14:37
标题: AMH面板防CC攻击模块已发布。

适用版本 AMH3.1 & AMH3.2
-----------------------------------------
模块版本名称: limit_req2_nginx_module-1.0
模块发布时间: 2013-05-22
模块描述:
nginx模块系列 - nginx限制请求处理频率的模块。典型应用:限制来自单个IP地址的请求处理频率。 限制的方法是通过一种“漏桶”的方法——固定每秒处理的请求数,推迟过多的请求处理。


模块脚本开发者:Zeraba
开发者网站:http://www.lsanday.com/

可以在面板上面搜索 limit_req2_nginx_module-1.0 下载安装了。
http://amysql.com/bbs/post-408-1-1.htm


------------

测试:
http://myloveisyourlove.com/t.php

如看到phpinfo或502(php-fpm已停止)为正常。
提示或是400状态的话就是禁止了。


作者: 爱国者捣蛋    时间: 2013-5-24 14:38
支持妹纸~
作者: lovettww    时间: 2013-5-24 14:44
支持姐姐。。。
作者: yohu    时间: 2013-5-24 14:45
可以加上openresty的那个lua防cc,双管齐下,效果更好
http://www.centos.bz/2012/12/openresty-nginx-block-cc-attack-deploy/
作者: skwinx    时间: 2013-5-24 14:45
妹纸,你面板掉了。
作者: 阿门    时间: 2013-5-24 14:46
支持妹纸~
作者: 木叶    时间: 2013-5-24 14:49
提示: 作者被禁止或删除 内容自动屏蔽
作者: 过客    时间: 2013-5-24 15:00
AMH面板是基于Nginx+Mysql+PHP的开源轻量主机面板系统

开发者性别、历史不详,人称姐姐
作者: yjlml    时间: 2013-5-24 15:01
围观
作者: 身无分文的5毛钱    时间: 2013-5-24 15:04
妹纸,偷偷传我JJabc
作者: 违法主机    时间: 2013-5-24 15:20
快到碗里来  你才到碗里去
作者: vagaa    时间: 2013-5-24 15:23
刷新的太快了,休息下吧

如果你看到这个页面,可能是F5键出现了问题,或者其他原因导致。
网站开启了防恶意刷新模块,请勿恶意刷新。
作者: apache    时间: 2013-5-24 15:31
支持 amh
作者: Zeraba    时间: 2013-5-24 15:36
yohu 发表于 2013-5-24 14:45
可以加上openresty的那个lua防cc,双管齐下,效果更好
http://www.centos.bz/2012/12/openresty-nginx-bloc ...

等以后学点lua再更新下  其实应该叫@Lazyzhu 写的  lua+limit_req2_nginx_module  月妹妹博客其实也有
lua加个时效 的确会好些
作者: 花雪月静    时间: 2013-5-24 15:39
支持
作者: Zeraba    时间: 2013-5-24 15:51
过客 发表于 2013-5-24 15:00
AMH面板是基于Nginx+Mysql+PHP的开源轻量主机面板系统

开发者性别、历史不详,人称姐姐 ...

是啊 我不知道 你知道吗? 话说amysql论坛最近amysql一直在发言   loc是smyz妹子  什么情况
作者: 漫步者    时间: 2013-5-24 16:00
入会费然后
作者: 冰剑    时间: 2013-5-24 16:05

快到碗里来
作者: smyz    时间: 2013-5-24 16:40
谢谢各位支持

也期待Zeraba新版本。
作者: bnb345    时间: 2013-5-24 16:53
妹纸,你面板掉了。
作者: lazyzhu    时间: 2013-5-24 17:22
$binary_remote_addr 规则 3r/s 太小了,遇到页面含很多图片就会出错
最好是$request_uri 严格限制,$binary_remote_addr 宽松规则
并且配置时$binary_remote_addr在上,$request_uri在下
作者: smyz    时间: 2013-5-24 17:45
lazyzhu 发表于 2013-5-24 17:22
$binary_remote_addr 规则 3r/s 太小了,遇到页面含很多图片就会出错
最好是$request_uri 严格限制,$binar ...


3r/s 是小了些
$request_uri  是当前请求url
$binary_remote_addr 是客户端地址
现在那两条规则区别不大……
@Zeraba 发了下个版本再改改好拉
作者: lazyzhu    时间: 2013-5-24 18:36
本帖最后由 lazyzhu 于 2013-5-24 18:38 编辑
smyz 发表于 2013-5-24 17:45
3r/s 是小了些
$request_uri  是当前请求url
$binary_remote_addr 是客户端地址




区别大了

一个页面有5个图片,假设访问时图片同时加载
此时$binary_remote_addr是6,$request_uri都是1
$binary_remote_addr的规则就会导致后面图片加载不了

另外Zeraba肯定没动参数的区别


作者: smyz    时间: 2013-5-24 19:03
lazyzhu 发表于 2013-5-24 18:36
区别大了

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

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

作者: Zeraba    时间: 2013-5-24 19:05
lazyzhu 发表于 2013-5-24 18:36
区别大了

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

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

怎么才能对$binary_remote_addr和$request_uri  计数并输出哪?
貌似这样瞎整也不好   有输出这样我就能理解点了
求带
作者: Zeraba    时间: 2013-5-24 19:08
smyz 发表于 2013-5-24 17:45
3r/s 是小了些
$request_uri  是当前请求url
$binary_remote_addr 是客户端地址

嗯 我再多看看文档 多学学
作者: Zeraba    时间: 2013-5-24 19:10
本帖最后由 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?
作者: lazyzhu    时间: 2013-5-24 19: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;


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





作者: send    时间: 2013-5-24 19:29
jjabc,我的心在等待,永远在等待。
作者: Zeraba    时间: 2013-5-24 20: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写?

有栗子吃么?
作者: sdgl212    时间: 2013-5-24 22:29
模块越来越多了 支持个
作者: yohu    时间: 2013-5-25 00:58
limit_req2_zone $binary_remote_addr $request_uri zone=two:3m rate=3r/s
这个貌似有点不科学,我设置为8r/s,axel 开 5个线程都被命中了,好奇怪
作者: mapleaf    时间: 2013-5-25 11:56
支持咯~
作者: wpyuel    时间: 2013-5-31 21:12
模块下载失败:limit_req2_nginx_module-1.0
作者: smyz    时间: 2013-5-31 21:14
wpyuel 发表于 2013-5-31 21:12
模块下载失败:limit_req2_nginx_module-1.0

目前已是1.2版本了。看论坛有更新。

limit_req2_nginx_module-1.2




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