應廣大看官要求,今天為大家介紹如何在 Azure 上搭建 DMZ 區域。為什么講這個話題,安全無小事,很多用戶在上雲的時候並沒有做好安全的前期規划導致后期埋下了安全隱患。為什么專挑 DMZ 網絡安全設計講,要想富先修路,在雲端跟 IDC 相同,要想富先修路,網絡先行,同時 DMZ 區域是整個網絡安全設計中的重點,流量屬性最復雜,安全重要性最高。其次關於雲原生,很多用戶上雲后希望更多采用雲平台第一方的托管服務,過去一年多的時間 Azure 在安全產品上有很多新產品發布,也希望通過這篇文章,幫助用戶了解 Azure 上有哪些牌,並將這副牌打好。在此次 DMZ 區域設計實踐中,我們會涉及到 Azure 雲上幾個重要的安全產品,Azure VNET(虛擬網絡服務),Azure DDoS(拒絕服務攻擊防御服務),Azure WAF (WEB 安全防火牆服務),Azure Firewall (防火牆服務),Azure NSG(網絡安全組服務),Azure Bastion(跳板機服務)。
“DMZ是英文“demilitarized zone”的縮寫,中文名稱為“隔離區”,也稱“非軍事化區”。它是為了解決安裝防火牆后外部網絡的訪問用戶不能訪問內部網絡服務器的問題,而設立的一個非安全系統與安全系統之間的緩沖區。該緩沖區位於企業內部網絡和外部網絡之間的小網絡區域內。在這個小網絡區域內可以放置一些必須公開的服務器設施,如企業Web服務器、FTP服務器和論壇等。另一方面,通過這樣一個DMZ區域,更加有效地保護了內部網絡。因為這種網絡部署,比起一般的防火牆方案,對來自外網的攻擊者來說又多了一道關卡。” 摘自百度百科
簡單來講 DMZ 的概念就是分而治之,如果我們把運行在雲端的應用服務按照服務對象來分類的話,一類是暴露給互聯網用戶使用的外網應用,一類是暴露給內網用戶使用的內網應用。如果我們按照相同的安全策略進行管理,外網應用處於眾矢之的,一旦被攻破其會成為滲透內網的跳板。其實整個網絡安全中分而治之的概念貫穿在方方面面,Zero-Trust Sercurity(零信任安全)中做了任何人,應用都可能成為安全潛在危險的假設,所以在進行網絡安全涉及的時候我們應該以按需分配的原則,為用戶,應用系統進行分類,以最小權限分配原則將安全策略分配到用戶,應用系統上。在承載系統的 Azure VNet 中外網應用和內網應用首先通過子網划分的方式將 VNet 拆分為多個 Segment(分段),通過分段便於我們對分段內的系統使能不同的安全策略,在這里我們定義外網應用分段為 DMZ-Subnet,內網應用分段為 Others-Subnet。
當擁有分段后,按照外網應用分段(DMZ-Subnet)和內網應用分段(Others-Subnet)來定義不同的訪問安全策略。在傳統數據中心中 DMZ 區域通常通過防火牆來實現,通過定義不同的區域(Zone),來實現訪問的隔離。在 Azure VNet 中沒有區域的概念,我們可以不同的分段即 Subnet 映射為傳統的區域即(Zone)的概念。在 DMZ 實踐中,通過定義訪問策略來實現安全隔離,一般的策略邏輯為:允許互聯網訪問 DMZ 區域,允許內網區域訪問 DMZ 區域,不允許 DMZ 區域訪問內網區域。上述邏輯的實現可以通過 Azure NSG(網絡安全組服務)來實現,在 NSG 中我們可以定義訪問策略規則,邏輯與傳統防火牆 ACL 一致。Azure NSG 規則可以使能在 Subnet 上或虛擬主機的 Nic 上,從使用實踐上對於整個分段即 Subnet 內所有虛擬主機一致的策略建議配置在 Subnet 上,對於個別主機的特殊策略配置在 Nic 上,這樣簡單且易於管理。
在上述的 NSG 訪問策略規則規划中,我們還有很多留白的區域,如 DMZ-DMZ 即 DMZ 區域內部的互訪,Others-Others 即內網區域內部的互訪,以及 DMZ,Others 到 Internet 的訪問。我們先來看下內網場景,多組應用系統雖然同時歸屬在相同分段但它們之間未必存在依賴(即不存在互訪需求),按照零信任網絡模型最小訪問權限原則,在同分段內不同應用系統之間也需要進行訪問控制策略隔離。如法炮制,分段!前面我們通過 Subnet 實現了分段,在 Subnet 內的系統我們繼續分段,這里我們稱之為微分段(Micro-Segment)。在傳統網絡實踐中通常是對同 Subnet 內的主機設置基於 IP 地址的明細訪問規則,這種做法可以達到安全目標但不易於維護,隨着主機數量的增多,規則數量將成比例激增,后期不宜與維護管理。Azure 中的 Application Security Group 功能為微分段的實現帶來了便利,用戶可以將虛擬主機按照微分段創建相應的 Application Security Group,然后在 NSG 策略中直接通過 Application Security Group 來定義訪問策略,訪問安全策略的定義剝離了 IP 的依賴,使后期維護變得簡單快捷。
通過微分段實現分段內部的安全訪問控制,可以進一步加固網絡安全。下面我們來看一下 DMZ 和 Others 分段訪問 Internet 的安全設計。在傳統數據中心內這部分我們稱之為互聯網邊緣(Internet Edge),通過防火牆來實現 DMZ 和 Others 向互聯網的訪問,隨着安全產品的不斷發展演進,從三四層防御到應用感知的七層防御,從靜態策略到動態策略,不斷的來加固和提升企業網絡的安全等級。在Azure 中可以通過 Azure Firewall (防火牆服務)來實現,Azure Firewall 可以提供訪問日志審計,FQDN 訪問控制策略,基於 IP 信譽的安全策略等功能,實現 VNet 內向 Internet 訪問的安全防護。
前面我們的設計中所有的安全訪問策略主要針對的都是對於與業務流量的策略,當今很多安全事件都是從控制層面發起了滲透,比如主機被破解 SSH/RDP 登錄等。所以從整個安全設計上,外網區域,內網區域的隔離其實體現最小范圍的將應用暴露在公網,那么不具備公網訪問的主機如何進行管理?市場上有很多成熟的跳板機解決方案解決的就是遠程登陸管理的問題,在 Azure 中 Bastion 服務可以提供跳板機服務,可以幫助管理員用戶通過指定的入口對 VNet 內的主機進行管理。Bastion 服務作為托管的跳板機服務,將管理員用戶的訪問聚合到統一入口,對於 VNet 內部的主機只需要放行對於 Bastion 服務地址的登錄訪問即可。
前面的設計中,我們通過分段和微分段的方式實現了對虛擬主機訪問的分而治之。對於 Azure 中的 PaaS 服務,實現方式略有不同,默認情況下 Azure PaaS 服務暴露的是一個公網訪問的 Endpoint,用戶可以在 PaaS 服務內置的 Firewall 防火牆訪問策略內設置允許訪問的客戶端 IP 白名單,但由於暴露在公網仍然存在被別人掃描的可能性。所以建議用戶采用 Azure Private Link,將 Azure PaaS 服務的訪問 Endpoint 鎖定到 VNet 內部只暴露內網訪問節點,從而實現與虛擬主機一樣的內網隔離設計。
除此之外 Web 七層安全防御以及 DDoS 防御也是受到普遍關注的安全實踐,Azure WAF (Web 安全防火牆服務)和 Azure DDoS 服務(拒絕服務攻擊防御服務)可以幫助用戶實現防御。Azure WAF 支持在 Azure FrontDoor 服務以及 Azure Application Gateway 服務上開啟,對於面向互聯網 2C 應用,WAF on FrontDoor 可以借助 FrontDoor 服務的全球接入點實現全球分布式近緣防御。Azure DDoS 服務借助微軟雲全球豐富的網絡帶寬資源,結合基於機器學習的自適應流量策略模型為用戶提供全球性的 DDoS 保護服務。
通過上述的介紹,DMZ 的設計就完成了,我們借助 Azure 第一方的網絡安全組件以零信任網絡模型為基准構建了安全可靠的網絡環境。希望對大家有所幫助,安全無小事,后續有機會再為大家介紹身份安全,數據安全等話題。
架構圖參考圖標:
VNet:
NSG:
Application Security Group:
Bastion:
Private Link:
Firewall:
WAF:
DDoS: