本站资源来自互联网用户收集发布,仅供用于学习和交流。如有侵权之处,请联系站长并出示版权证明以便删除,敬请谅解!(邮箱:whctwlgzs@foxmail.com)
title
广告展示页面
微信扫一扫 分享朋友圈

已有 1238 人浏览分享

[图文教程] 宝塔BT面板PHP防CC

  [复制链接]
admin (帅逼1)实名认证

积分信息:
无忧币:112752
交易币:2147480567
贡献:999999

我的勋章:

灌水之王突出贡献优秀版主荣誉管理论坛元老沙发王源码大师在线王终身成就机器王知识库土豪活跃会员最佳新人热心会员


发表于  8 小时前 | 显示全部楼层 | 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转无忧吧。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
宝塔BT面板PHP防CC

宝塔BT面板PHP防CC  3221 无忧技术吧www.92wuyou.cn

什么是CC攻击

肯定有很多小伙伴还不知道什么是CC攻击下面小编来给大家粗略的介绍下

攻击者借助代理服务器生成指向受害主机的“合法”请求,实现DDOS和伪装就叫:CC(Challe ngeCollapsar)。
大家都有这样的经历,就是在访问论坛时,如果这个论坛比较大,访问的人比较多,打开页 面的速度会比较慢,访问的人越多,论坛的页面越多,数据库压力就越大,被访问的频率也越高,占用的系统资源也就相当可观。

一个静态页面不需要服务器多少资源,甚至可以说直接从内存中读出来发给你就可以了,但是博客论坛等PHP程序就不一样了,Nginx、Apache需要运行PHP程序对.php文件进行解析。再由php到数据库中读取相关展示内容以及判断是否有读帖子的权限,显示出来——这里至少访问了2次数据库,如果数据库的数据容量有200MB大小,系统很可能就要在这200MB大小的数据空间搜索一遍,这需要多少的CPU和IO资源?如果我是查找一个关键字,那么时间更加可观,因为前面的搜索可以限定在一个很小的范围内,比如用户权限只查用户表,帖子内容只查帖子表,而且查到就可以马上停止查询,而搜索肯定会对所有的数据进行一次判断,消耗的时间是相当的大。

CC就是充分利用了这个特点,模拟多个用户(多少 线程/代理IP 就是多少用户)不停的进行访问(访问那些需要大量读数据操作,就是需要大量的时间)

这一点用一个一般的性能测试软件就可以做到大量模拟用户并发。
比如Apache Bench(ab)

如何确定你是否受到了CC攻击
1.网站访问缓慢,报503错误(nginx拒绝连接),502错误(php挂了)
2.服务器爆满 CPU 100%;
3.打不开宝塔或ssh无法连接

出现以上情况,基本上可以确诊是被CC攻击了。

宝塔BT环境优化原理

现在有很多使用宝塔免费Web防火墙来防御CC的,虽然我还没研究过它是啥原理,但是讲真它的用处真的不大,起码我自己实测用多IP压力测试时效果是不理想的。
下面将以Nginx反代PHP为例阐述本问的实现原理
1.Nnginx优化:Nginx没有过多的优化,一般Nginx都死被php拖死的。简称:扶不起来
2.宝塔中Nginx的过滤器测试效果并不理想,如果机器配置高且代理IP不多,也是可以开启“防CC攻击模块”并设置为频率100,周期60。也可以在一定程度上防止一些恶意访问(比如小学生找不到代理,就几个代理),如果打算满足一下小学生的获胜欲,请直接关掉它。
3.PHP优化:服务器宕机基本都是PHP进程太多导致的了。Nginx是个传菜的,PHP才是真正花时间吃饭的。

宝塔BT面板PHP防CC  3735 无忧技术吧www.92wuyou.cn

1.如图:简单理解,最少15个人在厂里,最多50个人同时干活,如果有35个人以上没干活就开除掉。
2.根据CPU核数设定起始进程数和最小空闲,这样可以发挥正常状态的最大优势,加快处理速度 设置为15*核数 ,即1核15进程,双核30进程。
3.根据内存设置最大进程,防止出现内存爆炸,导致fpm挂起或者mysql等其他服务挂了。设置为1G*(40-50),即1G内存40-50,2G内存80-100。
4.设置上面两项可以更有效地使用服务器。
5.如上设置并不能防止CC攻击,可以尝试下面提到的方案。
优化方案

