Cloudflare安全性防护

cloudflare虽然有很强的防ddos攻击防护,但是有一些攻击者,会对api进行攻击,譬如:对创建订单的api进行攻击, 暴力下单。这些api是post提交请求,肯定需要走服务器,当攻击者短时间内创建大量订单,将会耗费服务器的很多资源,因此,我们需要对这个部分做防护

Cloudflare WAF 速度限制规则

1.先进入cloudflare站点,进入站点后,点击菜单 安全性 --> WAF,进入页面后,点击速度限制规则,然后点击创建规则按钮

2.创建速率限制规则

关于速率限制规则

填写配置表单

继续填写其他的配置项

点击部署按钮,即可创建成功,这里实质创建一个速率限制规则,当某个IP,请求的url是 /api 开头,并且10秒内请求了200次,则屏蔽该IP

Cloudflare WAF PRO

如果您是cf pro版本,那么配置项显示的内容有所不同,参看:

仅允许来自cloudflare的ip请求访问

从理论上讲,套了cf后,用户请求网站,都是先走cf,然后cf请求网站(cloudflare 的ip), 因此,所有的请求,都是从cf过来。而不从cf过来的流量,可以视为不正常的流量,我们就将其进行屏蔽。(将cloudflare的ip列表,列为正常访问,其他的http请求的ip进行屏蔽)

如果您存在一些站点,没有套cf,那么就会存在问题,这些站点将无法进行访问,因此如果您存在一些站点没有套cf,那么不要进行下面的操作。 如果您所有的店铺域名,以及授权域名,引导域名,都套了cf的情况下,以及未来的店铺域名也会都套cf,在这样的前提下,才可以进行下面的操作。

一般来说,网站没有流量的时候,很少有攻击者,前期也不需要进行下面的配置,当流量起来后,才可能会有一些攻击者, 而且攻击者也需要提前知道你服务器的IP,这样的前提下才会攻击,因此前期也没有必要做。

如果您做了下面的IP屏蔽,那么出现网站出现无法访问的情况(没有套cf的网站将无法访问),您需要去掉下面的配置。

下面我们将说明一下,如果仅允许来自cloudflare的ip请求访问

1.你可以在 Cloudflare 的官方网站上找到最新的 IP 地址范围:Cloudflare IP Ranges

可以看到 IPv4IPv6列表

2.配置nginx

进入宝塔:

按照上图位置,加入下面的代码:

  • 注意,下面的ip列表,是2024-07-21号,根据 Cloudflare 的官方网站Cloudflare IP Ranges 整理的cf ip列表
  • cloudlare会在将来对IP进行更改,您间隔一段时间,需要到官网查看IP的列表更改情况,然后自行更新下面的IP列表,否则cf的新IP请求会被屏蔽
    allow 103.21.244.0/22;
    allow 103.22.200.0/22;
    allow 103.31.4.0/22;
    allow 104.16.0.0/13;
    allow 104.24.0.0/14;
    allow 108.162.192.0/18;
    allow 131.0.72.0/22;
    allow 141.101.64.0/18;
    allow 162.158.0.0/15;
    allow 172.64.0.0/13;
    allow 173.245.48.0/20;
    allow 188.114.96.0/20;
    allow 190.93.240.0/20;
    allow 197.234.240.0/22;
    allow 198.41.128.0/17;
    allow 2400:cb00::/32;
    allow 2606:4700::/32;
    allow 2803:f800::/32;
    allow 2405:b500::/32;
    allow 2405:8100::/32;
    allow 2a06:98c0::/29;
    allow 2c0f:f248::/32;
    deny all;

加入后的样子,如下图:

然后点击保存即可生效。

配置完成后,建议刷新一下系统缓存,cf缓存,然后访问网站测试一下,是否有问题。

4.您需要定期访问:Cloudflare IP Ranges , 查看是否存在ip列表更新,如果存在,需要手动加上。

下面的忽略即可(不要配置)

# 定义 Cloudflare IP 地址  
set_real_ip_from 103.21.244.0/22;  
set_real_ip_from 103.22.200.0/22;  
set_real_ip_from 103.31.4.0/22;  
set_real_ip_from 104.16.0.0/13; 
set_real_ip_from 104.24.0.0/14;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 131.0.72.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 2400:cb00::/32; # IPv6  
set_real_ip_from 2606:4700::/32; # IPv6  
set_real_ip_from 2803:f800::/32; # IPv6  
set_real_ip_from 2405:b500::/32; # IPv6  
set_real_ip_from 2405:8100::/32; # IPv6  
set_real_ip_from 2a06:98c0::/29; # IPv6  
set_real_ip_from 2c0f:f248::/32; # IPv6
Copyright © fecify.com 2022 all right reserved,powered by Gitbook该文件修订时间: 2024-07-31 12:31:33

results matching ""

    No results matching ""