iT邦幫忙

2023 iThome 鐵人賽

DAY 17
0
IT管理

10年專業ISP服務商之蛻變 從無到有自建屬於自己的CDN服務系列 第 17

[Day17]自建CDN平台:iNODE NINJA的WAF規則介紹

  • 分享至 

  • xImage
  •  

不知道大家是否有記憶,我們花了兩個篇幅介紹CDN的主要功能-緩存(要複習請往這邊走緩存介紹①緩存介紹②),這一篇則要來介紹CDN另一個非常重要的功能-『WAF』。每家CDN的WAF判斷思維都不太一樣,我們將會花二到三章的篇幅來介紹什麼是WAF、iNODE NINJA的WAF判斷順序以及平台能夠針對什麼特徵來做動作配置的測試結果。

WAF簡介

WAF全名是Web Application Firewall,是一種針對網站服務內容的防護機制。隨著雲端服務技術資源與個人行動設備普及,惡意攻擊的頻率也隨著企業數位化的成長而大幅度增加,攻擊手法更是層出不窮,除了針對第三、第四層的高流量攻擊外,還會針對第七層以模擬真人來訪問的方式進行更為複雜的攻擊,藉此來消耗頻寬資源。而WAF就是專門應付複雜的第七層攻擊,我們可以透過配置WAF規則的「條件」,以及滿足條件時觸發的「動作」去過濾流量來阻擋惡意攻擊。

1.WAF規則

  • 新增WAF規則
    https://ithelp.ithome.com.tw/upload/images/20230920/20160839DhjfifoeR4.png

  • WAF配置思維
    平台的WAF配置思維是一個WAF規則的「條件-特徵」中,如果設置了多個欄位,那麼各個WAF條件之間的判斷方式是「AND」(如下圖粉紅色框所示),也就是說請求必須與所有設置的欄位匹配時,才會觸發WAF規則。例如在一條WAF中同時設定了「來源IP:1.1.1.1」,以及「請求URI:/login」,並且設置動作為Deny。這時請求必須同時滿足IP=1.1.1.1與URI=/login兩項條件才會觸發阻擋動作。
    而在單一欄位中若有多重條件時,可以透過換行表示不同的條件內容,單一欄位內的判斷方式是「OR」(如下圖藍色框所示),只要請求與欄位中任一值匹配時,就會觸發WAF規則。例如在「來源IP」設定了1.1.1.1/32與9.9.9.9/32,這時請求IP只要是1.1.1.1/32或9.9.9.9/32其中之一就會觸發。
    https://ithelp.ithome.com.tw/upload/images/20230920/20160839o4Owa09WZ6.png

2.WAF規則列表

配置完成後,新增的WAF規則就會出現在列表中
https://ithelp.ithome.com.tw/upload/images/20230920/20160839NUfPa9DgNz.png

  • 將WAF規則從「可用規則」到「應用規則」
    當我們在「WAF規則」配置完成之後,要到「域名物件」去做套用的動作。如下圖所示,配置完成的WAF規則,會出現在「可用規則」裡面,點擊。而上圖示將想要套用的WAF加到「應用規則」裡面。https://ithelp.ithome.com.tw/upload/images/20230920/20160839FxJwGwWB32.png

  • Allow優先於Deny
    iNODE NINJA的WAF規則判斷順序是由上而下判讀的,也就是說如果用戶先命中了Allow的規則時,即使下方有符合其他規則的條件,也不會產生任何效力。如下圖所示,我第一條規則先Allow了來自臺灣的IP,第二條規則再Deny我們辦公室的IP,但因為系統的判斷在第一條Allow時就已經通過了,因此我還是能順利用辦公室IP訪問網站。!https://ithelp.ithome.com.tw/upload/images/20230920/20160839tZs9I94zE9.png

  • Deny優先於Allow
    我們再調換順序來看,如果我第一條先設置了Deny辦公室IP,第二條再Allow臺灣IP,此時再去訪問網站的話,我的辦公室IP就會被WAF規則阻擋下來,出現錯誤提示頁面。
    https://ithelp.ithome.com.tw/upload/images/20230920/20160839gg017CfjTX.png

  • 錯誤提示:被Deny時的錯誤提示頁面
    https://ithelp.ithome.com.tw/upload/images/20230920/201608393mAMxE6S46.png

此外,在iNODE NINJA平台,不管是域名物件或是WAF規則,都是需要使用Regex,如下圖。
https://ithelp.ithome.com.tw/upload/images/20230920/20160839O1zjGEEL7b.png

今天就先到這裡,下一篇會針對iNODE NINJA可以設置的動作和特徵來做介紹。


上一篇
[Day16]自建CDN平台介面實作(一):『HTML頁面』功能實際套用
下一篇
[Day18]自建CDN平台介面實作(二):WAF規則-動作測試①
系列文
10年專業ISP服務商之蛻變 從無到有自建屬於自己的CDN服務30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言