本方案采用redis+验证码+策略防CC
采用redis高性能数据库,合理的访问策略验证并在超大攻击时开启验证码访问,让网站远离CC
1.安装redis,在宝塔软件管理找到,安装;
2.安装php redis扩展,你用哪个php就安装哪个php的扩展,别装错了;
3.在网站入口,如Wordpress的index.php 头部加入如下代码:
4.如有后台请注意,不仅index.php需要添加,在例如admin的相关登录文件中也要添加,防止CC攻击者利用后台登陆页面进行攻击

[PHP] 纯文本查看 复制代码
#CC攻击停止后会尽快解除验证码,回到正常状态
#防CC配置
$IPmax = 30; #开启验证码条件 值>=php最大进程数,适当设置更大会降低验证码触发条件,但会增大502错误几率(php挂起)
$IPfor = 60; #周期 这个值基本不用动
$IPban = 60; #扔入黑名单 60秒内访问超过60次即拉黑IP
$banTime = 3600*24; #黑名单时长 扔小黑屋时长,这种代理IP放一天感觉都少了 = =!
$ip = ip();
#连接本地的 Redis 服务
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
#拦截黑名单
if($redis->exists($ip.'ban')){
    exit('您被关进了小黑屋,么么哒!如有疑问,请联系站长');
}
#扔黑名单检测
if($redis->get($ip.'ok') >= $IPban){
    $redis->setex($ip.'ban', $banTime, '1');
}
if($redis->exists($ip.'ok')){
    $redis->incrby($ip.'ok',1); #记录IP 自增1
}else{
    $redis->setex($ip.'ok',$IPfor,1);
}
#按需开启防CC 小黑屋IP不会触发该条件,所以当一段时间以后就会解除验证码。除非攻击者换一批代理继续攻击。如此往复
if(count($redis->keys("*ok")) > $IPmax){
    #验证
    if($_COOKIE['key'] == ''){
        if($_GET['cc']){
            $key = md5($ip.$_GET['cc']);
            setcookie("key",$key);
        }
    }
    #拦截代码
    if($_COOKIE['key'] && $_COOKIE['cc'] && $_COOKIE['key'] == md5($ip.$_COOKIE['cc'])){
        #通过
    }else{
        if($_GET['cc']){
            $key = md5($ip.$_GET['cc']);
            setcookie("key",$key);
        }else{
            $cc = rand(1000,9999);
            setcookie("cc",$cc);
            #这里只是简单的构造了一下验证码,有能力可以自己更改的更安全和完美。
            echo '<!DOCTYPE html>
            <html>
            <body>
            <form action="">请输入:'.$cc.' :<input type="text" name="cc" value=""><input type="submit" value="继续访问"></form> 
            <p>访问异常,请输入验证码。</p>
            </body>
            </html>';
        }
        exit();
    }
}
function ip() {
    if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
        $ip = getenv('HTTP_CLIENT_IP');
    } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
        $ip = getenv('HTTP_X_FORWARDED_FOR');
    } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
        $ip = getenv('REMOTE_ADDR');
    } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
        $ip = $_SERVER['REMOTE_ADDR'];
    }
    $res =  preg_match ( '/[\d\.]{7,15}/', $ip, $matches ) ? $matches [0] : '';
    return $res;
}

整个教程就完啦~,赶快找个CC软件C自己一波试下吧~



无忧技术吧-免责声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关。一切关于该内容及资源商业行为与www.whct.net无关。
2、本站提供的一切资源内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。
3、本站信息来自第三方用户,非本站自制,版权归原作者享有,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
4、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
5、无忧技术吧(www.whct.net)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。无忧技术吧不承担任何因为技术滥用所产生的连带责任。无忧技术吧内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或QQ与我们联系处理。
6、如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵犯你版权的,请邮件与我们联系删除(邮箱:whctwlgzs@foxmail.com),本站将立即改正。
联系方式:
站长邮箱:whctwlgzs@foxmail.com
站长QQ:4040068
无忧论坛关注编程安全和移动安全、程序调试与病毒分析的前沿领域,平台本身资源丰富,作为一个资源平台,为程序员及广大编程爱好者提供了一个氛围良好的交流与合作空间。
书韵逸心魂 (帅逼1149)

积分信息:
无忧币:46
交易币:6
贡献:0

发表于 8 小时前 | 显示全部楼层
沙发!沙发!
无忧论坛关注编程安全和移动安全、程序调试与病毒分析的前沿领域,平台本身资源丰富,作为一个资源平台,为程序员及广大编程爱好者提供了一个氛围良好的交流与合作空间。
回复

使用道具 举报

琴心剑胆 (帅逼1014)

