设置背景图片
模块透明度调整:
宝塔LNMP环境防CC攻击独家教程
首页 > 网站代码 作者:苍蓝 2018年10月29日 热度:84 字号: 评论: 1 百度未收录
时间:2018-10-29 22:18 热度:84°  评论:1 条 

heike.jpg

本教程只防CC攻击,不能防DDOS,防DDOS请麻溜买高防秒解。
实测:1核1G内存撑住700多代理IP持续攻击,屹立不倒,且CPU在45%左右徘徊。
本教程借助根据CPU/内存大小 优化LNMP环境配置,且使用了类似cfCDN的防CC攻击特点并做了一些优化

什么是CC攻击?
以为我要跟你讲?自己不会百度搜索
你是否受到了CC攻击
1.网站访问缓慢,报503错误(nginx拒绝连接),502错误(php挂逼)
2.服务器CPU 100%;
3.基本上确诊被C了。
LNMP环境优化
1.nginx优化:nginx没有过多的优化,一般nginx都死被php拖死的。简称:扶不起来

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

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

宝塔LNMP环境防CC攻击独家教程

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.在网站入口,如emlog的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 = 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;
}


转自羊毛党之家
正文到此结束
-----------------------------------------------------------------------------------------------------------------------------------------------------
苍蓝部落
-----------------------------------------------------------------------------------------------------------------------------------------------------

热门推荐

-----------------------------------------------------------------------------------------------------------------------------------------------------
二维码加载中...
版权声明:若无特殊注明,本文皆为《 苍蓝 》原创,转载请保留文章出处。
本文链接:宝塔LNMP环境防CC攻击独家教程 https://www.canglan.xin/post-23.html
本文基于《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权

发表吐槽

你肿么看?

你还可以输入 250 / 250 个字

嘻嘻 大笑 可怜 吃惊 害羞 调皮 鄙视 示爱 大哭 开心 偷笑 嘘 奸笑 委屈 抱抱 愤怒 思考 日了狗

已有1条吐槽

苍蓝 沙发 2018-11-03 22:47

签到成功!签到时间:下午10:47:33,每日打卡,生活更精彩哦~
 Windows 7 x64   Google Chrome 69.0.3497.100

Copyright © 2017-2018 苍蓝部落
自豪的采用
 5.3.1 驱动  主题莫小奈定制版V3.3   |
   加载速度:202.01ms  查询数据库:19
ICP备案 | 浙公网安备案| 互联网举报中心| 百度统计 | 站点地图 | sitemap


文章中出现的商标及图像版权属于其合法持有人,只供传递信息之用,非商务用途。互动交流时请遵守理性,宽容,换位思考的原则。

360安全检测 upyun网站联盟 腾讯云安全认证 知道创宇云安全
苍蓝