标签归档:Cloudflare防ddos

cloudflare pro 专业版如何设置防御CC攻击?

cloudflare 默认自带 5 条防火墙规则,完全免费。pro 版本可以使用,只需要 50 元一年,还需要做一些规则来进行防护 CC 你的站点最好是 CF pro 套餐,并且开启 HTTPS 我先大致分享一下我的规则。 阻止规则:

R9R76X83SPQIYOEHVD\

Tor 是洋葱路由,可以屏蔽。威胁分数大于等于 5 进行阻止。威胁分数正常访客压根不会触发,不要害怕误封。 验证码规则:

X98C_SI3PNW1R5W41R6S47

第一段的意思是禁止 https 的访问有 http1 的 HTTP 版本,因为正常访客访问 https 都是 HTTP2,只有代理 CC 会是 HTTP1,前提是你网站开启了 https,不开启 https 这个规则没作用。 用户代理这个我就不说了,防止一些奇奇怪怪的 ua。 威胁分数大于 1 的话自动弹出验证码,正常浏览器,干净的 IP 不会触发。 最后一个是防止伪造 ip 的。 除了设置规则,你还需要设置一些其他的东西。 比如 HTTP DDOS,全部拉满:

X98C_SI3PNW1R5W41R6S47

自动程序,只开启 js 检测(其他功能需要企业版):

5417OOF4DO9XMFI4FW2X

还有托管规则,可以点进去看看,都是比较有用的策略。 缓存配置 缓存级别设置为 忽略查询字符 页面规则 可以参考一下我的:

DM9G9XY1KZZM2CD13B

最后一个就是配置强制 HTTPS(Cloudflare 上的强制跳转,不需要回源) 首先,在页面规则-->转换规则,创建重写 URL:

TK84YM6S1FNWS9KHK_3T

转换规则创建好了之后,再到页面规则上设置跳转:

QVNG9ITTPX1NJ3ESYE7

注意,这个页面规则的优先级必须在第一。 理论上以上规则设置后,可以很好的防御代理 CC。遇到肉鸡 CC 只能开启请求速率限制了。

Cloudflare Page Rules 规则如何设置?

cloudflare作为全球最大的免费CDN加速,跟国内的优点就是不需要备案即可使用,而我们的Cloudflare默认只缓存图片之类的静态文件,很多网站使用Cloudflare加速效果不理想就是因为不会配置Cloudflare的Page Rules 页面规则,只要我们把Page Rules 配置好了,那么我们网站加速效果很牛,因为我们基于wordpress搭建的网站,这几天一直在调试Cloudflare的自定义页面规则缓存Page Rules,发现确实把 Page Rules 规则配置好了,网站访问速度飞快。

Cloudflare自定义规则的说明:

提示说明: 规则自定义指对“指定URL”进行页面级规则定制(支持通配符*)。可对任意子域名、目录、甚至单个URL进行针对性的加速缓存、安全防护等配置。列表中上下关系决定优先级,靠上规则优先级高。站长可以通过点击“↑”调整优先级。新增规则优先级最低,将于30s内生效。

URL指定支持通配符* 例如

1) 对xxx.com进行特定设置,需增加URL: https://xxx.com/wp-content/uploads/* 对网站 yuntue.com/wp-content/uploads/ 的所有内容缓存生效;

2) 对xxx.com所有html页面进行特定设置,需增加URL: xxx.com/*.html 对网站 xxx.com的html 内容缓存生效;

3) 对xxx.com所有html页面进行全部缓存,需增加URL: xxx.com/* 对网站 xxx.com 的所有内容缓存生效;

4)对xxx.com所有评论页面禁止缓存直接回源,需增加URL:xxx.com/*/comment-page-* 对网站评论内容缓存不生效;

以下是设置的wordpress Page Rules 页面规则:

https://xxx.com/*/comment-page-* Cache Level: Bypass 评论不缓存直接回源

https://xxx.com/wp-admin/* Cache Level:Bypass 后台管理页面不缓存直接回源

https://xxx.com/* Always Online: On, Cache Level: Cache Everything, Edge Cache TTL: 2 hours 全站所有内容缓存2小时

Cloudflare免费套餐只能设置3条规则,我们就只能设置后台和评论分页不缓存,其他一律缓存。其中还有个最关键的地方,Edge Cache TTL这个选项必须要设置一下,否则依然不会缓存的哦。Edge Cache TTL 缓存时间你可以设置30天或1天,最短为2个小时,如果网站没有什么更新,或者不需要用户登录的直接可以设置30天,这样可以减少服务器压力,加速用户的访问体验。

WordPress页面规则配置:

