強化網站安全:只允許 Cloudflare IP 的防火牆設定教學(附指令範例)
Copyright Notice: This article is an original work licensed under the CC 4.0 BY-NC-ND license.
If you wish to repost this article, please include the original source link and this copyright notice.
Source link: https://v2know.com/article/1105
你可以透過兩種方式來實作這個建議,取決於你的伺服器環境:
✅ 1. 設定防火牆,只允許 Cloudflare 的 IP(推薦)
目的: 避免任何非 Cloudflare 來源直接訪問你的伺服器,強化安全性。
步驟如下(以 Linux 為例):
🔸 1. 取得 Cloudflare 的 IP 列表:
Cloudflare 公開 IP 清單網址(可 script 自動更新):
curl https://www.cloudflare.com/ips-v4 -o cloudflare-ips-v4.txt
curl https://www.cloudflare.com/ips-v6 -o cloudflare-ips-v6.txt
🔸 2. 設定 iptables(或 ufw、firewalld)
🔧 若使用 iptables:
# 先清除現有規則(小心!)
iptables -F
# 允許 Cloudflare IP
for ip in $(cat cloudflare-ips-v4.txt); do
iptables -A INPUT -p tcp -s $ip --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -s $ip --dport 443 -j ACCEPT
done
# 阻擋其他來源
iptables -A INPUT -p tcp --dport 80 -j DROP
iptables -A INPUT -p tcp --dport 443 -j DROP
❗注意:如果你還需要透過 SSH(例如 port 22)來連線,記得加上:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
🔸 3. 保存規則
依據系統不同:
# Debian/Ubuntu
apt install iptables-persistent
netfilter-persistent save
# CentOS
service iptables save
⚠️ 2. 暫時封鎖特定惡意 IP(應急做法)
如果你不方便立刻設定完整 Cloudflare IP 白名單,可臨時封鎖特定 IP:
iptables -A INPUT -s 54.222.187.25 -j DROP
iptables -A INPUT -s 58.146.59.84 -j DROP
iptables -A INPUT -s 121.1.252.91 -j DROP
記得日後再移除或管理這些規則。
🧠 延伸建議:
-
可以用
fail2ban
自動封鎖異常 IP -
用 Cloudflare 的 "防火牆規則" 限制某些國家或 User-Agent
-
如果你用的是 Nginx/Apache,也可以設置只接受 Cloudflare 的
X-Forwarded-For
頭部,進一步過濾來源
This article was last edited at 2025-03-27 00:07:35