概述 原文
除了内容交付网络 (CDN) 服务,客户还依赖 Cloudflare 的全局网络来增强安全性、性能,以及连接到 Internet 的所有内容的可靠性。
Cloudflare 的设置非常简单。无论他们选择哪个平台,任何拥有网站和自己域名的人都可以使用 Cloudflare。Cloudflare 不要求安装额外的硬件或软件,也无需更改您的代码。
安全性
Cloudflare 可在恶意流量到达您的源 Web 服务器前将其阻止。Cloudflare 可基于以下特征,分析访问者请求中存在的潜在威胁:
- 访问者的 IP 地址,
- 请求的资源,
- 请求负载和频率,以及
- 客户定义的防火墙规则。
通过查找 DNS 或 ping 代理的 Cloudflare 子域,返回 Cloudflare IP 地址。 Cloudflare 针对代理(显示橙色云)的 DNS 记录屏蔽您的源 IP 地址,让攻击者无法绕过 Cloudflare 来直接攻击您的源 Web 服务器。
性能
Cloudflare 为您的访问者优化网站资源交付。Cloudflare 数据中心为您网站上的静态资源提供服务,并向您的源 Web 服务器请求动态内容。与直接请求您的站点相比,通过 Cloudflare 的全球网络,您的站点访问者可以通过更快捷的路线访问网站。即使您的网站与访问者之间存在 Cloudflare,流量仍会更快地传送给您的访问者。
可靠性
Cloudflare 的全球分布式 Anycast 网络可将访问者的请求路由到最近的 Cloudflare 数据中心。 针对您代理到 Cloudflare 的流量,Cloudflare 分布式 DNS 对使用相应 Cloudflare IP 地址的网站访问者作出响应。 此外,还可以通过隐藏您的源 Web 服务器的特定 IP 地址,来保证安全性。
允许 Cloudflare IP 地址
要让 Cloudflare 将访问者请求发送到您的源 Web 服务器,请在源 Web 服务器上允许 Cloudflare IP 地址。
另外,请参阅文档来查看使用 .htaccess 或 iptables 允许 IP 地址的演示。以下示例展示了允许 Cloudflare IP 地址范围的 iptables 规则格式。将下方的 $ip 替换为一个 Cloudflare IP 地址范围。
# IPv4 地址范围:
iptables -I INPUT -p tcp -m multiport --dports http,https -s $ip -j ACCEPT
# IPv6 地址范围:
ip6tables -I INPUT -p tcp -m multiport --dports http,https -s $ip -j ACCEPT
作为学习,可以使用命令来测试,把自己关门外也可以通过重启系统来解决
-
添加cloudflare ips-v4到 iptables 白名单的命令
for i in "curl https://www.cloudflare.com/ips-v4"; do iptables -I INPUT -p tcp -m multiport --dports http,https -s $i -j ACCEPT; done
-
添加cloudflare ips-v6 iptables 白名单的命令
for i in "curl https://www.cloudflare.com/ips-v6"; do ip6tables -I INPUT -p tcp -m multiport --dports http,https -s $i -j ACCEPT; done
-
丢弃白名单以外的 ipv4 80,443 tcp 包
iptables -A INPUT -p tcp -m multiport --dports http,https -j DROP
-
丢弃白名单以外的 ipv6 80,443 tcp 包
ip6tables -A INPUT -p tcp -m multiport --dports http,https -j DROP
如果你有更多需求,请参考下面文章
- https://www.lyvba.com/index.php/tag/iptables/
- https://support.cloudflare.com/hc/zh-cn/articles/201897700
- https://www.linode.com/docs/security/firewalls/control-network-traffic-with-iptables/#block-or-allow-traffic-by-port-number-to-create-an-iptables-firewall
0 条评论