1. 程式人生 > >Azure網絡安全組NSG

Azure網絡安全組NSG

雲計算 雲平臺

上一篇博文中我們了解了Azure中的終結點訪問控制列表,在安全方面,微軟在Azure中還提供了另外一個解決方案,那就是本文我們要來了解的網絡安全組NSG。網絡安全組 (NSG) 包含一系列安全規則,這些規則可以允許或拒絕流向連接到 Azure 虛擬網絡 (VNet) 的資源的網絡流量。 可以將 NSG 關聯到子網、單個 VM(經典)或附加到 VM 的單個網絡接口 (NIC) (Resource Manager)。 將 NSG 關聯到子網時,規則適用於連接到該子網的所有資源。 也可通過將 NSG 關聯到 VM 或 NIC 來進一步限制流量。NSG 包含兩組規則:入站規則和出站規則。 在每組中,規則的優先級必須保持唯一。

下圖顯示如何處理 NSG 規則

技術分享圖片

NSG 資源

NSG 包含以下屬性:

屬性

說明

約束

註意事項

名稱

NSG 的名稱

必須在區域內唯一。
可以包含字母、數字、下劃線、句點和連字符。
必須以字母或數字開頭。
必須以字母、數字或下劃線結尾。
不能超過 80 個字符。

由於可能需要創建多個 NSG,因此請確保設置命名約定,以便輕松標識 NSG 的功能。

區域

在其中創建 NSG 的 Azure 區域。

只能將多個 NSG 關聯到該 NSG 所在區域中的資源。

若要了解一個區域可以有多少 NSG,請閱讀 Azure 限制。

資源組

NSG 所在的資源組。

雖然 NSG 存在於一個資源組中,但可將其關聯到任意資源組中的資源,只要該資源與 NSG 屬於同一 Azure 區域。

資源組用於以部署單元的形式集中管理多個資源。
可以考慮將 NSG 與相關聯的資源組合在一起。

規則

入站或出站規則,用於定義允許或拒絕的具體流量。


請參閱本文的 NSG 規則部分。

需要註意的是:不支持將基於終結點的 ACL 和網絡安全組置於相同 VM 實例上。 如果想要使用 NSG,但已有了終結點 ACL,則請先刪除該終結點 ACL。

NSG 規則

NSG 規則包含以下屬性:

屬性

說明

約束

註意事項

名稱

規則的名稱。

必須在區域內唯一。
可以包含字母、數字、下劃線、句點和連字符。
必須以字母或數字開頭。
必須以字母、數字或下劃線結尾。
不能超過 80 個字符。

一個 NSG 中可以有多個規則,因此請確保遵循命名約定,以便標識規則的功能。

協議

要與規則匹配的協議。

TCP、UDP 或 *

使用 * 作為協議時,會包括 ICMP(僅限東西通信),以及 UDP 和 TCP,可能會減少所需規則的數量。
同時,使用 * 可能是過於寬泛的方法,因此建議只在必要時使用 *。

源端口範圍

要與規則匹配的源端口範圍。

單個端口號(從 1 到 65535)、端口範圍(示例:1-65535)、或 *(表示所有端口)。

源端口可以是暫時的。 除非客戶端程序在使用特定端口,否則請在大多數情況下使用 *。
盡可能嘗試使用端口範圍,這樣就不需使用多個規則。
不能使用逗號對多個端口或端口範圍分組。

目標端口範圍

要與規則匹配的目標端口範圍。

單個端口號(從 1 到 65535)、端口範圍(示例:1-65535)、或 *(表示所有端口)。

盡可能嘗試使用端口範圍,這樣就不需使用多個規則。
不能使用逗號對多個端口或端口範圍分組。

方向

要與規則匹配的流量方向。

入站或出站。

入站和出站規則會根據方向分別處理。

優先級

將按優先級順序來檢查規則。 一旦應用某個規則,不再檢查其他規則的匹配情況。

介於 100 到 4096 之間的數字。

考慮以 100 為增量,為每個規則創建規則跳轉優先級,為將來可能創建的新規則留出空間。

操作

規則匹配時要應用的訪問類型。

允許或拒絕。

請記住,如果找不到某個數據包的允許規則,則會丟棄該數據包。

默認標記

