Debian10快速配置verynginx/防CC攻击-荒岛

Debian10快速配置verynginx/防CC攻击-荒岛

言归正传,正好前两天也有人问我怎么有效防止CC攻击,这里介绍一个最简单/最有效的方法:使用verynginx。

Debian10首先最简单的方法用APT装一下Nginx和Git:

apt -y install nginx git

然后装一下这个LUA模块:

apt -y install libnginx-mod-http-lua

接下来拉取verynginx的项目文件/安装:

git clone https://github.com/alexazhou/VeryNginx.git  cd VeryNginx  python install.py install verynginx

然后编辑Nginx的主配置文件:

nano /etc/nginx/nginx.conf

引用下面的配置:

include /opt/verynginx/verynginx/nginx_conf/in_external.conf; # http配置块外部  include /opt/verynginx/verynginx/nginx_conf/in_http_block.conf; # http配置块内部

编辑nginx默认站点配置文件:

nano /etc/nginx/sites-enabled/default

server配置块内部引用:

include /opt/verynginx/verynginx/nginx_conf/in_server_block.conf;

准确点说是每个server配置块内都需要引用in_server_block.conf,例如你在conf.d内还有几个vhost,那么这些都需要引用in_server_block.conf。

之后测试配置看有没有报错:

nginx -t

没有的话,重启一下Nginx就OK了:

systemctl restart nginx

访问服务器的公网IP+/verynginx/index.html (默认的管理员账号密码:verynginx)

接下来我自己测试下防护CC的能力,我测试的方法:

我临时开了一台小鸡并搭建了一个WordPress博客,并且没有开启verynginx的浏览器验证功能,接着我找了一堆代理IP+一个CC工具(支持UA随机变换)

然后我C我自己,从verynginx的WEB页面来看,TCP连接数700左右,每秒请求最高峰接近800r/s:

此时top看一下系统负载和进程使用资源的情况,33的负载,可以说这台小鸡已经挂逼了,网站肯定也是打不开的:

接下来我开启了verynginx的浏览器验证功能,使用JS的方式进行验证,因为有些高级点的CC工具支持Cookie:

配置好了之后别忘记了保存,要确保这里是Enable的状态:

接下来我再次C我自己(我C我自己),可以看到TCP连接数接近800:

但此时的系统负载呢?除了Nginx要处理大量的TCP连接占用了少量CPU外,系统运行依旧流畅,网站打开不受影响:

这样基本可以防护大部分的CC攻击,但同时也有一些弊端:

1.搜索引擎的蜘蛛无法通过这个验证就无法抓取你的网站,对收录有影响。

2.各种RSS订阅和机器人,例如Telegram的那些订阅频道,应该是不能正常收到推送了。

所以建议这个功能仅在被攻击的时候打开。