前提
这个是我一个突然的想法,我前段时间在测试自己接入cf的免费版域名用一些免费测压来测试cf的防御,我发现cf的防御确实很高,之前用免费测压,轻量云撑不了几秒,基本攻击的ip都是海外的ip,然后我就想着把自己的日记站用dns的线路解析通过saas方式接入cf然后把国内的edgeone的关闭海外访问实现国内外分离。这昂就可以有效的屏蔽攻击。(大型攻击除外,我这样的小站点也不会碰到大攻击ovo,除非有闲人)这个思路也可以套wa,cf套eo,不过不建议
开启saas接入需要添加付款方式,2022 年 3 月份,CloudFlare 宣布更改了CloudFlare for SaaS
的收费策略,每个账户可以有100
个域名免费额度,而且超额后每个域名按 0.1 USD/月
(博主很少使用腾xun之外的产品,不过cf真的很好用。本篇文章使用到dnspod
EdgeOne
轻量云服务器
)
附上edgeone的活动,快来薅羊毛edgeone
通过saas方式实现cname接入cf
首先我们要准备两个域名,一个接入cf的dns用来通过saas实现cname接入我们要接入的域名,我已经切换好dns了,下图为例
接入之后我们要解析一个域名子域名用来回源,比如我解析一个cname.sora.one,这个子域名是用来在saas回源的。
点击左侧的SSL/TLS
再点击自定义主机名,就可以看到一个启用 CloudFlare for SaaS
的按钮,由于我已经在使用,显示的如下图
没有使用过,需要点击启用 CloudFlare for SaaS
后选择一个付款方式,就可以使用了
增加一个回退源。在回退源中填写第一个步设置的域名cname.sora.one。然后点击添加回退源。(他就是我们开始添加的域名解析的子域名,作用就是用来cname回源的)切记要正确部署且显示回退源有效否则会回源不了。网站会打不开。
添加自定义主机名,这个自定义主机名是添加我们需要cname接入的域名。比如我日记站要cname接入cf,就在自定义主机名添加我日记站的域名www.acg.ltd
添加完成后是待验证状态。点击刚刚添加的主机名,可以看到要求验证的证书验证TXT和主机名预验证TXT ,我已经添加过了。
注:这里CF给出的验证TXT名称是完整域名的解析记录,所以在DNS服务商(这里是dnspod)中设置域名TXT记录时不要直接全部复制。这里要填入的应该是_cf-custom-hostname.www和_acme-challenge.www
接下来你就可以在接入的域名里面添加A记录或CNAME记录了。如下图,我这里是canme接入的。
注:a记录是指解析到cf的节点ip上面,在上篇文章我已经有写怎么接入cdn的节点ip,cname就是指把域名通过cname的解析方式解析到我们的saas中转的域名之上如下图,这样就可以访问我们的站点测试一下是否可以打开。
这样我们就部署好了cname接入cf,之后我们要给edgeone做一些安全措施
通过dnspod线路解析实现国内eo海外cf
这个我就不详细去写这个了,这个文章在我的专栏里面是有一篇写线路解析的。如下图我们添加默认线路和境外线路解析
EdgeOne设置安全规则
eo是有JavaScript验证的,在过多请求之后跳出JavaScript的验证,验证之后才可以正常访问,根据自己的需求把cc防护调整到比较理想的模式
设置自定义规则,我们把境外的请求全部都拦截掉,这样可以防止通过eo攻击到源站(eo的防御比较低)。
这样我们就实现国外防御有cf国内有eo,国内虽然防御低,但是用国内肉鸡攻击很容易查到源,所以很少用国内ip比较安全。
参与讨论