|教程分享|宝塔LNMP环境 防CC独家教程

tengxunyun cera

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

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

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

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

什么是CC攻击

以为我要跟你讲?自己不会百度搜索

你是否受到了CC攻击

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

2.服务器CPU 100%;

基本上确诊被C了。

LNMP环境优化

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

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

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

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;
}

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

5.有什么不懂的问题提出,我会在回复里给大家统一解释

cera cloudiplc

相关推荐

宝塔的竞争者来了|护卫神·主机大师|Linux

经过护卫神开发部七个月的不懈努力, Linux一键安装LAMP、LNMP的软件“护卫神·主机大师(Linux)”终于和大家见面啦! 软件永久免费,欢迎大家使用! 护卫神·主机大师(Linux)支持一键安装:Apache/Nginx+PHP+MySQL+PhpMyAdmin+FTP+Redis+主机系统+伪静态。 在线开设网站和MySQL,支持多版本PHP、子目录绑定、SSL证书、运行目录设置、安全检测、伪静态等数十项管理功能。 我们将安排专人团队,专项负责护卫神·主机大师(Linux)升级工作,不断优化性能、拓展功能,让大家用得更开心。 【软件说明】 软件名称:护卫神·主机大师(Linux) 软件版本:V1.0.0 系统要求:CentOS、Ubuntu、Debian 安装方法: CentOS安装脚本: yum -y install wget && wget -O install.panel.sh http://d.hws.com/linux/master/script/install.panel.sh && bash install.panel.sh Ubuntu/Debian安装脚本: wget -O install.panel.sh http://d.hws.com/linux/master/script/install.panel.sh && sudo bash install.panel.sh 复制以上安装脚本到服务器运行,即可自动安装本系统。 请确保服务器系统是纯静的,未安装有其它的Apache/Nginx/PHP/MySQL 安装测试: 博主第一时间找了一台机器进行安装测试。截图放出: 第一步,和宝塔类似可以自定义安装路径:

宝塔通过NGINX反向代理 缓存文件搭建镜像站

location / { proxy_ssl_server_name on; expires 3d; proxy_set_header Accept-Encoding ”; root /www/wwwroot/【域名】; proxy_store on; proxy_store_access user:rw group:rw all:rw; proxy_temp_path /www/wwwroot/【域名】; if ( !-e $request_filename) { proxy_pass https://raw.githubusercontent.com; } } 可以通过上述代码在宝塔创建#反向代理#后,通过修改配置文件搭建镜像站,用来搭建#github#下载#镜像#比较方便,同时文件会在网站目录下保存,可以反向代理https网站

开启宝塔面板静态文件加速后js|css加载异常怎么办|

最近宝塔的香港节点CDN宝塔面板静态文件加速服务被DDOS攻击了。所以部分使用宝塔面板又开启了js/css加速的同学会遇到文件加载失败导致宝塔面板的样式失效。如下图:   宝塔面板js、CSS文件CDN加速失败 几个节点经常会出现异常,所以小白都有经验了。也怪宝塔树大招风,经常有小学生测试DDOS、CC攻击。 解决方法很简单,点击最下面的退出。再次登录的时候选择另外的加速节点即可。如果所有节点都失效了,那么可以选择修复面板。也就是在SSH中输入“bt”然后修复下面板。或者删除堡塔面板静态文件加速插件。 rm -rf /www/server/panel/plugin/static_cdn/ 删除脚本有风险,记得备份。建议选择修复面板。

宝塔|BT|Panel Linux|面板V6.9.0 最新开心破解版 付费功能一键安装破解脚本|详细教程 0321更新

1,推荐使用全新系统,也就是未安装任何面板的系统;具体看下面的解释; 2,使用以下一键代码进行安装破解操作;和大佬沟通交流后,2选项还有部分问题未解决,推荐选择1,全新安装; 1 wget –O crack6.9.0.sh https://loli.team/sh/crack6.9.0.sh && chmod 755 crack6.9.0.sh && bash crack6.9.0.sh 2,这里推荐大家选择1,全新自动安装;后面的就不做教程了,比较简单,傻瓜式操作; 3,1选项安装完成后,安装防火墙插件,选择5选项修复防火墙,然后选择6修复apche nginx ssl无法启动报错;   警告:防止程序异常,请勿在正式环境下运行。谨记,如需正式环境下运行,请备份!数据无价!   开心版转免费版 不想使用开心版的,直接使用官方脚本转成免费版本 1 wget –O update.sh http://download.bt.cn/install/update.sh && bash update.sh free

微信扫一扫,分享到朋友圈

|教程分享|宝塔LNMP环境 防CC独家教程