作者: Colin Jao 饒康立 – VMware資深技術顧問,主要負責VMware NSX產品線,目前致力於網路虛擬化、分散式安全防護技術與新應用遞送方案的介紹與推廣。

在系列文前面幾篇我們說明了常見的客戶Web網站進階配置與維運需求,也就底層牽涉到的HTTP協議名詞做了簡單的解釋。當要滿足這些需求時,在NSX Advanced Load Balancer這邊可以使用的方式包括了UI介面內的Policy機制,以及透過寫Datascript程序。後面我會和大家依序介紹,本篇先由Policy開始。

在我們於NSX Advanced Load Balancer內配置Virtual Service來提供應用遞送服務時,在每個Virtual Service的UI介面內都可以配置對應的Policies。不同種類,比如說Virtual Service的Application Profile型態可能是HTTP/S,可能是基礎的L4轉送,可能是其他不同應用如DNS / Syslog等等,對應的Policies都不一樣。但以我們這邊最主要、最常見的HTTP/S類型Virtual Service來說,在Policies內可以配置的包括下面這四種

  • Network Security Policy
  • HTTP Security Policy
  • HTTP Request Policy
  • HTTP Response Policy

如下圖所示。管理者可以依據實際要完成的需求,到對應的Policy UI工作頁面內進行配置。這邊我逐步就各個Policy進行對應的說明,並且就實際客戶那邊有達成的需求做簡單的舉例:

Network Security Policy

這邊就是大家非常熟悉的標準防火牆。針對這個Virtual Service,管理者可以透過IP-Group定義網路地址範圍群組,並設定來自這個群組用戶才能 / 不能連到服務。因為就是網路防火牆,不多做細部說明,幾個特點說一下:

  • 除了標準的手動設定IP地址外,由於NSX Advanced Load Balancer有包括GeoIP Database,因此管理者可以透過地區配置,比如說來自台灣、北美、特定國家等的IP地址,才能連線到服務。
  • 如果企業在使用NSX Advanced Load Balancer時有購置雲端訂閱 (SaaS Subscription),NSX ALB Controller可以時時更新名譽資料庫 (IP Reputation Database),此時管理者也可以設定將名譽資料庫定義為惡意地址的連線直接阻斷
  • 防火牆規則的Action除了允許通過與阻斷外,也可以做流量限制 (Rate Limit)
  • 防火牆規則符合時,同樣可以進行需求的日誌記錄 (Log)

來舉一個實際企業使用的例子。客戶建立了一個Virtual Service提供服務,但所有終端用戶不應該直接連到這個Virtual Service,而在企業架構內需要先連到前端、以前已經建立的Web Application Firewall,然後才能連到此服務。也就是說,這個Virtual Service應該只會有『來自前端WAF設備』的網路連線,其他連線都應該阻斷以強化安全。

此時,管理者可以先建立一個IP-Group,裡面定義哪些IP範圍是『來自前端設備』(此處的IP設定僅為舉例,當然不是客戶的實際配置):

然後在Network Policy內我們就可以建立一條規則,設定只要是來自這個IP Group的Traffic,就要設定阻斷 (Deny)

上面應該是一個很直覺的Network Security Policy案例,供大家參考。

HTTP Security Policy

HTTP Security能比Network Policy做更多的事,除了原本的網路地址檢視外,HTTP Security Policy能夠透過檢查HTTP協議、版本、URL、表頭等等機制來做更多的檢查,同時除了Allow或阻斷外,也可以進一步在符合條件時,進行HTTP to HTTPS轉送,或是直接發送特定回應等等動作,如下圖所示。

同樣的舉個實際企業的使用例子比較直接。客戶的要求是希望能夠手動快速擋特定的 Bot (網路爬蟲機器人),以強化安全或優化網站效能。特定的Bot通常都會在User-Agent內包含特定的字串,此時我們可以透過HTTP Security Policy內,選擇Headers然後指定User-Agent這個Header內有包含特定字串(範例內是wordpress)。然後在條件符合時,直接將連線進行阻斷。

本篇我們先就Network Security及HTTP Security這兩種Policies做了簡單的說明,並佐以用戶實際使用的應用案例進行討論。下篇繼續說明更常用的兩個Policies: HTTP Request與HTTP Response。