Jtti Jtti Jtti
CloudFlare教程二:常用功能介绍,包括WAF配置,5秒盾,人机认证,防源IP泄露等 | VPS精选网

CloudFlare教程二:常用功能介绍,包括WAF配置,5秒盾,人机认证,防源IP泄露等

玩转VPS 8个月前 (03-25) 4298次浏览

前一篇文章《CloudFlare 入门教程,海外网站接入 CloudFlare CDN 全流程说明》中介绍了 CloudFlare 作为免费网站 CDN 最基本的用法。

这篇文章主要介绍下 CF 的常用功能和配置,包括配置 WAF、防 DDOS 开启 5 秒盾、人机验证、流量分流、防止源 IP 泄露等。

CloudFlare 教程一:《CloudFlare 入门教程,海外网站接入 CloudFlare CDN 全流程说明

CloudFlare 教程二:《cloudflare 常用功能介绍,包括 WAF 配置,5 秒盾,人机认证,防源 IP 泄露等 》

CloudFlare 教程三:《cloudflare CDN 配置自选/优选 IP 全流程记录

配置 WAF

WAF 就是 Web Application Firewall 网站防火墙,简称: WAF,主要用来拦截异常/恶意请求。CF 的 WAF 配置很灵活,可以配置匹配到什么样的异常请求后,做出相应的拦截行为。还可以控制请求频率,配置某个页面在某个时间段内只允许请求多少次。都是很实用的功能。

 

 CloudFlare 教程二:常用功能介绍,包括 WAF 配置,5 秒盾,人机认证,防源 IP 泄露等

 

防 DDOS 攻击,开启CF 5 秒盾

目前为止,普遍认为 cf 5 秒盾是最有效防御 DDOS 攻击最有效的方式之一。 套上 cf cdn 后开启 5 秒盾也很简单。Cf 右侧有个 Under Attack 模式,点击开启就行了,大概 30s 左右就会生效。另外,开启 5 秒盾后,用户首次访问有盾,后面继续访问就没有盾了。

cf 人机验证(trunstile)

目前网站的校验是不是真人一般都是采用图片验证码、滑动验证等。Cf 也提供了接入人机验证功能。

好处:

1、可以隐式验证,即不需要用户交互来验证是真人,用户无感知。

2、突破难度比一般图片验证码更难

缺点:

1、需要开发,虽然开发量不大,但总归是需要摸索

2、需要对接 cf 的接口,一个是担心 cf 的稳定性,一个是耦合度有点高。

国内流量走国内 CDN、海外流量走 CF 配置

参考:https://blog.lincloud.pro/archives/26.html

比如域名在阿里云。

在阿里云上解析一条 NS 记录,海外的流量走 cf 的解析,然后 cf 再配置域名 ip 解析

再在阿里云上解析一条 CNAME 记录,国内流量走国内 cdn 给的域名。

防止源 IP 泄露

如果你用 cloudflare 做 DDOS 防御,那么需要注意防止自己网站的源 IP 泄露,否则别人直接攻击你的源 IP,那 CF 就白套了。下面这种方法就算是你的源 IP 泄露了,也可以防止被 DDOS,就是设置源服务器仅允许cf 回源 ip访问

我是通过 centos7 firewall 来配置服务器仅允许 cf 回源 IP 访问的。

cf 的回源 IP 列表:https://www.cloudflare.com/ips-v4

先简单介绍下 firewall 的防火墙规则。firewall 里面有 9 大区域(zone),包括 public、drop、trusted 等,每个 zone 都是一系列规则的集合。区域分为默认区域和激活区域,个人认为,一个请求进来先走激活区域里面的规则,如果匹配不到就走默认区域里面的规则。通过以下命令查看当前的默认区域和激活区域。

firewall-cmd –get-default-zone

firewall-cmd –get-active-zone

一般情况下,默认规则和激活规则都是 public。

这次的仅开放 cf 回源 ip 配置:

