网站压力测试及CC防御

前言:

建站总会遇到ddos以及cc攻击,本文利用测压工具:webBenchmark,来模拟压力测试,并使用cloudflare或宝塔(aapanel)进行防护

无不良引导,随意攻击他人是违法行为,可能导致服务器被举报封禁,后果自负

一、webBenchmark测压演示

安装webBenchmark:

wget https://github.com/maintell/webBenchmark/releases/download/0.5/webBenchmark_linux_x64

chmod +x webBenchmark_linux_x64

 

开始测压:

官网命令
./webBenchmark_linux_x64 -c [COUNT] -s [URL] -r [REFERER]

-c int
      concurrent routines for download (default 16)
      下载线程数,默认16线程
-r string
      referer url
      从哪里跳转到该网站,这个主要针对设置了防盗链的资源
-s string
      target url (default "https://baidu.com")
      压力测试目标网址
-i string
      custom ip address for that domain, multiple addresses automatically will be assigned randomly
      网站IP,指定网站IP即使套了CDN,数据包也不会经过CDN而是直接到源站
-H http header pattern
      http header pattern, use Random with number prefix will generate random string, same key will be overwritten
-f string
      randomized X-Forwarded-For and X-Real-IP address
-p string
      post content

我以演示网站”dd.tanglu.cf”为例,测试该网站下最大的一个2MB小文件”http://dd.tanglu.cf/1.png

./webBenchmark_linux_x64 -c 512 -s http://dd.tanglu.cf/1.png -i 51.81.222.246

#512线程,目标IP为源站IP
#源站服务器显示有512个请求

 

因为服务器带宽小(只有100MB)所以还未打满CPU,但是带宽被打满了也造成了网站卡顿

同时30s的时间产生了7MB的nginx访问日志,继续下去可能会使机器硬盘容量不足而

image

image

image

二、防御

我暂时只会用宝塔,我不会手动配置nginx防御DDos/CC,有这方面需求的小伙伴可以google看看

1、套cloudflare防御

cloudflare可以自动防御ddos,也可以手动 设置规则 防御cc攻击

当配置了”Rate limiting rules”规则时(也就是配置CC规则),cloudflare会自动对超速的IP进行限制

cloudflare还会对doos的攻击IP发起质询检查,如果不是真实浏览器会拒绝

image

image

image

image

image

image

网站未套cdn

在应用商店搜索”nginx free firewall”,下载完成后打开即可

image

image

网站有cdn

网站有cdn的话,首先将cdn的IP加入白名单,这一步主要是避免源服务器拉黑了cdn节点 影响正常用户访问

image

套了cdn防cc可以在cdn设置请求速率限制,也可以继续使用 nginx free firewal 插件

如果在源服务器使用插件,就需要让nginx记录的IP为访客IP 而不是cdn的IP

#在nginx的http块中加入下面两行即可实现记录访客IP

set_real_ip_from 0.0.0.0/0;
real_ip_header X-Forwarded-For;

#然后重启nginx更新配置

 

image

这样插件就不会拦截cdn的IP而是拦截某个访客的IP

image

3、国内CDN利用规则防御

国内cdn带有速率限制规则的厂家很少,aliyun的WAF也不免费,这里我用的 多吉云 ,他家默认是腾讯的cdn

官方教程:https://docs.dogecloud.com/cdn/

设置QPS:限制每个IP的每秒请求量 具体设置多少可以根据网站的文件资源,在没办法设置请求速率限制的情况下只能设置这个了

设置用量封顶限制:比如每天限制流量为2GB 这个很好的防止破产

image

设置请求速率限制:这个是最好的防CC策略,但我没有找到有这个的国内商家

转自tanglu:https://blog.tanglu.me/stop-cc/

文章版权归原作者所有或来自互联网,未经允许请勿转载。如有侵权请联系我删除,谢谢!
THE END
分享
二维码
打赏
< <上一篇
下一篇>>
文章目录
关闭
目 录