前一篇文章《CloudFlare入门教程,海外网站接入CloudFlareCDN全流程说明》中介绍了CloudFlare作为免费网站CDN最基本的用法。
这篇文章主要介绍下CF的常用功能和配置,包括配置WAF、防DDOS开启5秒盾、人机验证、流量分流、防止源IP泄露等。
CloudFlare教程一:《CloudFlare入门教程,海外网站接入CloudFlareCDN全流程说明》
CloudFlare教程二:《cloudflare常用功能介绍,包括WAF配置,5秒盾,人机认证,防源IP泄露等?》
CloudFlare教程三:《cloudflareCDN配置自选/优选IP全流程记录》
配置WAF
WAF就是WebApplicationFirewall网站防火墙,简称:?WAF,主要用来拦截异常/恶意请求。CF的WAF配置很灵活,可以配置匹配到什么样的异常请求后,做出相应的拦截行为。还可以控制请求频率,配置某个页面在某个时间段内只允许请求多少次。都是很实用的功能。
?
?
?
防DDOS攻击,开启CF5秒盾
目前为止,普遍认为cf5秒盾是最有效防御DDOS攻击最有效的方式之一。套上cfcdn后开启5秒盾也很简单。Cf右侧有个UnderAttack模式,点击开启就行了,大概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访问。
我是通过centos7firewall来配置服务器仅允许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&8211;zone=trusted–add-source=173.245.48.0/20
firewall-cmd&8211;zone=trusted–add-source=103.21.244.0/22
firewall-cmd&8211;zone=trusted–add-source=103.22.200.0/22

firewall-cmd&8211;zone=trusted–add-source=141.101.64.0/18
firewall-cmd&8211;zone=trusted–add-source=108.162.192.0/18
firewall-cmd&8211;zone=trusted–add-source=190.93.240.0/20
firewall-cmd&8211;zone=trusted–add-source=188.114.96.0/20
firewall-cmd&8211;zone=trusted–add-source=197.234.240.0/22
firewall-cmd&8211;zone=trusted–add-source=198.41.128.0/17
firewall-cmd&8211;zone=trusted–add-source=162.158.0.0/15
firewall-cmd&8211;zone=trusted–add-source=104.16.0.0/13
firewall-cmd&8211;zone=trusted–add-source=104.24.0.0/14
firewall-cmd&8211;zone=trusted–add-source=172.64.0.0/13
firewall-cmd&8211;zone=trusted–add-source=131.0.72.0/22
firewall-cmd&8211;zone=trusted–add-source=xx.xx.xx.xx
firewall-cmd&8211;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&8211;zone=drop–change-interface=eth0
使白名单最终生效,使用命令如下(注意:请再次确认你的所有IP都加入了trusted区域):
firewall-cmd–reload
结论:
经验证,以上cfip和个人ip都可以访问源ip,但是无法用其他ip直接ssh和访问ip的网页。
如果恢复的话,把默认区域和激活区域都设为public即可。
firewall-cmd–set-default-zone=public
firewall-cmd&8211;zone=public–change-interface=eth0
参考:https://cloud.tencent.com/developer/article/1038163
https://blog.51cto.com/u_10690709/2115113
附启用禁用、开机启用禁用firewalld的命令
systemctldisablefirewalld
注:慎用,因为设置源服务器仅允许cf回源ip和个人ip访问后,运维起来很麻烦。而且后面使用优选ip后,用该配置会有点问题,好像是没有加入cfipv6的回源ip导致的。后来我采用的方案是换源ip。一般主机商都会支持换ip的,换了源ip后,别人想找到你的源ip是很困难的。
其他问题
1、上cf后,还能统计到用户ip吗
我自己的网站是可以统计到ip的,但是有些ip是v6的,需要扩充一下ip的字段长度。
2、泛播IP
即多个服务器对应同一个IP,先不管是怎么实现的,反正就是这样。
CF有很多回源ip,每个IP又对应多个服务器,所以访问cf的cdn时,它有能力给你选择距离你最近的服务器返回数据
本文来源:国外服务器--CloudFlare教程二:常用功能介绍(包括WAF配置,5秒盾,人机认证,防源IP泄露等)
本文地址:https://www.idcbaba.com/guowai/1526.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1919100645@qq.com 举报,一经查实,本站将立刻删除。