iT邦幫忙

2025 iThome 鐵人賽

DAY 29
0
Security

導入CDN防護大作戰系列 第 29

【Day29】一些導入前、導入中、導入後CDN攻略建議

  • 分享至 

  • xImage
  •  

終於來到了最後,前面鋪陳的很多劇情或是意外,都是真實發生在不同公司身上的狀況。

就如同DAY-28 提到的「不是問題的都變成問題了」,CDN商大多會嚴格遵守各項技術RFC的標準,與大家工作上對於可以通就好有很大的落差,最後就產生不如預期的意外。

其實,這次分享的還不到實務上的1/10,主要是因為行業及對效能上的要求不同,面臨的技術挑戰也不同。

這篇純粹以導入CDN防護為主軸,有不少技術的細節實例都需要直接看攻擊資料做解釋,但這些都會牽涉到機敏的資料,所以還只能很皮毛的跟大家說明設定注意事項。

接下來的說明,將依據個人的經驗以CDN防護為導入主軸,依據CDN導入前、導入中、導入後相關注意事項,提供大家一些評估的依據。

導入前評估

  • 服務網路環境
    因應CDN Reverse Proxy架構關係,所有依據來源IP進行防護或導流的網路機制,都要確認是否可以因應調整,包含:

    • 防火牆 : 如有限制來源IP存取的服務,需要將此存取條件改由CDN防火牆機制提供,原有防火牆Policy改為僅能CDN主機之網段可以存取。

    • 伺服主機負載均衡設備 :確認是否支援憑證解密,並可解讀HTTP Header欄位內容,以及Persistence機制並支援Cookie method,以確保交易服務能正常運作。此外,也會需要了解目前設備TCP-idle-timeout的相關設定,以利後續的設定調整。

    • 服務對外開放是IPV4 還是 IPV6,或是同時都需要開放。

    • 服務對外開放的Port,如果不是HTTP標準的80/443,請務必與你的CDN商確認,可以支援那些Port。

    • 牽扯未來CDN串接源站,或是DNS防護等高可用性架構,請廠商協助對你的DNS服務及設備確認,後續的CDN導入作業是否都能配合。

    • 調查整體服務需要的網路流量,建議初次可以稍微寬鬆一點,超量費的每GB價格一定會比較高。

  • 服務型態與系統環境資訊
    因應導入服務性質不同,關於服務型態,與系統交易等請求逾時時間,以及CDN架構特性等都要先調查相關資訊,包含:

    • 調查網站動靜態功能及物件提供的型態,並了解其業務屬性包含提供服務的對象,以及會利用那些軟體來存取的形式,例如是瀏覽器或是行動裝置APP。

    • 調查網站平台是透過哪一種WEB 伺服器例如Nginx、Apache、IIS、Tomcat等,TCP idle-timeout為何?

    • 調查是否有特定服務及功能,需要有較長的後端運算時間,因此需要設定較長的idle-timeout時間。

    • 調查允許存取的HTTP Method為何。

    • 憑證相關的資訊,包含到期的時間、類型、等級等。若是金融單位則需要注意法規要求,並請確認對外WHOIS域名聯繫資訊是否正確,以利後續的申請。

    • 調查是否有合作廠商或客戶,是透過直連IP不以Domain形式連接服務。確認這項資訊資訊是為了確保後續開啟防火牆僅能由CDN連線時,不會阻擋到這類型的請求。

  • 快取設定需求
    因應導入服務性質不同,關於靜態物件快取機制,需要事先了解以利規劃,包含:

    • 調查現有網站服務是否有提供快取的機制,後續導入CDN防護時,由誰來控制快取的設定。(不建議同時存在,CDN快取機制會失效)

    • 調查網站內容中,可以被快取的檔案類型/路徑 ; 若可以快取,可以設定的天數。

    • 調查需要被快取且檔案容量大於1MB的檔案類型/路徑 ; 或是多媒體如影片廣告等檔案類型/路徑。

    • 網站內容中,不能被快取的檔案類型/路徑。

  • 安全防護需求
    因應購買的防護機制不同,需要事先了解以利規劃,包含:

    • 若有DNS防禦機制,調查既有DNS服務的設備型號或軟體名稱與版本,並依據Primary、Secondary ZONE佈署架構,以及DNSSEC等設定規劃需求,尋求專業廠商的協助。

    • 務必確認是否有提供CDN來源IP及網段相關資訊,以利ISP及地端防護設備可以協同設定。

    • 既有網站對於請求Method中特別是GET以及POST,調查尖離峰的閥值以利後續防禦機制中請求頻率的初始設定。

    • 憑證Cipher強度要求,包含TLS版本、Cipher強度要求等。

    • 流量及防護日誌紀錄需要哪些資訊,以及可能需要的儲存日誌空間,建議初期擺放空間可以大點,以利分析。