wp-admin 部分为管理后台,不加入缓存;

wp-login 部分为后台登陆页面,不加入缓存;

*/comment-page-* 用户评论,不加入缓存;

其余部分全部缓存;

以上的规则发现,这样我们需要4条规则,而免费的Cloudflare只能开启 Page Rules 3条规则,那么我们可以把wp-login 修改合并成一条规则;

可以安装插件 Rename wp-login.php ,修改登录页面 wp-login 网址为 wp-adminxxx,其中 xxx 为我们自定义的一串字符,比如 wp-adminabc 。

这样就可以通过 wp-admin* 来同时匹配前两条,将规则变为 3 条。

通过配置针对于 WordPress的页面规则,我们将全站进行缓存,设置网站永久在线等,并排除了管理后台、登录页面和文章文章评论页面的缓存,以便我们能够实时看到用户评论和正常登陆管理网站。

Cloudflare免费套餐如何设置DDOS防护?

Cloudflare 选择免费套餐,然后添加记录,填写子域名并修改DNS(DNS在域名注册地修改),开始简单配置防护策略

开启Cloudflare的防护配置:

点击 安全性 开启DDOS和自动程序 ,两个都开启

3796b3d9d4133326-1024x473-1
a30869c554133326-1024x508-1

配置一下屏蔽海外,针对对一些全国代理的CC,如果你的网站是开放全国的话就不用开启

d2b5ca33bd133401-1024x513-1

速率限制规则也需要开启,主要实现的是同个IP【10秒内请求数>n】时对其返回429阻止访问。如图填写/可对zone下所有域名进行保护,个人博客正常情况下n建议设置为50,资源更多的站点可以考虑适当放大(以不影响正常访问为准)

d2b5ca33bd133514-1024x598-1

最后在开始配置防火墙规则之前,请先前往【防火墙】-【设置】下,将【Privacy Pass支持】关闭,以避免一种绕过质询的可能(尽管如此,免费版的hCaptcha依然存在可绕过的方式,所以在较严重的情况下应适当选择阻止部分访问)。

d2b5ca33bd133542-1024x252-1

这篇博客对于CF WAF的配置分享到此告一段落了,但是对这些规则的应用仍有正则表达式等更高级的应用方式去探索,结合实际,准确地发掘并圈定恶意攻击特征,积极利用好这些已有的资源,最大限度减小对正常用户访问的影响是有必要的。

CloudFlare Business如何设置防护 CC 攻击

CloudFlare Business 套餐可以帮助网站抵御 CC 攻击,需要进行一些配置。操作包括设置自动程序、托管规则、防火墙规则、验证码规则等,还需要进行 SSL 证书和源站配置。可以使用屏蔽地区和速率限制等功能进行进一步保护。自定义回源可以防止扫源程序攻击。

需要Cloudflare 企业版套餐。

你的站点必须使用 HTTPS

开始(在 CloudFlare 上操作).

自动程序

首先,需要登录 Cloudflare 控制面板,选择域名–> 防火墙–> 自动程序,点击 配置超级自动程序攻击模式
如图所示,可以按照我的图片进行设置

image-18

托管规则

然后打开选择 防火墙–> 托管规则,把选项全部勾上,敏感度高,操作为质询。

网站以及 SSL 证书配置

大致分享一下我的规则。

建议您的站点设置 SSL 证书并开启 http2 协议:

image-17

并且开启强制 https,也可以限制 最低 TLS 版本为 1.1(目前浏览器最低都是 1.2) 参考图片:

image-20

页面规则

可以参考一下我的

image-21

防火墙规则

阻止规则:

R9R76X83SPQIYOEHVD-1

Tor 是洋葱路由,可以屏蔽。威胁分数大于等于 5 进行阻止。威胁分数正常访客压根不会触发,不要害怕误封。

验证码规则:

X98C_SI3PNW1R5W41R6S47-1

第一段的意思是禁止 https 的访问有 http1 的 HTTP 版本,因为正常访客访问 https 都是 HTTP2,只有代理 CC 会是 HTTP1,前提是你网站开启了 https,不开启 https 这个规则没作用。

用户代理这个我就不说了,防止一些奇奇怪怪的 ua。

威胁分数大于 1 的话自动弹出验证码,正常浏览器,干净的 IP 不会触发。

最后一个是防止伪造 ip 的。

除了设置规则,你还需要设置一些其他的东西。

比如 HTTP DDOS, 全部拉满:

KFKTUPN14CE_0H

到这里,在 Cloudflare 上设置的规则已经完成了。接下来是设置源站的

Nginx 配置

我们可以设置一个单独的 UA 回源,并且只允许那个 ua 回源。

