KKCAT
820 字
4 分鐘
Cloudflare橙色雲啟用後 Nginx Proxy Manager的IP白名單和黑名單配置指南

在使用Cloudflare的橙色雲(即啟用CDN功能)後,許多用戶發現Nginx Proxy Manager中的Access Lists(IP地址白名單/黑名單)失效。這通常是因為Cloudflare的代理服務器屏蔽了真實的客戶端IP地址,導致Nginx無法直接獲取客戶端的真實IP,而只能看到Cloudflare的IP地址。

本文將介紹如何配置Nginx,以便它能夠正確識別和使用Cloudflare傳遞的真實客戶端IP地址,從而確保訪問控制列表的正常工作。

配置Cloudflare的真實IP頭

要解決這一問題,首先需要在Nginx中配置,以便它能夠識別Cloudflare傳遞的真實客戶端IP地址。Cloudflare通常通過CF-Connecting-IP或X-Forwarded-For頭傳遞真實的客戶端IP。以下是具體步驟:

在Nginx配置文件中添加以下內容

# Cloudflare IPv4 addresses
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;

# Cloudflare IPv6 addresses
set_real_ip_from 2400:cb00::/32;
set_real_ip_from 2606:4700::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2405:8100::/32;
set_real_ip_from 2a06:98c0::/29;
set_real_ip_from 2c0f:f248::/32;

real_ip_header CF-Connecting-IP;

CloudflareIP 範圍 https://www.cloudflare.com/zh-tw/ips/

這些IP段是Cloudflare的代理服務器IP地址,通過set_real_ip_from指令,Nginx將信任這些IP地址,並從CF-Connecting-IP頭中獲取真實的客戶端IP。

更新Nginx Proxy Manager配置 確保Nginx Proxy Manager能夠正確使用上述配置。如果Nginx Proxy Manager允許自定義Nginx配置片段,將上述配置片段添加到相應位置。

調整訪問控制列表 確保你的訪問控制列表(白名單/黑名單)中的IP地址策略基於真實的客戶端IP,而不是Cloudflare的IP地址。

實際使用場景

  1. 訪問控制 公司A希望只允許公司內部IP地址訪問其網站。他們啟用了Cloudflare的CDN加速,但發現所有訪問請求的IP地址都顯示為Cloudflare的代理服務器IP,導致訪問控制列表失效。通過上述配置,Nginx能夠正確識別真實的客戶端IP,從而確保只有公司內部IP地址能夠訪問網站。

  2. 日志記錄和分析 公司B使用Nginx記錄訪問日志以進行流量分析和安全監控。在啟用Cloudflare CDN後,訪問日志中顯示的IP地址都是Cloudflare的代理服務器IP。通過上述配置,Nginx能夠記錄真實的客戶端IP,從而提供準確的流量分析和安全監控數據。

  3. 防止DDoS攻擊 公司C遇到DDoS攻擊,攻擊流量通過Cloudflare的代理服務器進入,導致Nginx的防護措施失效。通過正確配置Nginx以識別真實的客戶端IP,公司C可以更有效地應用防火墻規則,識別並阻止攻擊IP,從而提升防護效果。

結論 通過正確配置Nginx以識別Cloudflare傳遞的真實客戶端IP地址,可以解決因啟用Cloudflare CDN功能導致的訪問控制列表失效問題。這不僅能確保訪問控制列表的正常工作,還能提升日志記錄、流量分析和安全防護的準確性。希望本文對你配置Nginx Proxy Manager以支持Cloudflare CDN功能有所幫助。

Cloudflare橙色雲啟用後 Nginx Proxy Manager的IP白名單和黑名單配置指南
https://kkcat.blog/posts/cloudflare-nginx-proxy-manager-202406/
作者
KKCAT
發佈於
2024-06-14
許可協議
CC BY-NC-SA 4.0