如果您的網站遭受的攻擊既有流量型攻擊,又混雜精巧的Web應用程式層攻擊時(例如SQL注入、跨站指令碼攻擊、命令注入等)時,推薦您組合使用阿里雲DDoS高防和Web Application Firewall (WAF),通過多層次的安全防護對抗多種潛在威脅。本文介紹如何同時部署DDoS高防和WAF。
網路架構
DDoS高防和WAF同時部署時採用以下網路架構:DDoS高防(入口層,防禦DDoS攻擊)->WAF(中介層,防禦Web應用攻擊)->來源站點伺服器(ECS、SLB、VPC、IDC等)。網站業務流量會先經過DDoS高防清洗,然後轉寄到WAF過濾Web攻擊,最後只有正常的業務流量被轉寄到來源站點伺服器,保障網站的業務安全和資料安全。業務流量的轉寄過程如下圖所示。
注意事項
訪問請求將經過多層中間代理才到達來源站點,來源站點不能直接擷取請求的真實來源IP。如果您需要擷取訪問請求的真實來源IP,請參見配置DDoS高防後擷取真實的請求來源IP。
前提條件
已購買DDoS高防執行個體。更多資訊,請參見購買DDoS高防執行個體。
已購買WAF執行個體。更多資訊,請參見購買WAF 3.0訂用帳戶執行個體或開通WAF 3.0隨用隨付執行個體。
說明本文以WAF 3.0為例介紹,如果您使用的是WAF 2.0也可以參考本文操作。
步驟一:網站業務接入WAF
支援CNAME接入和雲產品接入兩種方式,接入前請您詳細瞭解各接入方式的推薦情境。詳細資料,請參見接入管理概述。
登入Web Application Firewall3.0控制台。在頂部功能表列,選擇WAF執行個體的資源群組和地區(中国内地、非中国内地)。
在左側導覽列,單擊接入管理。
通過CNAME接入或雲產品接入,將業務接入WAF。
CNAME接入
在CNAME接入頁簽,單擊接入。
在配置监听嚮導頁,完成如下配置後,單擊下一步。
僅簡要介紹各配置項,更詳細的配置項介紹,請參見網域名稱接入。
配置項
配置說明
網域名稱
填寫您的網站網域名稱。
协议类型
選擇網站使用的協議類型並填寫對應連接埠。每輸入一個連接埠,按斷行符號確認。
說明選中HTTPS後,您還需要將網站網域名稱關聯的認證上傳到WAF。
選中HTTPS並配置認證後,您也可以根據業務需要,設定是否開啟HTTP2、是否開啟HTTPS的強制跳轉、選擇TLS協議版本、選擇HTTPS加密套件。
WAF前是否有七層代理(高防/CDN等)
選擇是,並設定客户端IP判定方式。
(預設)取X-Forwarded-For中的第一个IP作为客户端源IP
WAF預設讀取請求Header欄位
X-Forwarded-For(XFF)中的第一個IP地址作為用戶端IP。【推荐】取指定Header字段中的第一个IP作为客户端源IP,避免XFF伪造
如果您的網站業務已通過其他代理服務的設定,規定將用戶端源IP放置在某個自訂的Header欄位(例如,X-Client-IP、X-Real-IP),則您需要選擇該選項,並在指定Header字段框中輸入對應的Header欄位。
說明推薦您在業務中使用自訂Header存放用戶端IP,並在WAF中配置對應Header欄位。該方式可以避免攻擊者偽造XFF欄位,躲避WAF的檢測規則,提高業務的安全性。
更多配置
根據您的業務,設定是否開啟IPv6、是否開啟獨享IP,選擇要使用的防護資源類型。
资源组
從資源群組下拉式清單中選擇該網域名稱所屬資源群組。如果不選擇,則預設加入預設資源群組。
在配置转发嚮導頁,完成如下配置後,單擊提交。
在接入完成嚮導頁,擷取WAF提供的CNAME地址。
配置項
說明
负载均衡算法
來源站點有多個伺服器位址時,根據業務需要設定,以實現負載平衡。
伺服器位址
填寫網站對應的來源站點伺服器的公網IP地址或來源站點網域名稱,用於接收WAF轉寄回源的正常業務請求(回源請求)。
HTTPS高级设置
根據業務需要,設定是否開啟HTTP回源、是否啟用回源SNI。
其它高级设置
根據業務需要,設定是否啟用流量標記、WAF回源到來源站點的逾時時間、回源重試、回源長串連。
雲產品接入
具體操作,請參見雲產品接入。
如果Web業務已啟用阿里雲應用型負載平衡(Application Load Balancer,簡稱ALB)、微服務引擎(Microservices Engine,簡稱MSE)、Function Compute(Function Compute,簡稱FC),建議您選擇SDK外掛程式接入。如果Web業務已啟用阿里雲傳統型負載平衡(Classic Load Balancer,簡稱CLB)上、雲端服務器(Elastic Compute Service,簡稱ECS),建議您通過反向 Proxy叢集接入。
步驟二:網站業務接入DDoS高防
登入DDoS高防控制台。
在頂部功能表列左上方處,根據DDoS高防產品選擇地區。
DDoS高防(中國內地):選擇中國內地地區。
DDoS高防(非中國內地):選擇非中國內地地區。
在左側導覽列,選擇。
在網域名稱接入頁面,單擊添加網站,填寫網站接入資訊,然後單擊下一步。
配置項
說明
功能套餐
選擇要關聯的DDoS高防執行個體的功能套餐。
執行個體
選擇要關聯的DDoS高防執行個體。
一個網站網域名稱最多可以關聯8個DDoS高防執行個體,且只能關聯同一種功能套餐下的多個執行個體。
網站
填寫您的網站網域名稱。
協議類型
選擇網站支援的協議類型。
說明選擇HTTPS協議時,完成網站配置後,請上傳網站網域名稱使用的認證。
選中HTTPS協議後,可以根據需要開啟HTTPS的強制跳轉、是否開啟HTTP回源、是否啟用HTTP2。
關於如何上傳認證、自訂安全性原則、啟用OCSP Stapling,請參見添加網站配置。
伺服器位址
網域名稱在WAF上的接入模式為CNAME接入時,選擇來源站點網域名稱並填寫步驟一中擷取的WAF的CNAME地址。
網域名稱在WAF上的接入模式為雲產品接入時,選擇來源站點IP並填寫來源站點伺服器的公網IP。
服務器連接埠
根據協議類型,設定來源站點提供對應服務的連接埠。
HTTP協議、Websocket協議的連接埠預設為80。
HTTPS協議、HTTP2協議、Websockets協議的連接埠預設為443。
您可以單擊自訂,自訂伺服器連接埠,多個連接埠間使用半形逗號(,)分隔。
Cname Reuse
僅DDoS高防(非中國內地)支援配置該參數。選擇是否開啟CNAME複用。更多資訊,請參見CNAME複用。
填寫轉寄配置,然後單擊下一步。
配置項
說明
回源負載演算法
有多個來源站點伺服器位址(來源站點IP或來源站點網域名稱)時需要配置。您可以修改回源負載平衡演算法或者為不同伺服器設定權重。
輪詢(預設):所有請求輪流分配給所有伺服器位址,預設所有伺服器位址具有相同權重。支援修改伺服器權重,伺服器權重越大,被分配到請求的可能性越高。適用於多來源站點且對來源站點負載均勻要求較高的情境。
IP hash:支援設定IP hash的同時為伺服器設定權重。使用IP hash保證同一用戶端的請求在一段時間內被分配到同一台伺服器處理,確保會話的一致性。結合權重模式,根據伺服器的處理能力進行權重分配,確保更高效能的伺服器處理更多的請求,最佳化資源利用效率。適用於需要保持使用者會話一致性的情境,極端情況下可能存在負載不均衡。
Least time:通過智能DNS解析能力和Least time回源演算法,保證業務流量將從接入防護節點到轉寄回來源站點伺服器整個鏈路的時延最短。
流量標記
用戶端真實源連接埠
HTTP Header中用戶端真實源連接埠所在的頭部欄位名。
一般情況下使用
X-Forwarded-ClientSrcPort欄位記錄真實的用戶端源連接埠,如果您的業務使用自訂的欄位記錄真實的用戶端源連接埠,請將Header欄位名稱設定為您自訂的欄位。您可以從高防轉寄到來源站點的請求中解析設定的欄位,擷取用戶端使用的真實連接埠。具體操作與擷取用戶端真實請求IP類似,更多資訊,請參見配置DDoS高防後擷取真實的請求來源IP。用戶端真實源IP
HTTP Header中用戶端真實源IP所在的頭部欄位名。
一般情況下使用
X-Forwarded-For欄位記錄真實的用戶端源IP,如果您的業務使用自訂的欄位記錄真實的用戶端源IP,請將Header欄位名稱設定為您自訂的欄位。您可以從高防轉寄到來源站點的請求中解析設定的欄位,擷取用戶端使用的真實IP。自訂Header
在請求中增加自訂HTTP Header(包含欄位名稱和欄位值)來標記經過DDoS的請求。高防在代理網站流量時,會在轉寄到來源站點的請求中添加對應的欄位值,方便您後端的服務進行統計分析。
請不要使用以下預設欄位作為自訂Header:
X-Forwarded-ClientSrcPort:預設被用於擷取訪問高防七層引擎的用戶端連接埠。X-Forwarded-ProxyPort:預設被用於擷取訪問高防七層引擎的監聽連接埠。X-Forwarded-For:預設被用於擷取訪問高防七層引擎的用戶端IP。
請不要使用標準HTTP頭部欄位(例如,host、user-agent、connection、upgrade等)或一些被廣泛使用的自訂HTTP頭部欄位(x-real-ip、x-true-ip、x-client-ip、web-server-type、wl-proxy-client-ip、eagleeye-rpcid、eagleeye-traceid、x-forwarded-cluster、x-forwarded-proto等),否則會導致請求原始頭部欄位的內容被改寫。
除用戶端真實源連接埠和用戶端真實源IP外,您最多支援添加5個自訂Header標籤。
cookie設定
下髮狀態
預設開啟。開啟狀態時DDoS高防將會在用戶端(如瀏覽器)植入Cookie用於區分統計不同用戶端或者擷取用戶端的指紋資訊等。詳細介紹,請參見設定CC安全防護。
重要如需停止DDoS高防向業務植入Cookie的行為,您可以將開關關閉,但同時DDoS高防也將無法通過CC安全防護原則模組對CC攻擊進行主動判斷和防護。
Secure屬性
預設關閉。如果開啟,Cookie只會在HTTPS串連中被發送,而不會在HTTP串連中發送,有助於保護Cookie不被攻擊竊取。當網站業務僅支援HTTPS連結時建議開啟。
其他設定
設定建立連線逾時時間:DDoS高防嘗試建立到來源站點的串連時,超過該時間串連未建立完成,會被認定為失敗。支援設定為1~10秒。
設定讀連線逾時時間:DDoS高防成功建立串連並向來源站點發出讀取資料請求之後,等待來源站點返迴響應資料的最長時間。支援設定為10~300秒。
設定寫連線逾時時間:資料從DDoS高防發送出去之後,並由來源站點開始處理之前,DDoS高防等待的時間長度。超過這段時間,如果DDoS高防還沒有成功地將所有資料發送給來源站點,或者來源站點沒有開始處理資料,會被認定為失敗。支援設定為10~300秒。
回源重試:當DDoS高防請求的資源在快取服務器上沒有命中時,快取服務器將嘗試從上一級快取服務器或來源站點重新擷取該資源。
回源長串連:在快取服務器與來源站點之間,使TCP串連在一段時間內保持活躍,而不是每完成一次請求就關閉。開啟後可以減少建立串連的時間和資源消耗,提高請求處理的效率與速度。
複用長串連的請求個數:在DDoS高防向來源站點建立的一個TCP串連中,支援發送的HTTP請求個數,可以減少因頻繁建立和關閉串連所帶來的延遲和資源消耗。支援設定為10~1000。建議小於等於後端來源站點(如:WAF、SLB)上配置的長串連請求複用個數,以免長串連關閉造成業務無法訪問。
空閑長連線逾時時間:DDoS高防向來源站點建立的一個TCP長串連,在沒有資料轉送之後,在高防的串連池保持開啟狀態的最長時間。這個時間段內如果沒有新的請求,該串連將被關閉,以釋放系統資源。支援設定為10~30秒。建議小於等於後端來源站點(如:WAF、SLB)上配置的逾時時間長度,以免長串連關閉造成業務無法訪問。
設定HTTP2.0 Stream數上限:僅當啟用HTTP2時支援設定,表示用戶端與DDoS高防間允許的最大並發流數量。支援設定為16~32,如果您有更高的配置訴求,請聯絡商務經理。
複製DDoS高防提供的CNAME地址。
步驟三:修改網域名稱的DNS解析
請將網域名稱解析指向DDoS高防提供的CNAME地址。以網域名稱DNS託管在阿里雲Alibaba Cloud DNS為例介紹,使用其他DNS服務商的網域名稱解析服務時請參考配置。
在網域名稱解析頁面,定位到目標網域名稱,單擊操作列的解析設定。
在解析設定頁面,定位到目標解析記錄,單擊操作列的修改。
說明如果要操作的解析記錄不在記錄列表中,您可以單擊添加記錄。
在修改記錄(或添加記錄)頁面,選擇記錄類型為CNAME,並將記錄值修改為網域名稱對應的DDoS高防CNAME地址(即步驟二中擷取到的DDoS高防CNAME地址)。
單擊確認,等待修改後的解析設定生效。
使用瀏覽器測試網站訪問是否正常。
相關文檔
修改DNS解析後,如果網站訪問出現異常,請參見業務接入DDoS高防後存在卡頓、延遲、訪問不通等問題。
同時部署DDoS高防和CDN時,請參見DDoS高防和CDN或DCDN聯動。