先在 Cloudflare 上操作:

image-22

创建一个 HTTP 请求头修改,内容为 User-Agent:XXX (XXX 可以替换成其他):

image-23

比如我的是 moeyydad,你可以替换成别的,别人猜不到就行。

然后我们在 nginx 配置文件内添加一个 if

CODE
1
2
3
if ($http_user_agent != "moeyydad"){
      return 444;
}

这段代码加在 root 的下面

image-24

证书防护

可以防止源站证书被扫到。如果源站使用 ssl 回源,我们需要上传证书,但是我们不能使用自己的证书,可以使用自签证书。比如:

证书

CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
-----BEGIN CERTIFICATE-----
MIIDITCCAsagAwIBAgIUTcEWLzynkLCFCoAC1iDH2vG3EkYwCgYIKoZIzj0EAwIw
gY8xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBDbG91ZEZsYXJlLCBJbmMuMTgwNgYDVQQL
Ey9DbG91ZEZsYXJlIE9yaWdpbiBTU0wgRUNDIENlcnRpZmljYXRlIEF1dGhvcml0
eTAeFw0xOTAxMTMxNDMxMDBaFw0zNDAxMDkxNDMxMDBaMGIxGTAXBgNVBAoTEENs
b3VkRmxhcmUsIEluYy4xHTAbBgNVBAsTFENsb3VkRmxhcmUgT3JpZ2luIENBMSYw
JAYDVQQDEx1DbG91ZEZsYXJlIE9yaWdpbiBDZXJ0aWZpY2F0ZTBZMBMGByqGSM49
AgEGCCqGSM49AwEHA0IABAg/hZ9lDHj/f+0jDRAN23TkNEqIi46mCGnwZVD3glxL
l+a1mpfXLHSEFTipnSyQgmvkPYzQGaEIFD0q6W/ZgMujggEqMIIBJjAOBgNVHQ8B
Af8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMAwGA1UdEwEB
/wQCMAAwHQYDVR0OBBYEFCEZF6Eyem01XPbgwr6DXLZV1qsQMB8GA1UdIwQYMBaA
FIUwXTsqcNTt1ZJnB/3rObQaDjinMEQGCCsGAQUFBwEBBDgwNjA0BggrBgEFBQcw
AYYoaHR0cDovL29jc3AuY2xvdWRmbGFyZS5jb20vb3JpZ2luX2VjY19jYTAjBgNV
HREEHDAaggwqLmRuc3BvZC5jb22CCmRuc3BvZC5jb20wPAYDVR0fBDUwMzAxoC+g
LYYraHR0cDovL2NybC5jbG91ZGZsYXJlLmNvbS9vcmlnaW5fZWNjX2NhLmNybDAK
BggqhkjOPQQDAgNJADBGAiEAnrequCk/QZOOrcPH6C3Hgcy4SPNUy5rQtku/aYkj
qQoCIQCN6IyYNiXuwG+8jUgJrveiirBjiz2jXZSTEfVAyibjTg==
-----END CERTIFICATE-----

密钥

CODE
1
2
3
4
5
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgK0HE3hTJQDg6p/fj
nS92eSuRKZEZ5F4grT6tWFKNYVmhRANCAAQIP4WfZQx4/3/tIw0QDdt05DRKiIuO
pghp8GVQ94JcS5fmtZqX1yx0hBU4qZ0skIJr5D2M0BmhCBQ9Kulv2YDL
-----END PRIVATE KEY-----

如何测试你的源 ip 不会被泄露呢?

你可以先在 hosts 文件把添加你的源 ip 和域名,然后打开浏览器访问,如果无法访问就是成功的,因为受到 ua 限制。

其次,检查证书确保不是你域名的证书。还要检查默认证书,https://ip/ 进行访问,看看证书是不是你域名的,如果不是则大功告成。

其他配置

屏蔽地区

如果你的访客只是中国地区的,你可以设置只允许中国访问:

image-25

使用速率限制

image-28

可以根据你网站的 api 或者其他进行速率限制。

自定义 Host 回源

image-29

这个跟自定义 UA 回源类似,目前一些扫源程序的原理是带一个 host 头访问全球的 ip 进行测试和验证。

比如我设置一个回源域名为 moeyydad.xyz 回源,然后把源站域名 moeyy.cn 替换为 moeyydad.xyz,这样就不会找到我们的源站。配合自定义 UA 回源,源站配置 CF 的自签 SSL 证书,自定义 Host 回源,攻击者则无法找到我们的源站。

CF 的自签 SSL 证书 在这里生成:

image-30

做完以上操作,你的网站已经是无敌的了。