就是把激活区域设为 trusted,并配置 cf 的 ip 及个人自己的 ip,然后把默认区域设为 drop。

firewall-cmd –permanent –zone=trusted –add-source=173.245.48.0/20

firewall-cmd –permanent –zone=trusted –add-source=103.21.244.0/22

firewall-cmd –permanent –zone=trusted –add-source=103.22.200.0/22

firewall-cmd –permanent –zone=trusted –add-source=103.31.4.0/22

firewall-cmd –permanent –zone=trusted –add-source=141.101.64.0/18

firewall-cmd –permanent –zone=trusted –add-source=108.162.192.0/18

firewall-cmd –permanent –zone=trusted –add-source=190.93.240.0/20

firewall-cmd –permanent –zone=trusted –add-source=188.114.96.0/20

firewall-cmd –permanent –zone=trusted –add-source=197.234.240.0/22

firewall-cmd –permanent –zone=trusted –add-source=198.41.128.0/17

firewall-cmd –permanent –zone=trusted –add-source=162.158.0.0/15

firewall-cmd –permanent –zone=trusted –add-source=104.16.0.0/13

firewall-cmd –permanent –zone=trusted –add-source=104.24.0.0/14

firewall-cmd –permanent –zone=trusted –add-source=172.64.0.0/13

firewall-cmd –permanent –zone=trusted –add-source=131.0.72.0/22

//个人 ip

firewall-cmd –permanent –zone=trusted –add-source=xx.xx.xx.xx

//本地 ip

firewall-cmd –permanent –zone=trusted –add-source=xx.xx.xx.xx

 

firewall-cmd –list-all-zones

可以看到 trusted 成为了激活区域

因为此时已经设置了 trusted 区域,所以还需要切换默认区域从 public 到 drop,以达到拒绝除 cf 回源 ip 和个人 ip 以外的所有接入连接的目的。使用命令如下:

firewall-cmd –set-default-zone=drop

再将默认网卡 eth0 分配给 drop 区域,使用命令如下://好像不执行也可以

firewall-cmd –permanent –zone=drop –change-interface=eth0

使白名单最终生效,使用命令如下(注意:请再次确认你的所有 IP 都加入了 trusted 区域):

firewall-cmd –reload

结论:

经验证,以上 cf ip 和个人 ip 都可以访问源 ip,但是无法用其他 ip 直接 ssh 和访问 ip 的网页。

 

如果恢复的话,把默认区域和激活区域都设为 public 即可。

firewall-cmd –set-default-zone=public

firewall-cmd –permanent –zone=public –change-interface=eth0

参考:https://cloud.tencent.com/developer/article/1038163

https://blog.51cto.com/u_10690709/2115113

 

附启用禁用、开机启用禁用 firewalld 的命令

systemctl start firewalld

systemctl stop firewalld

systemctl enable firewalld

systemctl disable firewalld

 

注:慎用,因为设置源服务器仅允许 cf 回源 ip 和个人 ip 访问后,运维起来很麻烦。而且后面使用优选 ip 后,用该配置会有点问题,好像是没有加入 cf ipv6 的回源 ip 导致的。后来我采用的方案是换源 ip。一般主机商都会支持换 ip 的,换了源 ip 后,别人想找到你的源 ip 是很困难的。

其他问题

1、上 cf 后,还能统计到用户 ip 吗

我自己的网站是可以统计到 ip 的,但是有些 ip 是 v6 的,需要扩充一下 ip 的字段长度。

2、泛播 IP

即多个服务器对应同一个 IP,先不管是怎么实现的,反正就是这样。

CF 有很多回源 ip,每个 IP 又对应多个服务器,所以访问 cf 的 cdn 时,它有能力给你选择距离你最近的服务器返回数据

 


VPS 精选网 , 版权所有丨如未注明 , 均为原创丨
转载请注明原文链接:CloudFlare 教程二:常用功能介绍,包括 WAF 配置,5 秒盾,人机认证,防源 IP 泄露等
喜欢 (0)