lala.im:Debian10快速配置verynginx/防CC攻击

運維技術·lala.im · 2019-09-06 · 123 人浏览

原文地址:https://lala.im/6314.html,請支持原作者!該處僅作轉載。

最近总是有个傻逼东西喜欢CC本博客,你说你个脑残玩意C个1次2次就算了吧,CNM每天来几次?(你妈一天要高潮几次?)我都懒得屌你知道吗?小老弟。。
你肯定能看到这篇文章,既然你妈这么喜欢高潮,麻烦让你妈今晚上把批洗好在床上等我。
言归正传,正好前两天也有人问我怎么有效防止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的那些订阅频道,应该是不能正常收到推送了。
所以建议这个功能仅在被攻击的时候打开。

運維技術 Nginx lala.im
Theme Jasmine by Kent Liao