在两个月前就发过《防范小量攻击》和圣诞礼物《防范 CC 脚本升级版》,但是效果似乎不太明显
要从根本上防止的话还要看你的硬防,但是如果说缓解的话、前面两篇加上今天的这一篇应该很完善了。
首先回顾一下上两次的内容:
1、自动 ban 恶意 IP 的脚本
2、利用软件:ddos-Deflat
3、适用于 WordPress 的脚本
4、一些高防的 CDN
5、脚本升级版,自动化安装
今天讲的是基于 Nginx 的缓解攻击策略,就是限制并发和 UA 访问。
一、限制单 IP 访问者并发数量:
修改 nginx.conf,在其中合适的地方加入如下内容:
limit_conn_zone $binary_remote_addr zone=perip:10m;
如下图:
然后修改你的站点配置,在其中 server 段加入如下内容:
limit_conn perip 10; limit_rate_after 1m; limit_rate 300k;
简单来说就是加到你 listen 80; 这句的下面,这里的 10 就是单 IP 的并发数量,1M 和 300K 是在 1M 之前不限速、1M 以上就显示每个并发 100K 。然后检查一下 nginx 配置是否有问题:
/usr/local/nginx/sbin/nginx -t
如果如下图就说明没问题:
如果有问题就自行检查一下,没问题就重载 nginx 即可:
/etc/init.d/nginx reload
二、限制个别 UA 进行访问:
这个相对简单,直接修改你的站点配置、在其中加入如下:
if ($request_method !~ ^(GET|HEAD|POST)$ ) { return 403; } if ($http_user_agent ~* (Bench|bench|Apache|apache) ) { return 444; }
这里屏蔽了 GET、HEAD、POST 等请求方式,同时禁止部分 UA 访问(返回444),更多的 UA 可以自己添加到如上后重载 nginx 即可生效使用、你可以顺便测试自己是否成功 。。
小结
配合前几篇文章来说,可以有效阻止多并发的而已访问。但是还是只能防住一些压力测试党 ...
目前有19条回应
Comment
Trackback
Loading ....
- 本篇文章没有Trackback
good 收藏
我是来水经验的! 😡
这个有用,回头我也测试。
最近在玩vps,学习学习
好像來太晚了 ➡
要真 D 什么都防不了。
集群硬防 。。。
CC也烦恼,呵呵
唉,主要是防那些压力测试的 。。。现在很多新手喜欢把压力测试软件当做是 DDOS / CC 软件,虽然很天真但是会让很多人很烦 。。
欢迎来搞吗
@神父: 😎 ,你那无法获取真实 IP 的,真有人刷的话你就糟糕了 。。
@Tomas: 欢迎来搞,我连IPTABLES都没开
@王琪亮: 😎 iPtables 也不会自动防御的, 🙁 况且真的来一场攻击的话 ds 就封你机子了
学习了,虽然完全看不懂
估计你现在用的不是 Nginx 所以不太清楚我讲的是什么,不过 Nginx 真的是一款不错的服务器软件呢
@Tomas: 也只是一个逼格高的东西。
@Tomas: 我有在運行中的一臺LNMP環境VPS,正考慮LLTP(手機用)
limit_conn_zone 不是要添加模块才能用的么?现在默认支持了?
看了一下那还不如用senginx呢,还能轻微防御ddos
默认就能用 。。好像是 nginx 1.18 之后就默认可以,网上有的教程都好老、逛了逛 vpser 的论坛才发现的 。。