導入中設定

  • 服務網路環境

    • 網路負載均衡設備 :CDN連接源站服務所採用的方式為FQDN或是IP,請依據服務的高可用性進行規劃。

    • 伺服主機負載均衡設備 :針對導入CDN的服務其HTTP Profile中,設定TCP-idle-timeout為301秒。並將地端憑證導入於伺服主機負載均衡設備中,設定依據CDN提供的真實來源IP欄位進行負載均衡設定,

  • 服務主機系統設定

    • WEB主機設定TCP-idle-timeout為301秒。

    • WEB主機及AP等相關服務架構上,依據來源IP進行辨識的機制或程式都須要進行調整,可以依據CDN真實來源IP欄位抓到正常的真實使用者IP。

  • 地端安全防護機制 :

    • 若有ISP流量清洗機制,請將CDN來源網段加入防護排除清單。

    • 若有地端防護機制是以偵測頻率請求為主,請將CDN來源網段加入防護排除清單。

    • WAF設備設定抓取CDN真實來源IP欄位,上線前務必確認清楚。

    • 導入CDN防護之網站,請用防火牆縣控管僅有CDN來源可存取。

  • CDN平台設定-站台服務部分 :

    • CDN連回源站若採FQDN的方式,建議可採亂數方式命名例如urjgsxzdfcgh.lekuza.com,降低遭駭客暴力破解網域,找到源站入口IP的機率。

    • CDN連回源站的憑證,務必請請協力廠商檢查該憑證是否有在CDN相容清單中,避免HTTPS連線的異常。

    • 真實IP的欄位建議調整名稱,不要使用預設值。

    • 盡量利用CDN的資源優勢,降低源站資源消耗例如:

      1. 請求HTTP就Redirect到HTTPS
      2. 請求根目錄就Redirect指定的路徑
      3. 404透過CDN回應訊息
    • 快取設定,若對初始導入快取沒有想法,可以先全站no store進行。待後續導入可透過平台分析機制,與開發同仁確定快取策略後,再逐步設定。

    • 參考【Day24】上線前的救命仙丹~~監控告警設定 設定告警,並確認寄發的對象能夠協同處理告警。

  • CDN平台設定-防護機制部分 :
    防護策略該怎麼制定,已經都在前面說明過可參考DAY-16~23的相關文章,這邊要提醒的是一些踩過的坑
    【Day17】 Akamai AAP 防護機制說明
    【Day18】 IP & GEO防火牆-防護機制與策略說明
    【Day19】 DDoS分散式防護-防護機制與策略說明
    【Day20】自訂客製化規則-防護機制與策略說明
    【Day21】Web應用程序防火墻-防護機制與策略說明
    【Day22】機器人爬蟲防護-防護機制與策略說明
    【Day23】上線前防護機制的調整

    • Akamai平台上的Match Criteria條件,只能做AND無法做OR的,也就是所有條件都要滿足才會生效。

    • Rate Thresholds 請求頻率不是萬靈丹,請搭配機器人防護以及自訂客製化規則,降低誤擋也提高防護準確度。

    • 若有人任何條件式針對VPS主機商ASN或是國家GEO進行設定,請務必考量近年流行的如SurfShark、Nord VPN服務。這些服務的主機同樣會架設在這些VPS商,因此若阻擋這些來源,一定會導致部分使用者的誤擋。

    • 平心而論,如果貴司非常在意客訴,一丁點都不能發生,哪麼請以不誤擋的策略為主。但可以準備一個以保護服務為主的防護策略,該策略允許少部分流量遭到誤擋,這個在發生大型攻擊時可以拿出來用而不被罵。

    • 要注意機器人防護中,API流量是不可能進行互動挑戰的,所以當網站混合了API及HTML流量時,務必小心機器人的策略擋住正常流量。

導入後維運

  • 針對Repot中幾個重要指標要定期注意 :
    • hits by response :這個是統計從使用者端請求送到CDN主機,以及CDN主機轉送到源站,針對HTTP Status的統計。理論上應該2xx跟3xx會比較多,但如果4xx及5xx有增加的趨勢,就應該要進行深度分析,理解原因。

    • 如果是0XX變多,那也要注意為何源站無回應的異常數量變多,以及發生時間點可能會是網路設備、系統主機等造成的,增加後續除錯的效率。
      https://ithelp.ithome.com.tw/upload/images/20251012/20042779hq9JGdvKIq.png

    • 觀察hits跟bytes以及Offload(快取率)之間的關係,只要Offload代表一定會回源站進行請求,而這類的而這類的物件如果hits跟bytes又很高,則源站的負載就會高。因此,定期分析3者之間的關係就會清楚的知道,從效能或是或是防禦的角度上,要如何調整規則降低源站的負擔。

    • 密切注意Origin Connection Failure這條告警,只要不是地端防護機制的誤擋,這條告警出現的頻率可以作為服務穩定度參考。簡單的說,極有可能就是你的網站本身就不穩定,但導入CDN後就可能被拿來當擋箭牌,說都是CDN的問題。

    • 當ISP流量清洗機制封鎖境外流量時,極有可能CDN服務會被影響。因為CDN商的網路運作,只要不是自己拉海纜來的,都要跟ISP商租用頻寬,當額度不夠時就會將使用者流量丟出去境外再回來!!

要注意的事項真的是太多,所以寫不完啦,找對廠商幫你導入比較重要!!

最後的DAY-30,就來聊聊關於CDN產品的選擇以及一些常見的QA囉!! 明天見!!


上一篇
【Day28】上線慘況實錄4-不是問題的都變問題了!!
下一篇
【Day30】導入CDN防護大作戰完結心得
系列文
導入CDN防護大作戰30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言