宝塔bt面板优化补充以及防CC优化方案

老被cc的福利来了,看着群里一些朋友天天被攻击,小编也遭殃,坐不住了,直接上教程。

本教程只防CC攻击,不能防DDOS,防DDOS请麻溜买高防秒解。

酷番云东北节点免费提供20G防御,让你安心运行。

实测:1核1G内存撑住700多代理IP持续攻击,屹立不倒,且CPU在45%左右徘徊。

本教程借助根据CPU/内存大小 优化LNMP环境配置,且使用了类似cfCDN的防CC攻击特点并做了一些优化

 

 

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

攻击者借助代理服务器生成指向受害主机的合法请求,实现DDOS和伪装就叫:CC(ChallengeCollapsar)。
CC主要是用来攻击页面的。大家都有这样的经历,就是在访问论坛时,如果这个论坛比较大,访问的人比较多,打开页面的速度会比较慢,访问的人越多,论坛的页面越多,数据库压力就越大,被访问的频率也越高,占用的系统资源也就相当可观。
一个静态页面不需要服务器多少资源,甚至可以说直接从内存中读出来发给你就可以了,但是论坛就不一样了,我看一个帖子,系统需要到数据库中判断我是否有读帖子的权限,如果有,就读出帖子里面的内容,显示出来——这里至少访问了2次数据库,如果数据库的数据容量有200MB大小,系统很可能就要在这200MB大小的数据空间搜索一遍,这需要多少的CPU资源和时间?如果我是查找一个关键字,那么时间更加可观,因为前面的搜索可以限定在一个很小的范围内,比如用户权限只查用户表,帖子内容只查帖子表,而且查到就可以马上停止查询,而搜索肯定会对所有的数据进行一次判断,消耗的时间是相当的大。
CC就是充分利用了这个特点,模拟多个用户(多少线程就是多少用户)不停的进行访问(访问那些需要大量数据操作,就是需要大量CPU时间的页面).这一点用一个一般的性能测试软件就可以做到大量模拟用户并发。

 

你是否受到了CC攻击

1.网站访问缓慢,报503错误(nginx拒绝连接),502错误(php挂逼)

2.服务器CPU 100%;

基本上确诊被C了。

宝塔BT环境优化下面以Nginx为例

1.nginx优化:nginx没有过多的优化,一般nginx都死被php拖死的。简称:扶不起来

2.宝塔中nginx的过滤器测试效果并不理想,如果各位不打算回复的话(不打算看接下来的核心内容)可以开启“防CC攻击模块”并设置为频率100,周期60。能有效防止一些恶意访问,比如小学生找不到代理,就几个代理。如果打算支持一下,请直接关掉它。

3.php优化:服务器挂壁基本都是php进程太多导致的了。nginx是个传菜的,php就是真正花时间吃饭的。

https://upload.kcloudidc.com/upload/2018-11-3/j30ec09vq3e.jpg

4.如图:简单理解,最少15个人在厂里,最多50个人同时干活,如果有35个人以上没干活就开除掉。

5.根据CPU核数设定起始进程数和最小空闲,这样可以发挥正常状态的最大优势,加快处理速度 设置为15*核数 ,即1核15进程,双核30进程。

6.根据内存设置最大进程,防止出现内存爆炸,导致fpm挂起或者mysql等其他服务挂逼。设置为1G*(40-50),即1G内存40-50,2G内存80-100。

7.设置上面两项可以更有效率的使用服务器。

8.如上设置并不能防止CC攻击,但是为我接下来需要说的提供了前提。

 

redis + 验证码 + 策略 防CC

采用redis高性能数据库,合理的访问策略验证并在超大攻击时开启验证码访问。让网站远离CC

1.安装redis,在宝塔软件管理找到,安装;

2.安装php redis扩展,你用哪个php就安装哪个php的扩展,别装错了;

3.在网站入口,如Wordpress的index.php 头部加入如下代码:

header('Content-Type: text/html; charset=UTF-8');//emlog原有代码,复制下列代码放在下面//CC攻击停止后会尽快解除验证码,回到正常状态//防CC配置
$IPmax =30;//开启验证码条件 值>=php最大进程数,适当设置更大会降低验证码触发条件,但会增大502错误几率(php挂起) 
 
$IPfor =60;//周期 这个值基本不用动
 
$IPban =60;//扔入黑名单 60秒内访问超过60次即拉黑IP
 
$banTime =3600*24;//黑名单时长 扔小黑屋时长,这种代理IP放一天感觉都少了 = =!
 
$ip = ip();//连接本地的 Redis 服务
$redis =newRedis();
$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;}

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

5.转载说明出处酷番云新闻资讯门户-云计算、云主机、运维等领域最新资讯

图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/82.html

(0)
上一篇2018年11月3日 14:46
下一篇 2018年11月5日 02:32

相关推荐

  • tk域名被占用,如何才能申请到QQ域名邮箱?

    在数字化浪潮席卷全球的今天,无论是个人品牌塑造、企业形象建设,还是创意项目的落地,一个独特的网络身份都至关重要,这个身份的核心,往往始于一个域名,在探讨域名选择的过程中,我们经常会接触到诸如“tk域名”这样的免费选项,也会需要“qq域名邮箱”这样的专业工具来提升沟通效率,而最常遇到的拦路虎,莫过于心仪的“域名已……

    2025年10月23日
    050
  • www究竟是不是域名?它和网址有何区别?

    在互联网的世界中,域名是我们访问网站的重要入口,www是否是一个域名呢?下面我们将对这个话题进行深入探讨,什么是域名?定义域名(Domain Name)是互联网上用于识别和定位计算机的字符标识,它由一串用点分隔的名字组成,通常与IP地址相对应,使得用户可以通过易于记忆的名称来访问网络上的资源,域名的作用便于记忆……

    2025年11月25日
    030
  • 虚拟主机解析域名时,究竟需要遵循哪些步骤和注意事项?

    域名解析概述域名解析是互联网中一项基础且重要的服务,它将用户易于记忆的域名转换为计算机能够识别的IP地址,在虚拟主机服务中,域名解析是连接用户访问网站的关键步骤,以下将详细介绍虚拟主机如何解析域名,域名解析流程域名注册用户需要在域名注册商处注册一个域名,注册完成后,用户将获得一个域名和对应的域名解析记录,获取虚……

    2025年11月25日
    030
  • 如何有效进行域名绑定内网域名操作,确保网络内部访问顺畅?

    实现内外网访问的无缝连接什么是域名绑定内网域名?域名绑定内网域名,是指将一个外网可访问的域名与一个内网域名进行绑定,使得外网用户可以通过访问这个外网域名来访问内网中的资源,这种绑定方式通常用于企业内部网站、数据库、文件服务器等内网资源的访问,域名绑定内网域名的优势提高访问效率通过域名绑定内网域名,用户无需记住复……

    2025年11月10日
    050

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注