當業務面臨惡意IP盜刷或特定攻擊時,可通過配置IP黑白名單,在CDN邊緣節點根據訪問來源對請求進行過濾。此功能允許您僅允許存取可信IP(白名單)或精準攔截已知惡意IP(黑名單),從而保護來源站點資源,降低安全風險。
使用情境
配置項 | 使用情境 |
IP白名單 |
|
IP黑名單 |
|
計費說明
配置IP黑/白名单功能本身不收費,但被攔截的請求仍會產生少量費用。
計費原理:攔截髮生在HTTP請求處理階段(七層),此時CDN節點已經處理了請求,消耗了資源。
計費項目:
流量費用:被攔截的請求會產生一次請求(包含HTTP頭)和一次響應(403頁面)的流量。這部分流量按標準CDN流量計費。
HTTPS請求數費用:如果網域名稱使用HTTPS協議,由於TLS握手在IP攔截前已經完成,因此每次被攔截的HTTPS請求仍會計算一次HTTPS請求數費用。
注意事項
一個網域名稱只能配置一條IP黑名單或IP白名單規則,且兩者互斥,無法同時配置。
配置IP黑名單後,黑名單中的IP請求仍然可以到達CDN節點,但會被節點拒絕並返回403狀態代碼。此時,CDN日誌中會記錄這些IP的請求資訊,但這並不意味著IP黑名單未生效。
少數互連網服務提供者(ISP)在特定地區可能會分配私人IP地址給使用者端,導致CDN節點接收到的是使用者的私人IP地址。
說明私人IP位址範圍有以下三個:
A類私人IP地址:10.0.0.0~10.255.255.255,子網路遮罩:10.0.0.0/8
B類私人IP地址:172.16.0.0~172.31.255.255,子網路遮罩:172.16.0.0/12
C類私人IP地址:192.168.0.0~192.168.255.255,子網路遮罩:192.168.0.0/16
操作步驟
登入CDN控制台。
在域名管理頁面,找到目標網域名稱,單擊操作列的管理。
在指定網域名稱的左側導覽列,單擊访问控制。
在IP黑/白名单地區,單擊修改配置。
您可以根據下方樣本,快速進行配置。您也可以參考參數說明,添加適用於自身業務的配置。
情境一:保護管理後台(白名单+規則引擎)
目標:僅允許公司辦公室出口 IP
203.x.x.10和203.x.x.11訪問/admin/路徑。配置:
類型:選擇 白名单。
規則:填入
203.x.x.10和203.x.x.11(換行分隔)。進階配置-IP規則:選擇使用真實建連IP作為判斷依據。
進階配置-規則條件:在規則引擎頁面配置一個規則,規則內容為URI包含
/admin/*其中任意一個,忽略大小寫。然後在規則條件選擇此規則。
結果:只有來自這兩個 IP 的請求才能訪問
/admin/目錄,其他所有 IP 對該目錄的訪問都將被拒絕並返回 403 狀態代碼。
情境二:允許夥伴的 IPv6 網段訪問(白名单)
目標:僅允許夥伴的 IPv6 網段
FC00:0AA3:0000:0000:0000:0000:0000:0000/48訪問。配置:
類型:選擇 白名单。
規則:填入
FC00:0AA3:0000:0000:0000:0000:0000:0000/48。進階配置-IP規則:選擇使用真實建連IP作為判斷依據。
結果:只有來自該 IPv6 位址範圍的請求可以訪問您的網域名稱資源。
情境三:緊急封鎖攻擊源(黑名单)
目標:發現一個來自
198.x.x.0/24網段的 CC 攻擊,需緊急封鎖。配置:
類型:選擇 黑名单。
規則:填入
198.x.x.0/24。進階配置-IP規則:選擇 使用真實建連IP作為判斷依據。
結果:所有來自
198.x.x.0/24網段的 IP 請求都將被 CDN 節點拒絕。
參數說明
參數 | 說明 |
類型 | 選擇黑名单或白名单。
|
規則 | 規則格式要求
規則長度限制 規則輸入框最大支援輸入30 KB長度的字元,考慮到IP地址或者IP位址區段的字串長度有長有短,如果按平均長度來算,最多可配置大約700個IPv6地址/位址區段或者2000個IPv4地址/位址區段。如果您有更多的IP地址封鎖需求,請開通ESA安全防護功能(支援海量IP封鎖和按地區封鎖服務),具體操作方法,請參見如何從CDN、DCDN升級到ESA和IP訪問規則配置。 |
IP規則 | 支援選擇以下三種規則:
|
規則條件 | 規則條件能夠對使用者請求中攜帶的各種參數資訊進行識別,以此來決定某個配置是否對該請求生效。
|
拓展閱讀:阿里雲CDN如何識別用戶端IP
CDN節點通過以下兩種方式識別用戶端IP,這兩種方式各有優劣:
真實建連IP (TCP Connection IP)
定義:用戶端與CDN邊緣節點建立TCP串連時所使用的IP地址。
優點:無法被偽造,安全性最高。
缺點:當使用者通過代理(如公司網路出口、NAT裝置)訪問時,此IP為Proxy 伺服器的IP,無法反映真實的用戶端來源。
X-Forwarded-For(XFF) 要求標頭定義:一個HTTP要求標頭欄位,用於記錄請求經過的每一個Proxy 伺服器的IP地址。CDN通常取其最左側的IP作為用戶端IP。
優點:能夠穿透代理,擷取到真實的用戶端IP。
缺點:此要求標頭可由用戶端任意偽造,存在嚴重安全風險。惡意使用者可通過偽造XFF頭來繞過基於此IP的存取控制。
當用戶端直接存取 CDN 時,這兩個 IP 通常是相同的。但如果用戶端通過Proxy 伺服器訪問 CDN,這兩個 IP 將會不同。例如,用戶端真實 IP 為 10.10.10.10,Proxy 伺服器 IP 為 192.168.0.1,則:
X-Forwarded-For要求標頭的值可能為10.10.10.10, 192.168.0.1。用戶端真實 IP 為
10.10.10.10。真實建連 IP 為
192.168.0.1。
針對上述IP擷取方式,CDN提供三種校正模式,以平衡安全性與業務靈活性。
IP地址校正模式 | 使用情境 | 工作原理 | 安全性評估 |
使用使用者的x-forwarded-for要求標頭作為判斷依據(預設) | 用戶端均通過可信代理訪問,且代理會正確設定XFF頭。 | 僅提取並匹配 |
|
使用真實建連IP作為判斷依據 | 用戶端直接連接CDN,無中間Proxy 伺服器;或希望基於Proxy 伺服器IP進行存取控制。 | 僅使用用戶端與CDN節點建立TCP串連的IP地址進行匹配。 | 建連IP無法偽造,提供最可靠的防護。 |
同時使用x-forwarded-for和真實建連IP作為判斷依據 | 混合網路環境,部分使用者直連,部分使用者通過代理訪問。 | 黑名單: 白名單: | 兼顧了識別真實用戶端IP的靈活性與建連IP的安全性,是大多數情境下的最佳選擇。 |
常見問題
相關API
添加IP黑/白名单配置
調用 BatchSetCdnDomainConfig 介面配置IP黑/白名单,相關參數參考配置IP白名單和配置IP黑名單。
更新IP黑/白名单配置
調用 BatchSetCdnDomainConfig 介面更新IP黑/白名单,相關參數參考配置IP白名單和配置IP黑名單。
介面的更新邏輯為:僅更新傳入的參數。例如,若在請求中傳入了ip_list參數而未傳入ip_acl_xfwd,則ip_acl_xfwd不會被更新。
該介面僅支援對IP列表、IP規則和規則條件進行更新,不允許更改配置類型。例如,無法通過該介面將IP黑名單配置更改為IP白名單配置。
如果您需要更改配置類型(例如,將IP黑名單配置更改為IP白名單配置),需按照以下步驟操作:
調用刪除配置介面,移除現有的IP黑名單配置。
調用添加配置介面,重新添加IP白名單配置。
刪除IP黑/白名单配置
步驟一:查詢ConfigId
調用查詢網域名稱配置介面,查詢配置的ConfigId。如果您知道對應配置的ConfigId,請忽略此步驟,參考步驟二進行刪除配置。
步驟二:刪除配置
調用DeleteSpecificConfig介面,使用ConfigId刪除配置。