网站防御教程:使用Nginx只允许Cloudflare流量访问

之前一直在构思能否通过限制访问站点服务器的IP达到防御的效果,果不其然,Nginx就可以做到这点

0.Cloudflare的防御效果

Cloudflare承诺节点没有防御范围限制。那么我们可以假设Cloudflare打不死

1.配置Nginx规则

配置 Nginx 只接受来自反向代理 Cloudflare

Nginx的功能相当强大,本文只是冰山一角,建议有条件自学Nginx

https://www.cloudflare.com/ips/ 找到 Cloudflare 提供的 IP 段,然后在 /etc/nginx 下创建一个文件,比如 cf.conf

# https://www.cloudflare.com/ips
# IPv4
allow 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;
# IPv6
allow 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;

然后在需要保护的网站 Server Block 中加上:

include /etc/nginx/cf.conf;
deny all;

大功告成,现在通过非cloudflare的IP访问会403

2.iptables

还有一种思路就是iptables,请自行思考吧,懒得写了。。。

2 Comments

  1. 😄啊哈,我就是用iptables限制80和443端口仅允许cloudflare访问的

Leave a Reply