前言
本示例仅做测试使用,进行学习交流,请自觉遵守法律法规!
本文中将 Web 应用防火墙简称为 WAF
问题描述
想要通过 WAF 检测跟拦截 CC 攻击请求,如何配置。
问题分析
CC 攻击是使用代理服务器向受害服务器发送大量貌似合法的请求,实现伪装,经常用于攻击页面。使用WAF的CC防护可根据网络访问 IP、Session 等各种 HTTP 请求对象进行请求限制,缓解 CC 攻击对服务器的影响。
解决方案
本文在 WAF 环境搭建成功,需要防护域名的流量已经调度到 WAF 集群,通过WAF可以访问到后端服务基础上。WAF环境的搭建,您可以参考此链接。
:::warning 本文测试为模拟 CC 请求,并设置较低请求次数,来观察 CC 防护效果,并不涉及真实 CC 攻击。 :::
1、连续正常访问 WAF 防护的域名
使用curl进行测试,如下:
┌──(root)-[~/Test/waf]
└─# cat cc.sh
#!/bin/bash
for i in {1..20}
do
curl -sI shodan.xxxx.cn/sql/ >> cc.log
done
查看 cc.log 日志,其中正常返回如下:
HTTP/1.1 200 OK
Server: nginx
Date: Tue, 01 Mar 2022 02:08:21 GMT
Content-Type: text/html
Content-Length: 7933
Connection: keep-alive
Vary: Accept-Encoding
Last-Modified: Fri, 31 Oct 2014 19:10:23 GMT
ETag: "1efd-506bcbfada5c0"
Accept-Ranges: bytes
Access-Control-Allow-Origin: *
Access-Control-Request-Method: GET,POST,PUT
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: X-Custom-Heade
Vary: Accept-Encoding
查看返回的响应码为 200 的个数,如下:
┌──(root)-[~/Test/waf]
└─# grep "HTTP/1.1 200" cc.log
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
┌──(root)-[~/Test/waf]
└─# grep "HTTP/1.1 200" cc.log | wc -l
20
可以发现正常访问 20 次,都可以成功访问。
2、开启 CC 防护,添加规则
规则配置如下:
然后使用使用 curl 进行测试,如下:
┌──(root)-[~/Test/waf]
└─# cat cc.sh
#!/bin/bash
for i in {1..50}
do
curl -sI shodan.xxxx.cn/sql/ >> cc3.log
done
查看日志,发现 403 响应,如下:
HTTP/1.1 403 Forbidden
Server: nginx
Date: Tue, 01 Mar 2022 02:31:20 GMT
Content-Length: 0
Connection: keep-alive
然后查看控制台日志管理,如下: 可以发现攻击类型为 CC 攻击被拦截。
如果您有其他问题,欢迎您联系火山引擎技术支持服务