至于Cloudflare其实还是有多人不会用,为什么说不会用呢?
第一,默认的Cloudflare的DNS分配的那几个IP根本不够你使用,而且效果不好(所以大部分人称为国内减速CDN)
第二,即使知道使用Cloudflare partner可以自定义IP但是也没有找到合适的IP段的IP也没有太懂怎么线路解析
那么我今天结合这两个问题进行讲解。往期也有讲解Cloudflare的详细教程(https://bk.shunleite.com/post-9.html)
第三,当DNS服务不安全时,攻击者可以轻松地更改DNS的请求回复并将用户导向钓鱼站点,我们可以使用DNSSEC
解决中间人攻击的问题,但是只有一小部分网站使用了DNSSEC服务(由于我们选择的是partner所以这个解决方法
在后面会提及很重要的一个环节噢)。
——另外等我有时间出期视频教程
一、首先你需要创建CloudFlare账户(这次我们简单点就创建账户即可,大部分操作去partner里面搞)
1.直接进入注册页面:https://dash.cloudflare.com/sign-up(填写邮箱,密码然后验证就不说了哈太简单了)
2.注册完成后呢那就注册这部分完了(别着急这篇文章还很多)
二、然后就是直接使用Cloudflare partner
1.这里我推荐Cloudflare partner 笨牛:https://cdn.bnxb.com/ (这是我发现国内功能实现最好的一个)
另外还有几个其他的比较出色的
如果都不放心可以自己搞个Cloudflare partner 这个相关教程连接(https://sword.studio/80.html)
但是本次教程以笨牛Cloudflare partner为例子
2.注册笨牛完成绑定域名操作
注册笨牛:http://cdn.bnxb.com/signup.html
CF(就是Cloudflare)所以上面两个就填刚刚你在CF注册的邮箱和密码
--添加域名只需要填写主域名即可(一定要选Cname解析)
——plus版本与免费版区别不大(在同IP线路下)
3.在笨牛中进行域名解析添加解析管理
--回源地址填写你自己的服务器IP
4.接下来就需要把你的域名解析与你自己的域名解析管理一一对应(你的域名服务商要支持三网解析,如果不行可以换接入到其他DNS服务)
--这里拿阿里云为例子,对应好笨牛所提供的解析地址
三、线路搭配(核心1)
官方节点https://www.cloudflare.com/zh-cn/ips/
当然我们不会就直接选择官方节点来
自选节点
小知识
节点段的分析
例如172.64.0.0/13表示的IP范围那个13最大只能是32
172.64.0.0换成32位二进制,四组,每组8位所以对应的子网掩码是: 255.248.0.0
/13表示前13位不变,后19位由全0变化到全1的过程,也就是由"11111111 11111000 00000000 00000000"到"11111111 11111111 11111111 11111111"
因为全0是子网网络地址172.64.0.0,全1是子网广播地址172.71.255.255,这两个地址是不分配给主机使用的所以有效的可分配的范围是前13位不变,后19位由"000 0000000 00000001"化为"111 1111111 11111111"的范围
再转换回十进制就是172.64.0.1-172.71.255.254 (这段有部分节点段特别适合移动科学上网,找个时间也会出期这方面教程)
但是是不是很费劲,看懂了,选不到优选节点
可以使用我推荐的三线节点:
三网:
1.0.0.1~1.0.0.254
电信:
104.16.155.1~104.16.155.254
104.25.183.1~104.25.183.255
(百度与CF合作节点联通电信都适用)
162.159.208.4~162.159.208.103
162.159.209.4~162.159.209.103
162.159.210.4~162.159.210.103
162.159.211.4~162.159.211.103
移动:
104.16.160.1~104.16.160.254
104.16.99.1~104.16.99.254
联通:
104.27.188.1~104.27.188.254
104.20.157.1~104.20.157.254
接下来就是挑选自选节点并且配置线路
选择好优化线路
如下:(提一点,阿里的可以免费设置权重达到一定负载均衡的效果)
四、CF页面配置搭配(核心2,包含SSL相关内容,配置页面规则官网和笨牛都可以配置互通)
官方配置说明如下(此配置中文对应笨牛,英文对应官方,我们可以同时在这两个地方进行设置)
设置
描述
计划
一直在线(Always Online)
打开或关闭Cloudflare Caching 应用程序的 Always Online 功能 。 了解更多。
一律使用HTTPS(Always Use HTTPS)
在Cloudflare SSL / TLS 应用程序中打开或关闭“ 边缘证书”选项卡 的“ 始终使用HTTPS” 功能。如果启用,则任何 http:// URL都会 通过301重定向转换为 https://。
如果未出现此选项,则您没有活动的 Edge证书。
自动缩小(Auto Minify)
指示要自动缩小的文件扩展名。 了解更多。
自动HTTPS重写 (Automatic HTTPS Rewrites)
打开或关闭Cloudflare SSL / TLS 应用程序 中“ 边缘证书”选项卡 的 Cloudflare自动HTTPS重写功能。 了解更多。
浏览器缓存TTL(Browser Cache TTL)
控制客户端浏览器缓存的资源保持有效的时间。 了解更多。
浏览器完整性检查(Browser Integrity Check)
检查访客的浏览器是否有通常与垃圾邮件发送者和某些漫游器相关的标头。 了解更多。
绕过Cookie的缓存(Bypass Cache on Cookie)
如果正则表达式与请求中存在的cookie名称匹配,则绕过缓存并从源服务器获取资源。
如果将此设置和仅限企业使用的 Cookie上的Cache On 设置都添加到同一页面规则,则 Cookie 上的Cache优先于 绕过Cookie的Cache。
请参阅下面的其他详细信息,以了解有限的正则表达式支持。
按设备类型缓存(Cache By Device Type)
根据访问者的设备类型分隔缓存的内容。 学到更多。
快取欺骗装甲(Cache Deception Armor)
防止Web缓存欺骗攻击,同时仍然允许静态资产被缓存。此设置验证URL的扩展名是否与返回的Content-Type相匹配 。 学到更多。
快取金钥(Cache Key)
也称为“ 自定义缓存键”。
在决定要缓存哪些资源时,专门控制要包括的变量。这使客户可以根据URL以外的内容来确定要缓存的内容。 了解更多。
要在您的域中启用自定义缓存键,请向Cloudflare支持提交请求。
缓存级别(Cache Level)
应用基于选择的选项自定义缓存:
无查询字符串 -没有查询字符串时从缓存中提供资源。
忽略查询字符串-向每个人提供相同的资源,而与查询字符串无关。
标准-缓存所有具有查询字符串的静态内容。
缓存所有内容-将所有内容视为静态内容,并缓存Cloudflare默认缓存内容以外的所有文件类型。除非在页面规则中也设置了Edge Cache TTL,否则从原始Web服务器尊重缓存头。当 与结合 边缘缓存TTL > 0, 缓存一切 去除从原点web服务器响应的cookie。
在Cookie上缓存(Cache on Cookie)
根据与Cookie名称匹配的正则表达式应用“ 缓存所有内容” 选项(“ 缓存级别” 设置)。
如果您将此设置和Cookie绕过缓存都添加 到同一页面规则,则 Cookie缓存 会优先 于Cookie绕过缓存。
禁用应用(Disable Apps)
关闭所有活动的 Cloudflare应用程序。
禁用性能(Disable Performance)
关掉:
禁用Railgun(Disable Railgun)
关闭 Cloudflare Speed 应用程序的 Railgun功能。
禁用安全性(Disable Security)
关掉:
边缘缓存TTL(Edge Cache TTL)
指定在Cloudflare边缘网络中缓存资源的时间。 边缘缓存TTL仅在作为页面规则中的设置包含时才生效,该规则还将“ 缓存级别” 设置为“ 缓存所有内容”。 边缘缓存TTL在响应标头中不可见。最小边缘缓存TTL取决于计划类型:
免费-2小时
电子邮件混淆(Email Obfuscation)
打开或关闭Cloudflare Scrape Shield 应用程序的 Cloudflare电子邮件混淆 功能 。 学到更多。
转发网址(Forwarding URL)
使用HTTP 301/302 redirect将一个URL重定向到另一个URL 。 请参阅 上面的了解通配符匹配和引用。
主机头覆盖(Host Header Override)
应用特定的主机头。 了解更多。
IP地理位置标头(IP Geolocation Header)
Cloudflare添加了 CF-IPCountry HTTP标头,其中包含与访客对应的国家/地区代码。
海市age楼(Mirage)
打开或关闭 Cloudflare Speed 应用程序的Cloudflare Mirage。 了解更多。
机会加密(Opportunistic Encryption)
打开或关闭Cloudflare SSL / TLS 应用程序 中“ 边缘证书”选项卡的 Cloudflare机会加密功能。 了解更多。
原点错误页面传递(Origin Error Page Pass-thru)
打开或关闭由源服务器发送的问题生成的Cloudflare错误页面。如果启用,此设置将触发由来源发出的错误页面。
抛光(Polish)
应用 Cloudflare Speed 应用程序的波兰语功能中的选项 。 了解更多。
查询字符串排序(Query String Sort)
打开或关闭查询字符串的重新排序。当查询字符串具有相同的结构时,缓存会改善。 了解更多。
解决替代(Resolve Override)
将原始地址更改为此设置中指定的值。 了解更多。
尊重强大的ETag(Respect Strong ETags)
打开或关闭Cloudflare缓存和原始服务器之间的逐字节等效检查。 了解更多。
响应缓冲(Response Buffering)
开启或关闭Cloudflare是否应等待原始服务器中的整个文件,然后再将其转发给站点访问者。默认情况下,Cloudflare在数据包从源服务器到达时将其发送到客户端。
火箭装载机(Rocket Loader)
在Cloudflare Speed 应用程序中打开或关闭 Cloudflare Rocket Loader 。 了解更多。
安全级别(Security Level)
Cloudflare 防火墙 应用程序中“ 安全级别”功能的控制选项 。 了解更多。
服务器端排除(Server Side Excludes)
打开或关闭 Cloudflare Scrape Shield 应用程序的“ 服务器端排除”功能。 了解更多。
SSL协议(SSL)
Cloudflare SSL / TLS 应用程序 中“ 边缘证书”选项卡的SSL功能的控制选项 。 了解更多。
真实客户端IP标头(True Client IP Header)
打开或关闭 Cloudflare Network 应用程序的 True-Client-IP Header功能。 了解更多。
Web应用防火墙(Web Application Firewall)
根据Cloudflare防火墙 应用程序中的定义打开或关闭 Web应用程序防火墙规则 。学到更多。 了解更多。
不能通过页面规则启用或禁用单个WAF规则。
首先打开规则管理页面
旁路 - 的CloudFlare 不缓存。
专业版-1小时
商务版-30分钟
企业版-1秒
原始缓存控制(Origin Cache Control)
默认情况下,针对Free,Pro和Business域启用了Origin Cache Control,对于Enterprise域默认禁用了Origin Cache Control。
那么笨牛中基本配置可以如下:(注:SSL设置要为简易全程,你的源站点应该提前申请好SSL,作用:利于结合DNSSEC)
*代表泛(有点泛解析的意思)/*代表当前目录下所有
一般这个规则的权重应该最低(利于动态设置CC防护效果)
官网:
进入点击这个图标
五、DNSSEC配置(核心3,关键部分)
这个直接就在笨牛中配置:
进入笨牛管理页面找到DNSSEC并且点击启动
DNSSEC配置
以阿里云为例
点开启动后会生成这样的数据:我们只需要提取 algorlthm|digest_algorlthm|digest|key_tag这四个数据(一般情况下)
根据新网可以看出都是一一对应的(注刚刚那个[algorlthm] ==> 13指的就是13-ECDSA Curve P. 256 with SHA - 256):
所以阿里的配置也是如此(只不过阿里翻译成了中文,我觉得有点多余)那么阿里这样配置就好理解了
怎么监测出是否好了呢?
通过这个站点监测:https://dnssec-analyzer.verisignlabs.com/
如果全是绿色则代表成功了
(多学一招)监测的方法使用dig命令
Centos安装
yum install bind-utils
Ubuntu安装
apt install dnsutils
接着测试一下:
dig 你的站点 +dnssec @4.2.2.4
如果显示出一串非常长的RRSIG那就代表成功了
那么基本上你的站点就能走上安全快速的效果(拖泥带水中间没花一分钱,除了服务器域名需要自买)
六、设置服务器自动开盾模式(也可以结合宝塔,appnode面板)
CF的5秒盾号称无视攻击基本可以放心(但不利于用户体验,所以在特殊攻击下,自动
开盾对服务器有一定的紧急防护措施),该脚本支持自动关盾
1.笨牛有提供一键脚本,但是我们需要给服务器设置一个定时任务,有效防御
--去笨牛的域名管理页面点击开启 自动开盾 (ON)
--下载配置文件,并且对应token接口
--默认情况我们只需要修改token即可(里面的脚本文件写的很详细)
2.宝塔面本设置定时任务运行脚本:https://cdn.bnxb.com/autoanticc.html(偷个懒)
3.直接服务器下设置定时任务(Centos/Ubuntu)
--首先将你到的文件放到你的所选的目录并且你的token已经改成笨牛给你提供的token
Centos:
例如我将tz.sh(笨牛下的脚本文件默认是)文件放在/usr/local/
下
--然后首先你需要安装crontabs服务(Centos8改成dnf即可)
yum install crontabs 设为开机启动 systemctl enable crond #启动crond服务 systemctl start crond #查看状态 systemctl status crond
--设置用户自定义定时任务vi怎么用i插入写完后按下esc再输入:wq保存退出
vi /etc/crontab #代表每分钟执行一次(建议每分钟) */1 * * * root /usr/local/tz.sh
--保存与查看任务:
crontab /etc/crontab crontab -l #这就是列出用户的定时任务列表 crontab -u 用户名 -l
Ubuntu自带(14.0以上):
vi /etc/crontab #代表每分钟执行一次(建议每分钟) */1 * * * root /usr/local/tz.sh查看任务和上面centos的用法一样
那么整套CDN防御CDN速度和DNS优化就搭建完成。接下来就是测试了,测试的流量需要等一个小时后
在笨牛和CF官方查看
--笨牛直接去[统计]查看
--CF官方点击这两个按钮的随便一个便能查看数据(第二比较详细)
附压力测试:
你可以自行测试下DDOS和CC
这里有几个免费相关的测试站点:
https://stress.gg(只支持7层 10g/s的峰值可支持多账号国内支持访问)
https://instant-stresser.to/(支持4层/7层 不支持多账号国内支持访问)
https://freeboot.to/(只支持4层好像支不支持7层忘了,也是10g/s峰值 国内无法登录注册)
前三者结合可以打出100G流量和600K(这里不细说)
或者自行备好集群攻击测试(例如利用低价按天算的VPS)
注:请只用来测试自己的站点,别另做他图(非法攻击违法)
此教程缺陷:
1.对动态页面友好但对静态页面特别友好,所以比较适合无过多交互的站点,博客等
2.动态页面需要繁琐的配置才能达到安全防护不影响速度的效果
3.如果哪天某线路节点出现问题你需要随时更换(暂时我用了1年没出现节点问题,除了移动)
留言:
本来这个教程会特别详细,但是因为写第一次的时候没有做好保存导致数据丢失,后面会慢慢补回来
但是不影响实际效果
写的不容易,路过的同学帮我点下旁边的广告就好,辉常感谢
发表评论