如果您已創建云服務器ECS(Elastic Compute Service)實例,您可以將實例的引流端口添加到Web應用防火墻(Web Application Firewall,簡稱WAF),將Web業務引流到WAF防護。本文介紹如何將ECS實例接入WAF。
背景信息
ECS是阿里云提供的性能卓越、穩定可靠、彈性擴展的IaaS(Infrastructure as a Service)級別云計算服務。云服務器ECS免去了您采購IT硬件的前期準備,讓您像使用水、電、天然氣等公共資源一樣便捷、高效地使用服務器,實現計算資源的即開即用和彈性伸縮。更多信息,請參見什么是云服務器ECS。
WAF支持為ECS實例開啟安全防護。將ECS實例接入WAF后,實例所有的Web業務流量將被指定網關引導到WAF進行檢測。WAF過濾Web應用攻擊后,將正常的業務流量轉發回ECS服務器。具體網絡架構如下圖所示:
使用限制
云產品接入適用于快速將阿里云ALB、MSE、FC、CLB、ECS、NLB、SAE 2.0或APIG資源接入WAF防護。如需防護非阿里云資源的Web應用,請通過CNAME接入方式將域名下業務接入WAF,具體操作請參見添加域名。
限制項類型 | 描述 |
支持的實例 | 同時滿足:
|
支持的地域 |
|
引流端口配置的數量 | 與防護對象數量保持一致:
|
支持的端口范圍 | 支持防護0~65535范圍內的任意端口,包括標準端口和非標端口。更多信息,請參見WAF支持的端口范圍。 |
業務同時接入DDoS高防和WAF | 如果您的業務需要同時接入DDoS高防和WAF,則只有在業務通過域名接入(即七層接入模式)接入DDoS高防時,該業務才支持通過透明接入模式接入WAF。 |
前提條件
已開通WAF 3.0服務。具體操作,請參見開通包年包月WAF 3.0、開通按量付費WAF 3.0。
如果您開通的是包年包月實例,請確認您的實例還可以添加防護對象。否則,將無法進行云產品接入。
您可以訪問防護對象頁面,查看實例還可以添加的防護對象數。
添加引流端口
實例接入WAF時,Web業務可能會出現秒級閃斷。在客戶端可自動重連的情況下該閃斷會自動恢復,不會對您的業務造成影響,請您關注業務并根據業務系統評估準備重連或回源等相關容災機制。
ECS實例接入WAF后,如果進行如下操作,引流端口會自動取消接入。您需要重新添加端口,否則,業務流量將不會經過WAF防護。
更換實例上綁定的公網IP
ECS創建遷移任務,變更可用區
實例被釋放
ECS引流是對EIP或公網IP進行的引流。
ECS解綁EIP后引流會被自動刪除。
登錄Web應用防火墻3.0控制臺。在頂部菜單欄,選擇WAF實例的資源組和地域(中國內地、非中國內地)。
在左側導航欄,單擊接入管理。
選擇云產品接入頁簽,在左側云產品類型列表,選擇ECS。
根據頁面提示,單擊立即授權,完成云產品授權。
完成后,阿里云將自動為您創建WAF服務關聯角色AliyunServiceRoleForWAF。您可以在RAM控制臺的 頁面,查看阿里云為WAF自動創建的服務關聯角色。
說明如果您已經完成云產品授權,則授權頁面不會出現,您可以直接執行后續步驟。
單擊接入。
在接入資產- ECS面板,完成如下配置。
配置項
相關操作
選擇需要添加的實例&端口
同步最新資產
如果要添加的實例未同步到實例列表,單擊同步最新資產,更新實例列表。
添加端口
定位到要添加的實例,單擊操作列的添加端口。
填寫要添加的端口信息,按回車進行確認。
您輸入的端口必須在可選端口范圍。您可以單擊查看端口范圍,查看WAF支持的HTTP及HTTPS端口。更多信息,請參見WAF支持的端口范圍。
選擇端口對應的協議類型。可選項:HTTP、HTTPS。
選擇HTTPS后,需要上傳證書。
說明上傳的默認證書和擴展證書的總數不能超過10個。
默認證書
選中手動上傳,并填寫證書名稱、證書文件(格式示例:
-----BEGIN CERTIFICATE-----......-----END CERTIFICATE-----
)、私鑰文件(格式示例:-----BEGIN RSA PRIVATE KEY-----......-----END RSA PRIVATE KEY-----
)。重要如果證書是PEM、CER、CRT格式,您可以使用文本編輯器直接打開證書文件,并復制其中的文本內容;如果是其他格式(例如PFX、P7B等),您必須將證書文件轉換成PEM格式后,才可以使用文本編輯器獲取其中的文本內容。您可以登錄數字證書管理服務控制臺,使用證書格式轉換工具進行轉換。具體操作,請參見證書格式轉換。
如果域名關聯了多個SSL證書(例如,存在證書鏈),您必須將證書文件中的文本內容拼接后,再上傳到WAF。
如果您的證書為如下兩種情況,您可以選中選擇已有證書,從證書下拉列表中選擇要上傳到WAF的證書。
證書已通過阿里云數字證書管理服務簽發。
證書為第三方證書,且已上傳到數字證書管理服務。
重要選擇上傳到數字證書管理服務的第三方證書時,WAF控制臺提示證書鏈完整性校驗失敗,使用該證書可能會影響您的業務訪問,可能是選擇的證書存在問題。您可以單擊云盾-證書服務,在數字證書管理服務控制臺重新上傳新的證書。具體操作,請參見上傳和共享SSL證書。
如果您的實例配置了多個域名的HTTPS網站,可通過擴展證書導入多個不同域名對應的證書。擴展證書的上傳方式與默認證書相同,具體操作,請參見默認證書。
選中HTTPS后,還支持啟用以下高級配置:
自定義HTTPS通信中允許使用的TLS協議版本。如果客戶端使用不符合要求的協議版本,WAF會丟棄其請求流量。此處設置的協議版本越高,通信安全性越好,但兼容性會有所降低。
建議您根據網站本身的HTTPS配置,選擇允許WAF監聽的TLS協議版本。如果您不清楚網站的HTTPS配置,建議使用默認選項。
可選項:
支持TLS1.0及以上版本,兼容性最高,安全性較低(默認)
支持TLS1.1及以上版本,兼容性較好,安全性較好
使用該選項后,如果客戶端使用TLS 1.0版本,將無法訪問網站。
支持TLS1.2及以上版本,兼容性較好,安全性最高
使用該選項后,如果客戶端使用TLS 1.0和1.1版本,將無法訪問網站。
如果您的網站支持TLS 1.3協議,請選中開啟支持TLS1.3。WAF默認不監聽TLS 1.3協議的客戶端請求。
自定義HTTPS通信中允許使用的加密套件。如果客戶端使用不符合要求的加密套件,WAF會丟棄其請求流量。
默認已選擇WAF支持的全部加密套件。建議您只在網站只支持特定加密套件的前提下,再修改該配置。
可選項:
全部加密套件,兼容性較高,安全性較低(默認)
協議版本的自定義加密套件、請謹慎選擇,避免影響業務:如果您的網站本身只支持特定的加密套件,請選擇該選項,并從WAF支持的加密套件中選擇網站支持的加密套件。
如果客戶端使用其他加密套件,將無法訪問網站。
WAF前是否有七層代理(高防/CDN等)
如果網站在接入WAF前啟用了其他七層代理服務(例如DDoS高防、CDN等),配置該功能。
選擇否(默認),表示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字段框中輸入對應的Header字段。
說明推薦您在業務中使用自定義Header存放客戶端IP,并在WAF中配置對應Header字段。該方式可以避免攻擊者偽造XFF字段,躲避WAF的檢測規則,提高業務的安全性。
支持輸入多個Header字段。每輸入完一個Header字段,按回車進行確認。如果設置了多個Header,WAF將按順序嘗試讀取客戶端IP。如果第一個Header不存在,則讀取第二個,以此類推。如果所有指定Header都不存在,則讀取XFF中第一個IP地址作為客戶端IP。
資源組
從資源組列表中選擇該域名所屬資源組。如果不選擇,則默認加入默認資源組。
說明您可以使用資源管理服務創建資源組,根據業務部門、項目等維度對云資源進行分組管理。更多信息,請參見創建資源組。
高級設置
WAF 3.0 會默認為經過的 HTTP 請求自動插入
X-Forwarded-Proto
頭部,用于標識與 WAF 之間的通信協議使用的是HTTP還是HTTPS協議訪問代理服務器。如果您的網站應用程序無法正確處理該頭部,可能會導致一些兼容性問題,影響業務正常運行。您可以選擇關閉 WAF 自動插入該頭部的功能,避免此類問題發生。啟用流量標記可以幫助源站區分經過WAF的請求,獲取客戶真實源IP或源端口。
例如,如果攻擊者在域名接入WAF前,已獲取源站IP信息,并通過購買其他WAF實例,將請求回源到目標源站時,您可以在源站對啟用流量標記的字段進行校驗。如果請求中存在指定標記字段,則為WAF檢測后的正常請求,放行該請求;如果請求中不存在指定標記字段,則為攻擊者請求,攔截該請求。
您可以配置如下類型的標記字段:
通過配置Header名和Header值,使WAF在回源請求中添加該Header信息,標記經過WAF的請求(區分沒有經過WAF的請求,便于您的后端服務統計分析)。
例如,您可以使用
ALIWAF-TAG: Yes
標記經過WAF的請求,其中,ALIWAF-TAG
為Header名,Yes
為Header值。通過配置真實客戶端源IP所在的頭部字段名,WAF可記錄該頭部字段并將該頭部字段傳遞回源站。關于WAF判定客戶端真實源IP的具體規則,請參見WAF前是否有七層代理(高防/CDN等)參數的描述。
通過配置真實客戶端源端口所在的頭部字段名,WAF可記錄該頭部字段并將該頭部字段傳遞回源站。
重要請不要填寫標準的HTTP頭部字段(例如User-Agent等),否則會導致標準頭部字段內容被自定義的字段值覆蓋。
單擊新增標記,可以增加標記字段。最多支持設置5個標記字段。
如果WAF與您的源站之間出現長連接超時響應問題時,您可以根據實際業務情況,調節長連接超時時間、復用次數、空閑長連接超時時間。
設置讀連接超時時間:WAF等待源站響應的時間。超過該時間,則WAF斷開該連接。默認值為120s,可配置范圍為1s~3600s。
設置寫連接超時時間:WAF向源站發送請求的時間。超過該時間,則源站斷開該連接。默認值為120s,可配置范圍為1s~3600s。
回源長連接:如果您需要配置長連接的復用次數或空閑長連接超時間,您可以開啟該功能,并設置以下參數。
復用長連接的請求個數:WAF可以向源站同時發送的請求或接收的響應的個數。默認值為1000個,可配置范圍為60個~1000個。
空閑長連接超時時間:空閑長連接的關閉時間。默認值為3600s,可配置范圍為10s~3600s。
確認并選中要添加的實例后,單擊確定。
完成接入后,WAF會自動生成一個命名為“實例id-端口-資產類型”的防護對象,并為該防護對象默認開啟基礎防護規則。您可以在接入列表,單擊已接入的實例ID,在防護對象頁面,查看自動添加的防護對象,并為其配置防護規則。具體操作,請參見防護配置概述。
管理WAF
查看源站服務器和管理引流端口
實例接入WAF后,您可以查看源站服務器的詳細防護信息,以及在需要緊急容災的情況下強制關閉引流或刪除引流端口。
在接入管理頁面,單擊云產品接入頁簽。
在ECS分頁,單擊目標實例前的圖標,展開查看該實例下已添加到WAF防護的端口。
查看端口詳情:單擊端口詳情,查看端口、協議、配置的證書信息,設置WAF前是否有七層代理(高防/CDN等)、啟用流量標記(高級設置)、配置回源長連接(高級設置)。
取消接入:單擊取消接入,在取消接入對話框,單擊確定。
重要取消接入WAF時,Web業務可能會出現秒級閃斷。在客戶端可自動重連的情況下該閃斷會自動恢復,不會對您的業務造成影響,請您關注業務并根據業務系統評估準備重連或回源等相關容災機制。
取消接入后,您資產上的流量將不再受到WAF保護,您可以單擊接入,重新添加端口。具體操作,請參見添加引流端口。
更新引流端口綁定的證書
如果證書即將到期或其他原因導致證書發生變更(例如證書被吊銷)時,您需要更新引流端口綁定的證書。
證書的剩余有效期不足30個自然日時,WAF會在接入列表的證書信息處,通過圖標,提示您的證書即將過期,請盡快更新證書。
如果您希望在證書即將到期時,收到郵件、短信等提醒,您可以設置SSL證書消息提醒,具體操作,請參見設置SSL證書消息提醒。
為避免您的業務因證書到期無法正常使用,您可以開通阿里云數字證書管理服務(原 SSL 證書)的證書托管服務,在證書即將到期時幫您自動申請并更新證書。更多信息,請參見什么是托管服務。
具體操作如下所示:
續費證書或將第三方證書上傳到數字證書管理服務(原 SSL 證書)。具體操作,請參見SSL證書續費或上傳和共享SSL證書。
同步證書到WAF。
在數字證書管理服務(原 SSL 證書)控制臺部署證書到WAF。具體操作,請參見部署SSL證書到阿里云產品。
在WAF控制臺更新證書。
在云產品接入頁簽,選擇ECS分頁,定位到目標實例,單擊圖標,選擇目標端口操作列的編輯證書。
在默認證書區域,選中選擇已有證書,并重新選擇更換后的證書。
常見問題
如果您在接入過程中找不到需要接入的CLB實例或ECS實例,請參見接入配置頁面找不到需要接入的CLB實例或ECS實例的排查方法。