📜 前言
当我们的网站用上 Cloudflare 以后,Cloudflare 就自动帮我设置了一系列的防护措施,或许很多朋友们还不清楚具体给我们网站做了哪些事,今天给大家讲讲 Cloudflare 那些悄悄保护你网站的默认配置。
DDoS 防护
这是 Cloudflare 的卖点之一,Cloudflare 会自动为所有用户(包括免费计划)提供基本的 DDoS 防护,无需任何配置。套上 Cloudflare,再也不用担心网站收到天价的流量账单。
以下是 Cloudflare 免费计划 DDoS 防护的一些要点:
- 始终开启:Cloudflare 的 DDoS 防护网络始终处于活动状态,并持续监控流量以检测和缓解攻击。
- 无需配置:你无需进行任何配置即可获得基本 DDoS 防护。
- 针对常见攻击: Cloudflare 的免费计划可以有效缓解常见的第 3 层和第 4 层 DDoS 攻击,例如 SYN Flood、UDP Flood 和 DNS Amplification attacks。
当然 Cloudflare 也提供了一些个性化的 DDoS 的防护配置,但都需要企业级用户才可以使用。
防护的实现原理是这样的, Cloudflare 的边缘和集中式 DDoS 系统会分析路径外的流量样本,这使得 Cloudflare 能够异步检测 DDoS 攻击,而不会造成延迟或影响性能。流量会被分析如下内容:
- 数据包字段,例如源 IP、源端口、目标 IP、目标端口、协议、TCP 标志、序列号、选项和数据包速率
- HTTP 请求元数据,例如 HTTP 标头、用户代理、查询字符串、路径、主机、HTTP 方法、HTTP 版本、TLS 密码版本和请求率。
- HTTP 响应指标,例如客户原始服务器返回的错误代码及其速率
避坑指南:不要在 Cloudflare 之前再套一层 CDN
如果你在 Cloudflare 之前又套了一层 CDN,长期下来 Cloudflare 可能发现对你网站的请求都来自一组特定的 ip。在极少数情况下(例如在 Cloudflare 前面使用 Akamai CDN )由于来自这些特定 IP 地址的流量很大,可能看起来好像 CDN 正在对 Cloudflare 发起 DDoS 攻击。
Free Managed Rule
Cloudflare 提供的 Free Managed Ruleset 是一组预定义的安全规则,旨在帮助网站抵御常见的网络攻击。这些规则由 Cloudflare 的安全团队维护,并会定期更新,以适应新型威胁和漏洞。以下是 Free Managed Rule 的一些核心特点:
- 基础的 Web 应用防火墙 (WAF) 保护:包括对 SQL 注入 (SQLi)、跨站脚本 (XSS)、远程代码执行 (RCE) 等常见攻击的防护。
- 自动更新:规则集会随着新发现的漏洞和威胁自动更新,确保最新的防护措施应用到你的站点。
- 无复杂配置:Cloudflare 的 Free Managed Ruleset 是开箱即用的,无需配置。
免费计划的用户也无法对该规则进行配置,具体的更新内容需要关注 Cloudflare 的定期发布
Security Level
这个选项在 [ Websites –> Zone –> Security –> Settings ] 默认是 Medium
Security Level 使用 treat score(不了解这个概念的朋友参考这篇文章 Cloudflare 从入门到精通 | 5. 使用 WAF 保护你的网站) 来决定是否向访问者提出挑战。一旦访问者输入正确的挑战,才能获取网站资源。
你可以根据请求所构成的威胁调整这个参数以对其进行质询。可用的安全级别如下:
Security Level | Threat score 范围 | 描述 |
Off (Enterprise customers only) |
N/A | 不挑战 IP 地址 |
Essentially off | 50–100 | 仅挑战信誉最差的 IP 地址 |
Low | 25–100 | 挑战有威胁的访客 |
Medium | 15–100 | 挑战有威胁性和中度威胁性的访客 |
High | 0–100 | 挑战过去 14 天内表现出威胁行为的所有访客 |
I’m Under Attack! | N/A | 仅当你的网站当前遭受 DDoS 攻击时使用 |
选择更高的安全级别值意味着即使风险较低(即威胁分数较低)的请求也会受到挑战。选择较低的安全级别值意味着只有具有更高风险(即威胁分数较高)的请求才会受到挑战。
官方建议配置
- 新站长应该设置中或高安全级别,并将Chanllenge Passage 设置为 30 分钟以下,以确保 Cloudflare 始终保护网站。
- 对安全设置有信心的经验丰富的网站管理员可能会将 Security Level 设置为 关闭 或低,同时将 Chanllenge Passage 设置为一周、一个月甚至一年,以提供更好的用户体验。
Challenge Passage
这个选项在 [ Websites –> Zone –> Security –> Settings ] 默认是 30 分钟。
Cloudflare 官方建议设置为 15 到 45 分钟之间。这个功能的工作原理:当用户初次访问你的网站时,如果触发了 Cloudflare 的安全校验,校验成功后会在你的浏览器中设置一个名为 cf_clearance
的 cookie,当用户访问网站其他网页页面是 Cloudflare 会校验该 cookie 是否在有效期内,有效期内无需再校验
Browser Integrity Check
这个选项在 [ Websites –> Zone –> Security –> Settings ]
Browser Integrity Check 会查找垃圾邮件发送者最常滥用的 HTTP 标头并拒绝这些请求。打开这个开关后还会挑战没有 user agent 和非标准 user agent 的请求,一般这些请求都是来自机器人、爬虫
Replace insecure JS libraries
开启后,Cloudflare 将检查 HTTP(S) 流量中是否存在指向潜在不安全服务的 src 属性的脚本标签,并将 src 值替换为 cdnjs下托管的等效链接。此重写操作目前支持托管在 polyfill.io 中的 polyfill JavaScript 库。重写的 URL 将保留原始 URL 请求头(http:// 或 https://)。这个功能提高了网站的安全性和性能,并降低了注入恶意代码的风险。
Email Address Obfuscation
这个选项在 [ Websites –> Zone –> Scrape Shield ]
打开这个开关后,网页上的邮件地址只对真实用户可见而对爬虫等机器不可见,这样能防止大量邮件爬虫机器人收集你的邮箱给你发垃圾邮件。
有些网站会有邮箱的 logo,以我的博客为例,当你点击这个图表时就会自动跳转到邮件编写界面,有些爬虫就利用这点大量发送垃圾邮件。
打开这个开关后,网页上的邮件地址只对真实用户可见而对爬虫等机器不可见,这样能防止大量邮件爬虫机器人收集你的邮箱给你发垃圾邮件。
有些网站会有邮箱的 logo,以我的博客为例,当你点击这个图表时就会自动跳转到邮件编写界面,有些爬虫就利用这点大量发送垃圾邮件。
Hotlink Protection 可防止您的图片被其他网站使用,从而减少原始服务器消耗的带宽。该功能对爬虫没有影响,但会阻止图片显示在 Google 图片、Pinterest 和 Facebook 等网站上。如果你想让特定的图片可以被 Google ,RSS 图像订阅等其他网站引用,你可以参考如下的操作方式:
- 在网站(或者对象存储)中创建一个 hotlink-ok 的文件夹,将需要被引用的图片放进文件夹。访问资源时类似这样:
http://example.com/hotlink-ok/pic.jpg
(需要 hotlink 保护的图片)
http://example.com/images/pic.jpg
(无需 hotlink 保护的图片)
- 在 WAF 中 Custom Rule 中设置规则,具体设置方式参考这篇文章 Cloudflare 从入门到精通 | 5. 使用 WAF 保护你的网站
📝 总结
上面介绍的默认配置,免费计划的用户都可以享受到,Cloudflare 也在不断迭代他们的安全产品后续会推出更多免费的安全产品。除此之外,Cloudflare 还有一些功能只需要你在控制面板轻轻点一下开关就开启,这里不再赘述留给大家慢慢探索。写这篇文章的时候查找大量资料才发现Cloudflare 真的像一尊“佛祖”一般,在默默守护我们的网站 : )
评论前必须登录!
立即登录 注册