前言
相信大家通常會使用 Cloudflare 的 proxy 來代理自己的網站。不過你可能會想設定防火牆,僅允許 Cloudflare 的 IP 來訪問。因此這邊文章就簡單把命令放在這邊供快速使用。
這篇文章也主要是寫給我自己複製用的,因為原本只有寫在筆記本上而已。
IP Range?
Cloudflare 的 IP range 可以在這個網站上看到,他可能隨時會更新,所以複製以下命令前,可以到網站稍微看一下有沒有更新。
iptables
iptables 的 IPv4 與 IPv6 是分開設定的,IPv6 使用的是 ip6tables。而也要記得預設的 INPUT 規則要是 DROP 才會正常運作,這邊就不多贅述。
本文章也都以 HTTPs 的 Port 443 做示範,如果你仍在使用 HTTP,請將 --dport 改成 80。
IPv4
iptables -A INPUT -p tcp -m tcp --dport 443 -s 173.245.48.0/20 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -s 103.21.244.0/22 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -s 103.22.200.0/22 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -s 103.31.4.0/22 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -s 141.101.64.0/18 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -s 108.162.192.0/18 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -s 190.93.240.0/20 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -s 188.114.96.0/20 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -s 197.234.240.0/22 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -s 198.41.128.0/17 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -s 162.158.0.0/15 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -s 104.16.0.0/13 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -s 104.24.0.0/14 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -s 172.64.0.0/13 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -s 131.0.72.0/22 -j ACCEPT
IPv6
ip6tables -A INPUT -p tcp -m tcp --dport 443 -s 2400:cb00::/32 -j ACCEPT
ip6tables -A INPUT -p tcp -m tcp --dport 443 -s 2606:4700::/32 -j ACCEPT
ip6tables -A INPUT -p tcp -m tcp --dport 443 -s 2803:f800::/32 -j ACCEPT
ip6tables -A INPUT -p tcp -m tcp --dport 443 -s 2405:b500::/32 -j ACCEPT
ip6tables -A INPUT -p tcp -m tcp --dport 443 -s 2405:8100::/32 -j ACCEPT
ip6tables -A INPUT -p tcp -m tcp --dport 443 -s 2a06:98c0::/29 -j ACCEPT
ip6tables -A INPUT -p tcp -m tcp --dport 443 -s 2c0f:f248::/32 -j ACCEPT
存檔
如果你有安裝 iptable-persistent 想要存檔的話,可以使用以下命令:
netfilter-persistent save
netfilter-persistent reload
UFW
ufw 就沒有分 IPv4 跟 IPv6 了,就直接寫在一起了。
ufw allow from 173.245.48.0/20 to any port 443 proto tcp
ufw allow from 103.21.244.0/22 to any port 443 proto tcp
ufw allow from 103.22.200.0/22 to any port 443 proto tcp
ufw allow from 103.31.4.0/22 to any port 443 proto tcp
ufw allow from 141.101.64.0/18 to any port 443 proto tcp
ufw allow from 108.162.192.0/18 to any port 443 proto tcp
ufw allow from 190.93.240.0/20 to any port 443 proto tcp
ufw allow from 188.114.96.0/20 to any port 443 proto tcp
ufw allow from 197.234.240.0/22 to any port 443 proto tcp
ufw allow from 198.41.128.0/17 to any port 443 proto tcp
ufw allow from 162.158.0.0/15 to any port 443 proto tcp
ufw allow from 104.16.0.0/13 to any port 443 proto tcp
ufw allow from 104.24.0.0/14 to any port 443 proto tcp
ufw allow from 172.64.0.0/13 to any port 443 proto tcp
ufw allow from 131.0.72.0/22 to any port 443 proto tcp
ufw allow from 2400:cb00::/32 to any port 443 proto tcp
ufw allow from 2606:4700::/32 to any port 443 proto tcp
ufw allow from 2803:f800::/32 to any port 443 proto tcp
ufw allow from 2405:b500::/32 to any port 443 proto tcp
ufw allow from 2405:8100::/32 to any port 443 proto tcp
ufw allow from 2a06:98c0::/29 to any port 443 proto tcp
ufw allow from 2c0f:f248::/32 to any port 443 proto tcp