积分信息:
无忧币:32
交易币:8
贡献:0

发表于 8 小时前 | 显示全部楼层
学习了,谢谢分享、、、
无忧论坛关注编程安全和移动安全、程序调试与病毒分析的前沿领域,平台本身资源丰富,作为一个资源平台,为程序员及广大编程爱好者提供了一个氛围良好的交流与合作空间。
回复

使用道具 举报

逸韵逸逸情 (帅逼1214)

积分信息:
无忧币:45
交易币:3
贡献:0

发表于 8 小时前 | 显示全部楼层
感谢分享
无忧论坛关注编程安全和移动安全、程序调试与病毒分析的前沿领域,平台本身资源丰富,作为一个资源平台,为程序员及广大编程爱好者提供了一个氛围良好的交流与合作空间。
回复

使用道具 举报

画境逸致 (帅逼1116)

积分信息:
无忧币:50
交易币:2
贡献:0

发表于 8 小时前 | 显示全部楼层
谢谢楼主
无忧论坛关注编程安全和移动安全、程序调试与病毒分析的前沿领域,平台本身资源丰富,作为一个资源平台,为程序员及广大编程爱好者提供了一个氛围良好的交流与合作空间。
回复

使用道具 举报

雅情逸梦香 (帅逼1161)

积分信息:
无忧币:51
交易币:3
贡献:0

发表于 8 小时前 | 显示全部楼层
帮你顶下哈
无忧论坛关注编程安全和移动安全、程序调试与病毒分析的前沿领域,平台本身资源丰富,作为一个资源平台,为程序员及广大编程爱好者提供了一个氛围良好的交流与合作空间。
回复

使用道具 举报

雅情幽思 (帅逼1121)

积分信息:
无忧币:40
交易币:2
贡献:0

发表于 8 小时前 | 显示全部楼层
帮你顶下哈
无忧论坛关注编程安全和移动安全、程序调试与病毒分析的前沿领域,平台本身资源丰富,作为一个资源平台,为程序员及广大编程爱好者提供了一个氛围良好的交流与合作空间。
回复

使用道具 举报

秋菊傲霜 (帅逼1013)

积分信息:
无忧币:42
交易币:3
贡献:0

发表于 8 小时前 | 显示全部楼层
6666666
无忧论坛关注编程安全和移动安全、程序调试与病毒分析的前沿领域,平台本身资源丰富,作为一个资源平台,为程序员及广大编程爱好者提供了一个氛围良好的交流与合作空间。
回复

使用道具 举报

书海拾贝 (帅逼1101)

积分信息:
无忧币:52
交易币:3
贡献:0

发表于 8 小时前 | 显示全部楼层
不错不错,楼主您辛苦了。。。
无忧论坛关注编程安全和移动安全、程序调试与病毒分析的前沿领域,平台本身资源丰富,作为一个资源平台,为程序员及广大编程爱好者提供了一个氛围良好的交流与合作空间。
回复

使用道具 举报

雅趣横生 (帅逼1034)

积分信息:
无忧币:51
交易币:2
贡献:0

发表于 7 小时前 | 显示全部楼层
66666666666666666
无忧论坛关注编程安全和移动安全、程序调试与病毒分析的前沿领域,平台本身资源丰富,作为一个资源平台,为程序员及广大编程爱好者提供了一个氛围良好的交流与合作空间。
回复

使用道具 举报

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

本版积分规则

×本站发帖友情提示
1、注册用户在本社区发表、转载的任何作品仅代表其个人观点,不代表本社区认同其观点。
2、如果存在违反国家相关法律、法规、条例的行为,我们有权在不经作者准许的情况下删除其在本论坛所发表的文章。
3、所有网友不要盗用有明确版权要求的作品,转贴请注明来源,否则文责自负。
4、本社区保护注册用户个人资料,但是在自身原因导致个人资料泄露、丢失、被盗或篡改,本论坛概不负责,也不承担相应法律责任。

0

关注

6

粉丝

834

主题
  • 联系我们
  • 邮箱:4040068@qq.com
  • 官方交流群:805881393
  • QQ客服 4040068
  • 工作时间:周一至周五(早上9点至下午5点)
  • 微信公众平台

  • 扫描访问手机版

关闭

站长推荐上一条 /2 下一条

热烈推荐

QQ|Archiver|手机版|小黑屋|无忧技术吧 ( 鄂ICP备2024050280号-2 )

GMT+8, 2025-7-4 18:24 , Processed in 0.260010 second(s), 68 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.