默認標記是系統提供的針對某類 IP 地址的標識符。 可以使用任何規則的源地址前綴目標地址前綴屬性中的默認標記。 有三個可使用的默認標記:

  • VirtualNetwork (Resource Manager)(如果是經典部署模型,則為 VIRTUAL_NETWORK):此標記包括虛擬網絡地址空間(Azure 中定義的 CIDR 範圍)、所有連接的本地地址空間,以及連接的 Azure VNet(本地網絡)。

  • AzureLoadBalancer (Resource Manager)(如果是經典部署模型,則為 AZURE_LOADBALANCER):此標記表示 Azure 的基礎結構負載均衡器。 此標記將轉換為 Azure 數據中心 IP,Azure 負載均衡器的運行狀況探測源於該 IP。

  • Internet (Resource Manager)(如果是經典部署模型,則為 INTERNET):此標記表示虛擬網絡外部的 IP 地址空間,可以通過公共 Internet 進行訪問。

默認規則

所有 NSG 都包含一組默認規則。 默認規則無法刪除,但由於給它們分配的優先級最低,可以用創建的規則來重寫它們。

默認規則允許和禁止的流量如下所示:

  • 虛擬網絡:從方向上來說,在虛擬網絡中發起和結束的通信可以是入站通信,也可以是出站通信。

  • Internet:允許出站通信,但阻止入站通信。

  • 負載均衡器:允許 Azure 負載均衡器探測 VM 和角色實例的運行狀況。 如果重寫此規則,Azure 負載均衡器運行狀況探測會失敗,這可能對服務造成影響。

入站默認規則

名稱

Priority

Source IP

Source Port

Destination IP

Destination Port

協議

Access

AllowVNetInBound

65000

VirtualNetwork

*

VirtualNetwork

*

*

允許

AllowAzureLoadBalancerInBound

65001

AzureLoadBalancer

*

*

*

*

允許

DenyAllInBound

65500

*

*

*

*

*

拒絕

出站默認規則

名稱

Priority

Source IP

Source Port

Destination IP

Destination Port

協議

Access

AllowVnetOutBound

65000

VirtualNetwork

*

VirtualNetwork

*

*

允許

AllowInternetOutBound

65001

*

*

Internet

*

*

允許

DenyAllOutBound

65500

*

*

*

*

*

拒絕

將 NSG 相關聯

可以根據所使用的部署模型將 NSG 關聯到 VM、NIC 和子網,如下所示:

  • VM(僅經典部署模型):安全規則適用於所有出入 VM 的流量。

  • NIC(僅 Resource Manager 部署模型):安全規則適用於所有與 NSG 關聯的出入 NIC 的流量。 在多 NIC VM 中,可以為每個 NIC 單獨應用不同(或相同)的 NSG。

  • 子網(資源管理器部署模型和經典部署模型):安全規則適用於出入任何連接到子網的資源的任何流量。

可以將不同的 NSG 關聯到 VM(或 NIC,具體取決於部署模型)以及 NIC 或 VM 連接到的子網。 安全規則在每個 NSG 中按優先級參照以下順序應用到流量:

  • 入站流量

    1. 應用到子網的 NSG:如果子網 NSG 存在相應的拒絕流量的規則,則會丟棄數據包。

    2. 應用到 NIC (Resource Manager) 或 VM(經典)的 NSG:如果 VM\NIC NSG 存在相應的拒絕流量的規則,則會丟棄 VM\NIC 上的數據包,即使子網 NSG 存在相應的允許流量的規則。

  • 出站流量

    1. 應用到 NIC (Resource Manager) 或 VM(經典)的 NSG:如果 VM\NIC NSG 存在相應的拒絕流量的規則,則會丟棄數據包。

    2. 應用到子網的 NSG:如果子網 NSG 存在相應的拒絕流量的規則,則會丟棄數據包,即使 VM\NIC NSG 存在相應的允許流量的規則。

使用Azure門戶創建NSG

登錄Azure門戶,點擊創建資源,選擇網絡,點擊網絡安全組--創建,如下圖所示

技術分享圖片

輸入名稱,選擇訂閱,資源組可以新建也可以選擇現有項,選擇好位置,然後點擊創建

技術分享圖片

資源組創建成功後,在其概述中可以看到默認的規則

技術分享圖片

在入站安全規則和出站安全規則中可以分別去添加所需的規則,如下圖

技術分享圖片

下圖所示為添加入站安全規則,需要填寫源、源端口範圍、目標、目標端口範圍、優先級,選擇協議和操作

技術分享圖片

還可以在說明中填寫備註信息

技術分享圖片

Azure網絡安全組NSG