本文介紹了為網站類業務同時部署DDoS原生防護和Web Application Firewall的配置方法。該方案適用於為網站業務同時防禦四層DDoS攻擊和七層Web攻擊、CC攻擊的情境。
前提條件
已建立ECS執行個體並部署了業務相關的應用,ECS執行個體擁有公網IP地址且網站有網域名稱。
說明如果網站用於在中國內地提供服務,則網站網域名稱必須已經完成ICP備案,否則將不能接入中國內地的Web Application Firewall執行個體進行防護。
已購買DDoS原生防護。更多資訊,請參見購買DDoS原生防護執行個體。
說明您在購買原生防護執行個體時,需要選擇資源所在地區。該地區必須與ECS執行個體一致。
已購買Web Application Firewall3.0。更多資訊,請參見購買WAF 3.0訂用帳戶執行個體。
背景資訊
為網站類業務開啟DDoS原生防護時,如果業務本身除了需要防禦DDoS攻擊,還需要防禦Web攻擊、CC攻擊,建議您為網站同時開啟Web Application Firewall,由Web Application Firewall協助業務防禦常見的Web攻擊、CC攻擊。關於Web Application Firewall(WAF)的詳細介紹,請參見什麼是Web Application Firewall。
同時使用DDoS原生防護和Web Application Firewall時,您需要先將網站業務接入Web Application Firewall進行防護,然後將WAF執行個體的IP地址添加為DDoS原生防護執行個體的防護對象。完成上述部署後,所有業務流量先經過WAF進行安全清洗,攻擊流量(包括DDoS攻擊、Web攻擊、CC攻擊)被丟棄,只有正常的業務流量被轉寄到來源站點伺服器。
操作步驟
登入Web Application Firewall3.0控制台。在頂部功能表列,選擇WAF執行個體的資源群組和地區(中國內地、非中國內地)。在左側導覽列,單擊接入管理,然後在CNAME接入頁簽單擊接入。
步驟一:配置監聽
填寫網域名稱,僅支援填寫一個需防護的網域名稱,包括精確網域名稱(如
www.aliyundoc.com)或萬用字元網域名稱(如*.aliyundoc.com)。萬用字元網域名稱匹配規則:
僅能匹配同層級子網域名稱。例如
*.aliyundoc.com能夠匹配www.aliyundoc.com、example.aliyundoc.com等,但不能匹配www.example.aliyundoc.com。當萬用字元應用於次層網域(如
*.aliyundoc.com)時,能夠匹配次層網域本身(即aliyundoc.com)。當萬用字元應用於第三層網域名(如
*.example.aliyundoc.com)時,不能匹配第三層網域名本身(即example.aliyundoc.com)。
優先順序規則:當精確網域名稱和萬用字元網域名稱同時接入,且需防護的網域名稱同時匹配這兩者時,系統優先應用精確網域名稱的防護規則。
為確認網域名稱所有權,需完成歸屬權驗證。若填寫網域名稱後系統提示需驗證,請從以下兩種驗證方式中任選其一進行驗證。
DNS解析驗證:在網域名稱解析服務位址,手動添加WAF提供的TXT記錄。推薦採用此方式。
檔案驗證:將WAF提供的驗證檔案上傳至標題來源站伺服器的指定根目錄。需具備來源站點伺服器操作許可權,並配置安全性群組策略,允許所有IP訪問,以確保WAF可從公網驗證該檔案。
DNS解析驗證
在驗證提示地區,單擊方法1:DNS解析驗證頁簽。
根據WAF控制台提供的記錄類型、主機記錄、記錄值,在您的網域名稱解析服務商添加TXT記錄。
若使用阿里雲Alibaba Cloud DNS,請參考以下步驟操作;若使用其他網域名稱解析服務商,請在其系統中進行類似配置。
等待TXT解析生效。網域名稱首次配置TXT解析記錄後將即時生效,但修改TXT解析記錄通常將在10分鐘後生效(生效時間取決於網域名稱DNS解析配置的TTL時間長度,預設為10分鐘)。
返回WAF控制台,單擊“點擊驗證”。
顯示驗證成功:網域名稱歸屬權驗證完成。
顯示驗證失敗:請按以下步驟排查:
檢查TXT記錄:確保添加的主機記錄和記錄值與WAF控制台提供的資訊完全一致。如有差異,請刪除錯誤記錄並重新添加,然後重新驗證。
等待DNS生效:DNS記錄配置後可能不會立即生效,生效時間取決於網域名稱伺服器中設定的TTL緩衝時間。建議等待10分鐘後重新驗證。
更換驗證方式:如多次嘗試仍無法通過驗證,建議使用"方法2: 檔案驗證"。
檔案驗證
在驗證提示地區,單擊方法2: 檔案驗證頁簽。
單擊下載驗證檔案連結(圖示①),下載驗證檔案。
重要驗證檔案僅在下載後的3天內有效,若逾期未完成檔案驗證,則需要重新下載。
請勿對驗證檔案執行任何修改操作,例如編輯、重新命名等。
WAF將根據選擇的協議類型訪問來源站點伺服器,請確保來源站點伺服器允許存取了對應的安全性群組或防火牆規則:
選擇HTTP時,需要允許存取入方向TCP協議80連接埠,訪問來源為0.0.0.0/0。
選擇HTTPS時,需要允許存取入方向TCP協議443連接埠,訪問來源為0.0.0.0/0。
手動將驗證檔案上傳至標題來源站伺服器(例如ECS、OSS、CVM、COS、EC2等)網頁的根目錄(圖示②)。
說明若添加的網域名稱為萬用字元網域名稱,例如
*.aliyun.com,則需要將驗證文檔上傳到aliyun.com的根目錄。上傳完成後,可以參考如下方法,查看驗證文檔是否上傳成功。
返回WAF控制台,單擊“點擊驗證”。
由於允許所有IP訪問的安全性群組規則存在安全風險,若來源站點伺服器初始安全性群組配置中未包含0.0.0.0/0規則,建議在完成所有權驗證後,刪除用於驗證而添加的安全性群組規則。
選擇網站協議類型(HTTP或HTTPS),並填寫相應配置資訊,可同時配置兩種協議。
說明WAF 共用虛擬機器主機定製版不支援 HTTPS。
HTTP
HTTP連接埠
填寫使用者訪問網站時使用的連接埠,建議HTTP協議使用80連接埠。如需自訂連接埠,支援在連接埠範圍內進行修改,每輸入一個連接埠,按斷行符號確認。
HTTPS
HTTPS連接埠
填寫使用者訪問網站時使用的連接埠,建議HTTPS協議使用443連接埠。如需自訂連接埠,支援在連接埠範圍內進行修改,每輸入一個連接埠,按斷行符號確認。
HTTPS 認證上傳方式
為使WAF能夠監聽並防護網站的HTTPS業務流量,需將網域名稱關聯的SSL認證上傳至WAF。可選項:
手動上傳:適用於認證未上傳至阿里雲Certificate Management Service (Original SSL Certificate)的情境。
選擇已有認證:從阿里雲Certificate Management Service (Original SSL Certificate)中選擇已簽發或已上傳的認證。
申請新認證:如未持有該網域名稱的SSL認證,需先完成認證購買,等待認證簽發後再接入WAF。
手動上傳
認證名稱:為認證設定一個唯一的名稱,不能與已上傳的認證名稱重複。
認證檔案:請使用文字編輯器開啟並粘貼 PEM、CER、CRT 格式的認證常值內容。
格式樣本:
-----BEGIN CERTIFICATE-----......-----END CERTIFICATE-----格式轉換:若認證是 PFX、P7B 等格式,請使用認證工具將其轉換為 PEM 格式。
憑證鏈結:若包含中間認證,請按照 “伺服器憑證、中間認證” 的順序拼接後粘貼。
私密金鑰檔案:請使用文字編輯器開啟並粘貼 PEM 格式的私密金鑰常值內容。
RSA:
-----BEGIN RSA PRIVATE KEY-----......-----END RSA PRIVATE KEY-----ECC:
-----BEGIN EC PRIVATE KEY-----......-----END EC PRIVATE KEY-----
選擇已有認證
從認證下拉式清單中選擇要上傳到WAF的認證。
說明若WAF控制台提示“憑證鏈結完整性校正失敗,使用該認證可能會影響您的業務訪問”,表示憑證鏈結存在完整性問題。請檢查認證內容的正確性與完整性後,在數位憑證管理服務控制台重新上傳。具體操作,請參見上傳、同步和共用SSL認證。
申請新認證
還沒有購買認證時,需參見購買正式認證進行購買,可單擊立即申請閱讀申請認證的相關文檔。
步驟二:配置轉寄
在伺服器位址地區,根據伺服器類型填寫來源站點伺服器IP或網域名稱。WAF通過此配置轉寄正常業務請求至來源站點伺服器。
確定來源站點伺服器類型後,完成以下配置。
IP
回源端口:即網站使用的連接埠。使用者通過步驟一中配置的HTTP/HTTPS連接埠訪問網站,WAF通過此處的回源端口訪問來源站點伺服器。
預設與上一步協議類型中配置的HTTP/HTTPS連接埠保持一致,支援在連接埠範圍內自訂回源連接埠,適用於需指定WAF以特定連接埠回源的情境。
回源IP:填寫來源站點伺服器IP地址。
必須為可訪問的公網IP地址。
支援填寫多個IP地址。每填寫一個IP地址,按斷行符號進行確認。最多支援添加20個來源站點伺服器IP。如果填寫了多個IP地址,WAF會根據您在負載平衡演算法中的配置轉寄回源請求。
支援配置 IPv4 和 IPv6 地址,可單獨或同時配置。如需配置IPv6地址,必須確保在配置監聽時,開啟IPv6防護。
網域名稱(如CNAME)
回源端口:即網站使用的連接埠。使用者通過步驟一中配置的HTTP/HTTPS連接埠訪問網站,WAF通過此處的回源端口訪問來源站點伺服器。
預設與上一步協議類型中配置的連接埠保持一致,支援在連接埠範圍內自訂回源連接埠,適用於需指定WAF以特定連接埠回源的情境。
回源域名:填寫來源站點伺服器網域名稱地址。
WAF僅支援將用戶端請求轉寄至該網域名稱解析出的IPv4地址。對於IPv6網站,請選擇IP方式接入。
重要如網站對應的來源站點伺服器位址變更,請及時修改此處的伺服器位址。
如需自訂配置負載平衡演算法、備鏈路回源、HTTP回源、回源SNI、要求標頭欄位配置、流量標記、回源逾時時間、回源重試、回源長串連,國密HTTPS、HTTP2、HTTPS強制跳轉、TLS協議版本、HTTPS加密套件、WAF前存在七層代理(如CDN)、IPv6、獨享IP、WAF叢集智能負載平衡等進階配置,請參見進階配置。若無需自訂,保持其餘配置項預設即可,單擊提交。
步驟三:切換流量
在WAF控制台完成以上配置後,必須執行以下操作將流量切換至WAF,否則WAF防護將不會生效。
允許存取WAF回源IP段:若來源站點伺服器上配置了安全性群組規則、防火牆規則等存取控制策略,或使用了安全狗、雲鎖等安全軟體,則必須在來源站點伺服器設定允許存取WAF回源IP段,否則WAF回源流量可能被攔截,導致業務中斷。
說明建議配置來源站點伺服器僅允許存取WAF回源IP段,確保僅有WAF能與來源站點伺服器建立通訊,避免攻擊者訪問來源站點伺服器公網IP,繞過WAF發起攻擊。
在接入完成嚮導頁右上方,單擊WAF IP 位址。
在回源IP段對話方塊,單擊複製,將所有WAF回源IP複製到剪貼簿。
說明複製的回源IP段之間以英文逗號(,)分隔。其中包含類似 2408:400a:3c:xxxx::/56 的地址,此類地址屬於 IPv6 位址區段。
在伺服器防火牆等位置允許存取以上IP段。例如當來源站點伺服器是阿里雲ECS執行個體時,需要在ECS安全性群組中允許存取,更多安全性群組的操作,請參見添加安全性群組規則。
在 ECS 執行個體詳情頁面,單擊,選擇目標安全性群組並進入其詳情頁。
在安全性群組詳情頁的下,單擊增加規則。
由於安全性群組規則無法在單條規則中同時包含IPv4和IPv6地址,需要分兩步操作:
添加IPv4規則:在建立安全性群組規則面板的訪問來源地區,粘貼上一步複製的IP段,並手動刪除其中的IPv6地址,將訪問目的(本執行個體)設定為在步驟二中配置的回源連接埠,其餘參數保持預設值,單擊提交即可。
添加IPv6規則:再次單擊增加規則,參照上一步添加IPv6位址區段,在訪問來源地區選取項目IPv6。
本地驗證WAF配置正確性:建議在修改網域名稱DNS解析設定前,先通過修改本地
hosts檔案對應網域名稱進行驗證。可防止因配置錯誤導致業務中斷。在接入完成嚮導頁,單擊複製CNAME擷取WAF提供的CNAME地址。
開啟網路診斷分析,選擇網路診斷分析,輸入複製的CNAME地址,如
xxx.c.yundunwaf2.com,單擊立即檢測。複製DNS服務商解析結果的IP地址。修改本機電腦
hosts檔案。Windows
使用記事本開啟
C:\Windows\System32\drivers\etc\hosts檔案,在末尾添加以下記錄並儲存。<上一步驟c複製的IP地址> <當前在WAF添加的網域名稱>開啟
cmd,執行ping <當前在WAF添加的網域名稱>命令,若輸出的IP地址與添加的IP地址一致,表示hosts修改已生效;否則請執行ipconfig /flushdns重新整理DNS緩衝後重新執行ping命令。開啟瀏覽器,在地址欄輸入被防護網域名稱進行訪問。
如果網站能夠正常訪問,說明WAF網域名稱配置正確。可以進行下一步的DNS解析修改。
如果網站訪問異常,可能說明WAF網域名稱配置錯誤。建議檢查上述配置,修複問題後重新進行本地驗證。
完成本地驗證後,重新修改hosts檔案至原始狀態。
macOS
通過
Command + 空格鍵搜尋並開啟終端。輸入
sudo vim /etc/hosts,開啟hosts檔案。在檔案末尾添加以下記錄並儲存。
<上一步驟c複製的IP地址> <當前在WAF添加的網域名稱>執行
ping <當前在WAF添加的網域名稱>命令,若輸出的IP地址與添加的IP地址一致,表示hosts修改已生效;否則請執行sudo killall -HUP mDNSResponder重新整理DNS緩衝後重新執行ping命令。開啟瀏覽器,在地址欄輸入被防護網域名稱進行訪問。
如果網站能夠正常訪問,說明WAF網域名稱配置正確。可以進行下一步的DNS解析修改。
如果網站訪問異常,可能說明WAF網域名稱配置錯誤。建議檢查上述配置,修複問題後重新進行本地驗證。
完成本地驗證後,重新修改hosts檔案至原始狀態。
修改網域名稱DNS解析:將網域名稱DNS解析指向WAF提供的CNAME地址,以確保網域名稱的Web請求解析到WAF進行安全防護。
說明建議於業務低峰期執行此操作以降低業務影響。
在接入完成嚮導頁,單擊複製CNAME擷取WAF提供的CNAME地址。
將網域名稱的DNS解析地址設定為上一步複製的地址。若網域名稱解析託管在阿里雲Alibaba Cloud DNS,請按以下步驟操作;若使用其他服務商的DNS服務,請在其系統中進行類似配置。
在公網權威解析頁面,定位到要設定的網域名稱,單擊其操作列下的解析设置。
在解析设置頁面,定位到要設定的主机记录,單擊其操作列下的修改。例如接入WAF的網域名稱為
www.aliyundoc.com,那麼此處需定位到主網域名稱aliyundoc.com下,主機記錄為www的條目進行修改。在编辑记录面板,選擇记录类型為CNAME,修改记录值為WAF提供的CNAME地址,其餘設定保持不變。
修改DNS解析記錄時:
對於同一個主機記錄,CNAME解析記錄值只能填寫一個,需要將其修改為WAF CNAME地址。
同一主機記錄下,CNAME記錄與A、MX、TXT等其他記錄類型存在衝突。需要先刪除存在衝突的記錄,再添加新的CNAME記錄。
警告在DNS變更的空窗期內,可能出現部分使用者訪問中斷的情況。因此刪除原解析記錄後必須立即新增CNAME記錄。
單擊确定,完成解析設定修改,等待修改後的DNS解析記錄生效。
說明由於DNS解析記錄生效需要一定時間,如果修改後網站訪問失敗,請等待10分鐘後重新整理頁面重新訪問。
步驟四:添加防護對象
登入流量安全產品控制台。
在左側導覽列,選擇。
在頂部功能表列左上方處,選擇執行個體所在資源群組,地區選擇全球。
單擊添加防護對象,在從資產中添加頁簽的待選擇對象地區,選擇WAF,將WAF資產移入已選擇對象中,單擊確認。具體操作,請參見防護對象。
添加防護對象後,WAF執行個體將享有DDoS原生防護執行個體的DDoS攻擊全力防護能力,在業務遭受DDoS攻擊時,自動觸發流量清洗,防禦DDoS攻擊。