本文介紹了已經接入Web Application Firewall(Web Application Firewall,簡稱WAF)進行防護的網站出現訪問異常問題時,如何排查和修複問題。
排查流程
網站接入Web Application Firewall後,如果出現訪問異常,您可以按照以下流程排查問題:
檢查是否為來源站點問題:通過旁路Web Application Firewall,判斷是否為來源站點伺服器的響應問題。
檢查是否為WAF誤攔截:通過手動關閉防護模組,判斷是否為WAF誤攔截問題。
排查常見訪問錯誤:對照常見訪問異常錯誤,分析和排查問題。
關於排查問題中可能用到的工具,請參見附錄:常用工具介紹。
檢查是否為來源站點問題
您可以參照以下步驟旁路Web Application Firewall,判斷來源站點伺服器響應是否有問題:
禁用來源站點上的安全性群組、黑白名單、防火牆、其他雲安全產品等應用,防止WAF回源IP被拉入黑名單。
修改本機電腦的hosts檔案,將問題網域名稱的解析指向對應的ECS執行個體、SLB執行個體、伺服器公網IP(即在WAF上填寫的來源站點IP地址)。
通過本機電腦的瀏覽器訪問問題網域名稱,查看訪問請求不經過Web Application Firewall時,是否能複現問題。
如果問題複現,說明可能是來源站點伺服器的響應異常,建議您及時檢查來源站點伺服器的工作狀態(例如進程、CPU、記憶體、Web日誌等)是否有異常並修複異常。
如果問題沒有複現,說明不是來源站點伺服器的響應異常。如何進行下一步排查,請參見檢查是否為WAF誤攔截。
檢查是否為WAF誤攔截
您可以參照以下步驟關閉WAF的攔截功能,判斷是否是WAF誤攔截:
為網域名稱關閉正則防護引擎(具體操作請參見設定規則防護引擎),查看問題是否仍然存在。
如果問題消失,建議您將正則防護引擎的防護規則群組設定為寬鬆規則群組(預設為中等規則群組),或者您可以通過Log Service分析有問題的URL,並添加一條自訂防護策略(具體操作請參見設定自訂防護策略),允許存取訪問該URL的請求。
如果關閉正則防護引擎後問題仍然存在,您可以為網域名稱關閉CC安全防護(具體操作請參見設定CC安全防護),查看問題是否仍然存在。
如果問題消失,建議您將CC安全防護的模式設定為防護(如果本來就是防護模式,請忽略),或者您可以通過Log Service分析有問題的URL,並添加一條自訂防護策略(具體操作請參見設定自訂防護策略),允許存取訪問該URL的請求。
如果關閉CC安全防護後問題仍然存在,說明不是WAF誤攔截,請參見排查常見訪問錯誤。
排查常見訪問錯誤
如果發現不經過Web Application Firewall問題會消失,而接入Web Application Firewall後,問題穩定複現,您可以按照以下方式進行排查。
問題 | 現象 | 原因 | 解決方案 |
410網站暫時無法訪問 | 出現410網站暫時無法訪問頁面,並提示該網域名稱對應的協議和連接埠未接入WAF;或者HTTP返回碼為410。 | 沒有在WAF上配置相關網域名稱,或者沒有配置相關連接埠。例如僅在WAF上配置了伺服器連接埠為80,但使用者訪問了443連接埠,此時WAF會返回410頁面。 | 在控制台添加相關網域名稱或連接埠。具體操作,請參見添加網域名稱。 |
405訪問阻斷 | 出現405阻斷頁面或者HTTP返回碼為405。 | 請求被自訂防護策略或者正則防護引擎阻斷。 | |
302串連重設 | 某些IP在訪問網站時顯示串連被重設,HTTP返回碼為302,且在要求標頭獲得Set-Cookie。 | IP訪問觸發了CC防禦規則。 | 為網域名稱關閉CC安全防護(具體操作請參見設定CC安全防護),查看問題是否仍然存在。 如果關閉防護後訪問恢複正常,說明是CC防護規則誤攔截,建議您將CC安全防護的模式設定為防護(如果本來就是防護模式,請忽略),或者您可以通過Log Service分析有問題的URL,並添加一條自訂防護策略(具體操作請參見設定自訂防護策略),允許存取訪問該URL的請求。 |
HTTPS訪問異常 | 用戶端的HTTPS請求返回認證為 | Web Application Firewall需要瀏覽器支援SNI,而用戶端的瀏覽器可能不支援SNI。 | 一般蘋果系統預設支援SNI,而Windows、Android系統需要做SNI相容,具體請參見SNI相容性導致HTTPS訪問異常(伺服器憑證不可信)。 |
502訪問白屏 | 網站顯示白屏,同時HTTP返回碼為502。 | 當來源站點(指ECS、SLB或伺服器)出現丟包或者不可達的時候,Web Application Firewall會返回白屏。 |
|
504網關逾時 | 網站顯示網關逾時,同時HTTP返回碼為504。 |
|
|
網域名稱ping不通 | 網域名稱ping不通,且收到簡訊通知,WAF受DDoS攻擊,進入了黑洞。 | DDoS流量攻擊不在Web Application Firewall的防護範圍內。 | 開通DDoS防護服務,抵禦DDoS攻擊。更多資訊,請參見阿里雲DDoS防護方案對比。 |
伺服器負載不均 | 後端多台伺服器負載不均。 | Web防火牆使用四層IP雜湊。因此,當DDoS高防串聯Web Application Firewall或SLB使用四層轉寄時,ECS可能出現負載不均。 | Web Application Firewall和ECS直接使用SLB負載平衡,即使用7層轉寄,並開啟Cookie會話保持或負載平衡。 |
微信或支付寶回調失敗 | 微信或支付寶回調失敗。 | 可能是高頻訪問被CC防護規則攔截,或者使用了HTTPS方式回調,且微信和支付寶不支援SNI。 |
|
附錄:常用工具介紹
Chrome瀏覽器-開發人員工具:Chrome瀏覽器內建開發人員工具,可以用來查看頁面元素的載入情況。按F12開啟工具,切換至Network標籤。
ping:Windows和Linux作業系統內建的網路測試載入器,可以用來分析和判定網路故障。Windows系統按Win+R,輸入CMD開啟工具。用法:
ping 網域名稱或IP。traceroute(Linux)、tracert(Windows):鏈路追蹤工具,可以檢測在哪一跳發生丟包。Windows系統按CTRL+R,輸入cmd開啟工具。用法:
tracert -d 網域名稱或IP。nslookup:用於檢測網域名稱解析的工具,可以檢查網域名稱解析是否生效。Windows系統按CTRL+R,輸入cmd開啟工具。用法:
nslookup 網域名稱。