Web應用防火墻(Web Application Firewall,簡稱WAF)支持對部署在混合云的域名進行防護。本文介紹如何將混合云環境下測試部署的域名接入WAF防護。
背景信息
Web應用防火墻混合云解決方案,支持在公共云、私有云、線下IDC或者機房構成的多云、跨云和混合云環境中提供統一的Web應用防護管理,打造共享和獨享相結合、本地和云端相互融合的彈性、高效的一體化Web應用安全防御體系。接入WAF后,訪問受防護域名的流量支持公網和私網回源(即源站服務器部署在公網或私網中)。
前提條件
- 已購買WAF實例,且當前實例支持接入的域名數量未超過限制。 說明 支持接入的域名數量由WAF的實例規格和擴展域名包數量決定。更多信息,請參見域名擴展包。
- 如果您購買的是中國內地的WAF實例,您必須先對域名完成ICP備案,否則您的網站將無法接入WAF防護。接入WAF操作時,可能會報錯并提示您完成備案。更多信息,請參見阿里云備案服務。
已完成了本地WAF防護節點集群的部署,且本地WAF防護節點能與公網互通。更多信息,請參見部署混合云WAF防護集群。
使用限制
使用混合云WAF防護節點防護內網業務時,暫不支持網段為172.16.0.0/16的客戶端訪問。
混合云網站接入
- 登錄Web應用防火墻控制臺,在頂部菜單欄,選擇WAF實例的資源組和地域(中國內地、非中國內地)。
- 在左側導航欄,選擇 。
- 在域名列表頁簽,單擊網站接入。說明 進入添加域名頁面后,接入模式默認為Cname接入。CNAME接入模式下,您無需再修改。
填寫網站信息,單擊下一步。
配置項
說明
域名
填寫網站域名。域名需要滿足以下要求:
支持使用精確域名(例如
www.aliyundoc.com
)和泛域名(例如*.aliyundoc.com
)格式。具體說明如下:使用泛域名后,WAF將自動匹配該泛域名對應的所有子域名(例如
*.aliyundoc.com
能夠匹配www.aliyundoc.com
、test.aliyundoc.com
等)。重要泛域名不支持匹配對應的主域名(例如
*.aliyundoc.com
不能夠匹配aliyundoc.com
)。如果您需要將主域名接入WAF進行防護,您需要單獨添加對應的域名配置(例如單獨添加aliyundoc.com
)。如果同時存在精確域名和泛域名,則精確域名的轉發規則和防護策略優先生效。
暫不支持添加
.edu
域名。
防護資源
選擇需要WAF防護的資源類型,此處您需要選擇混合云集群。
協議類型
選擇網站使用的協議類型??蛇x項:
HTTP
HTTPS
重要如果網站支持HTTPS加密認證,請選擇HTTPS協議并在添加域名后上傳域名的證書和私鑰文件。更多信息,請參見上傳HTTPS證書。
選中HTTPS后,還支持啟用以下功能:
HTTPS強制跳轉表示將客戶端的HTTP請求強制轉換為HTTPS請求。開啟該功能后,客戶端使用HTTPS請求,通過443端口訪問WAF,WAF轉發的請求也會通過443端口訪問源站。如果您需要強制客戶端使用HTTPS請求訪問網站以提高安全性,則開啟該功能。
重要只有在未選中HTTP協議時,支持開啟該設置。
請確保網站支持HTTPS業務再開啟該設置。開啟該設置后,部分瀏覽器將被強制設置為使用HTTPS請求訪問網站。
HTTP回源表示WAF使用HTTP協議向源站轉發回源請求,默認回源端口是80。開啟該功能后,無論客戶端訪問WAF的端口是80或443,WAF轉發的請求都會通過80端口訪問源站。開啟HTTP回源可以在無需改動源站服務器的前提下,通過WAF實現HTTPS訪問,幫助您降低網站的負載損耗。
重要如果您的網站不支持HTTPS回源,請務必開啟該設置。
如果客戶端通過80端口訪問WAF,則WAF轉發的請求也會通過80端口訪問源站。如果客戶端通過443端口訪問WAF,則WAF轉發的請求也會通過443端口訪問源站。
回源SNI表示WAF轉發客戶端請求到源站服務器,在與源站進行TLS握手時,通過SNI擴展字段(Server Name Indicator extension)指定要訪問的主機,并與該主機建立HTTPS連接。如果您的源站服務器有多個虛擬主機(對應不同域名),則需要開啟該設置。
選中啟用回源SNI后,您可以進一步設置SNI擴展字段的值??蛇x項:
與實際請求host保持一致(默認):表示WAF回源請求中SNI擴展字段的值與請求頭中Host字段的值保持一致。
例如,您配置的網站域名為
*.aliyundoc.com
,客戶端實際請求了www.aliyundoc.com
(即Host字段值),則WAF回源請求中SNI擴展字段的值為www.aliyundoc.com
。自定義:表示您自定義WAF回源請求中SNI擴展字段的值。
一般情況無需自定義SNI,除非您的業務有特殊配置要求,希望WAF在回源請求中使用與實際請求Host不一致的SNI(即此處設置的自定義SNI)。
HTTP2(必須先選中HTTPS,才支持該選項)
如果您的網站支持HTTP 2.0協議,則您需要開啟該設置。HTTP 2.0協議的端口與HTTPS協議端口保持一致,開啟該設置后,您只需設置HTTPS端口即可。更多信息,請參見HTTP 2.0業務接入WAF防護是否會對源站有影響?。
說明只有企業版、旗艦版、獨享版的WAF實例支持開啟HTTP2。
節點設置
選擇防護節點組名稱。
如果您的某個網站部署在了多個防護節點中,您可以單擊節點設置右側的增加防護節點,將多個防護節點同時接入WAF的防護。
服務器地址
設置網站的源站服務器地址,支持IP地址格式和域名(如CNAME)格式。完成接入后,WAF將過濾后的訪問請求轉發到此處設置的服務器地址。設置說明:
IP地址格式:填寫源站的公網IP地址。需要為公網可達的IP地址。
支持填寫多個IP地址,每填寫一個IP地址,按回車進行確認。最多支持添加20個源站IP。
說明如果設置了多個IP地址,WAF將在這些地址間自動進行健康檢查和負載均衡。
非中國內地WAF實例僅支持配置IPv4地址。中國內地WAF實例支持如下配置方式:
同時配置IPv4和IPv6地址
如果開啟IPv4/IPv6回源協議跟隨,則來自IPv6地址的請求將被轉發到IPv6源站,來自IPv4地址的請求將被轉發到IPv4源站。如果不開啟IPv4/IPv6回源協議跟隨,則不做區分,執行混合回源(即IPv4和IPv6請求都有可能回源到IPv4或IPv6源站)。
重要使用IPv6回源時,您必須確保網站接入列表中域名的IPv6狀態為已開啟。更多信息,請參見開啟IPv6防護。
只配置IPv4地址
IPv4和IPv6請求都將通過IPv4回源,即WAF將請求轉發到您設置的IPv4源站地址。
只配置IPv6地址
IPv4和IPv6請求都將通過IPv6回源,即WAF將請求轉發到您設置的IPv6源站地址。
如果源站在阿里云,一般填寫ECS的公網IP地址。
當ECS前面有SLB時,則填寫SLB的公網IP地址。
當源站在阿里云外的IDC機房或者其他云服務商時,建議您PING域名查詢域名的公網IP地址,再填寫域名的公網IP地址。
填寫的IP沒有在透明接入模式下開啟引流。
域名(如CNAME)格式:填寫服務器回源域名,例如對象存儲OSS的CNAME等。
使用域名格式時,支持IPv4回源,即WAF會將客戶端請求轉發到回源域名解析出來的IPv4地址。
重要服務器回源域名不應和要防護的網站域名相同。
如果您的源站服務器地址為OSS域名,則完成網站接入后,您必須前往OSS控制臺中為該OSS域名綁定自定義域名。具體操作,請參見綁定自定義域名。
服務器端口
添加網站使用的轉發服務端口。
說明目前僅支持由阿里云技術支持團隊配置。
端口必須在混合云集群已開啟的端口范圍內?;旌显萍耗J開啟80、8080、443、8443端口,您在創建混合云集群時,可以自定義設置要開啟的端口范圍。相關操作,請參見混合云集群基本信息配置。
WAF通過此處添加的端口為網站提供流量的接入與轉發服務,網站域名的業務流量只通過已添加的服務端口進行轉發。對于未添加的端口,WAF不會轉發任何該端口的訪問請求流量到源站服務器,因此這些端口的啟用不會對源站服務器造成任何安全威脅。
重要網站信息中設置的協議類型和服務器端口必須是源站服務器提供Web業務的協議和端口,不支持端口轉換。例如,源站服務器提供Web服務的是80端口HTTP協議,域名配置也必須是一致的,設置其他端口則無法正常轉發。
默認端口:
協議類型選擇HTTP協議后,服務器端口默認設置為HTTP 80。
協議類型選擇HTTPS協議后,服務器端口默認設置為HTTPS 443。
說明HTTP2.0協議的端口與HTTPS協議的端口保持一致。
自定義端口:單擊自定義,并根據協議類型(HTTP、HTTPS)自定義對應的端口,多個端口之間使用英文逗號(,)分隔。
單擊查看可選范圍可以查詢所有支持使用的端口。
負載均衡算法
設置了多個源站服務器地址時,選擇多源站服務器間的負載均衡算法。可選項:
IP hash(默認):將某個IP的請求定向到同一個源站服務器。
說明使用IP hash時,如果源站服務器的IP地址不夠分散,可能會出現負載不均的情況。
輪詢:將所有請求輪流分配給源站服務器。
Least time:通過智能DNS解析能力和升級后的Least-time回源算法,保證業務流量從接入防護節點到轉發回源站服務器整個鏈路的時延最短。
說明Least time僅在開通智能負載均衡后支持使用。更多信息,請參見智能負載均衡。
設置生效后,WAF將根據設置的負載均衡算法向多個源站地址分發回源請求,實現負載均衡。
WAF前是否有七層代理(高防/CDN等)
選擇網站業務在接入WAF前是否開啟了其他七層代理服務(例如DDoS高防、CDN等)??蛇x項:
否:表示WAF收到的業務請求來自發起請求的客戶端。WAF直接獲取與WAF建立連接的IP(來自
REMOTE_ADDR
字段)作為客戶端IP。是:表示WAF收到的業務請求來自其他七層代理服務轉發,而非直接來自發起請求的客戶端。為了保證WAF可以獲取真實的客戶端IP進行安全分析,您需要進一步設置客戶端IP判定方式。
WAF默認讀取請求Header字段
X-Forwarded-For
(XFF)中的第一個IP地址作為客戶端IP。如果您的網站業務已通過其他代理服務的設置,規定將客戶端源IP放置在某個自定義的Header字段(例如X-Client-IP、X-Real-IP),則您需要選擇取指定Header字段中的第一個IP作為客戶端源IP,避免XFF偽造,并在指定Header字段框中輸入對應的Header字段。
說明推薦您在業務中使用自定義Header存放客戶端IP,并在WAF中配置對應Header字段。該方式可以避免攻擊者偽造XFF字段,躲避WAF的檢測規則,提高業務的安全性。
支持輸入多個Header字段。每輸入完一個Header字段,需要按半角逗號(,)確認。設置了多個Header時,WAF將按順序嘗試讀取客戶端IP。如果第一個Header不存在,則讀取第二個,以此類推。如果所有指定Header都不存在,則讀取XFF中第一個IP地址作為客戶端IP。
啟用流量標記
設置是否啟用WAF流量標記功能。
流量標記表示WAF在轉發客戶端請求到源站服務器時,在請求頭中添加或修改由您指定的自定義字段,用于標記該請求經過WAF轉發、記錄該請求的客戶端IP。
選中啟用流量標記后,您需要設置標記字段。
重要請不要填寫標準的HTTP頭部字段(例如User-Agent等),否則會導致標準頭部字段內容被自定義的字段值覆蓋。
如果攻擊者在域名接入WAF前,已獲取源站IP信息,并通過購買其他WAF實例,將請求回源到目標源站時,您可以啟用流量標記,并設置標記字段。當源站接收到請求后,建議對該字段進行校驗。如果存在指定標記字段,則允許訪問。
標記字段分為以下類型:
通過配置Header名和Header值,使WAF在回源請求中添加該Header信息,標記經過WAF的請求(區分沒有經過WAF的請求,便于您的后端服務統計分析)。
例如,您可以使用
ALIWAF-TAG: Yes
標記經過WAF的請求,其中,ALIWAF-TAG
為Header名,Yes
為Header值。通過配置真實客戶端源IP所在的頭部字段名,WAF可記錄該頭部字段并將該頭部字段傳遞回源站。關于WAF判定客戶端真實源IP的具體規則,請參見WAF前是否有七層代理(高防/CDN等)參數的描述。
通過配置真實客戶端源端口所在的頭部字段名,WAF可記錄該頭部字段并將該頭部字段傳遞回源站。
單擊新增標記,可以增加標記字段。最多支持設置5個標記字段。
資源組
從資源組列表中選擇該域名所屬資源組。
說明您可以使用資源管理服務創建資源組,根據業務部門、項目等維度對云資源進行分組管理。更多信息,請參見創建資源組。
將本機host綁定到本地WAF前的負載均衡服務器上,并測試流量是否正常通過WAF。
說明目前,暫時僅支持由阿里云技術人員操作。
修改需要接入域名的DNS解析到本地負載均衡服務器。
單擊完成,返回網站列表。
此時,您已成功將該域名接入混合云WAF的防護。