有的时候我们需要借助 Cloudflare 的安全防护功能来防止 CC 或者 DDoS 攻击,即仅允许 Cloudflare CDN 的 IP 访问我们的访问。
Nginx 直接拒绝和允许 IP 访问代码示例如下:
|
1
2
3
4
5
6
7
8
|
location / {deny 192.168.1.1;allow 192.168.1.0/24;allow 10.1.1.0/16;allow 2001:0db8::/32;#Railgun IPdeny all;} |
如果我们仅允许 Cloudflare CDN 的 IP 访问网站,我们可以直接在 nginx 配置中将 Cloudflare CDN 的 IP 添加到允许的范围内。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# 直接加入 # https://www.cloudflare.com/ips# IPv4allow 103.21.244.0/22;allow 103.22.200.0/22;allow 103.31.4.0/22;allow 104.16.0.0/12;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; # IPv6allow 2400:cb00::/32;allow 2405:8100::/32;allow 2405:b500::/32;allow 2606:4700::/32;allow 2803:f800::/32;allow 2c0f:f248::/32;allow 2a06:98c0::/29; |
自动更新 Cloudflare CDN 的 IP。 手动添加 Cloudflare CDN 的 IP 到 Nginx 配置当中简单方便,但是一旦 Cloudflare CDN 的 IP 有变化时还得自己手动处理,我们可以创建一个脚本,定时去更新 Cloudflare CDN 的 IP,自动添加到 Nginx 配置中,代码如下:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
touch /usr/local/nginx/conf/allow_ip.conf# 修改网站 nginx 配置,加入以下代码:include /usr/local/nginx/conf/allow_ip.conf; vim /data/script/allow_cf_ip.sh#!/bin/bashecho "#Cloudflare" > /usr/local/nginx/conf/allow_ip.conf;for i in `curl https://www.cloudflare.com/ips-v4`; doecho "allow $i;" >> /usr/local/nginx/conf/allow_ip.conf;donefor i in `curl https://www.cloudflare.com/ips-v6`; doecho "allow $i;" >> /usr/local/nginx/conf/allow_ip.conf;done # 添加定时任务 0 5 * * 1 /bin/bash /data/script/allow_cf_ip.sh |
正文完
