网站压力测试及CC防御
2023-04-01

本文链接:https://blog.tanglu.me/stop-cc

前言:

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

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

一、webBenchmark测压演示

安装webBenchmark:

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

chmod +x webBenchmark_linux_x64

开始测压:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
官网命令
./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

1
2
3
4
./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

2、宝塔/aapanel设置防止CC

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

image

image

3、国内CDN利用规则防御

暂时没有备案域名,等5月份域名备案了再演示