使用 Azure 门户部署网络安全组

已完成

可以使用 Azure 网络安全组 (NSG) 来筛选 Azure 虚拟网络中出入 Azure 资源的网络流量。 网络安全组包含安全规则,这些规则可允许或拒绝多种 Azure 资源的入站和出站网络流量。 可以为每项规则指定源和目标、端口以及协议。

NSG 安全规则

一个网络安全组包含零个或者不超过 Azure 订阅限制的任意数量的规则。 每条规则都具有这些属性。

  • 名称. 必须是网络安全组中的唯一名称。
  • 优先级。 可以是介于 100 和 4096 之间的任意数字。 规则按优先顺序进行处理。先处理编号较小的规则,因为编号越小,优先级越高。 一旦流量与某个规则匹配,处理即会停止。 A
  • 源或目标。 可以设置为任何值,也可以是单个 IP 地址、无类别域际路由 (CIDR) 块(例如 10.0.0.0/24)、服务标记或应用程序安全组。
  • 协议。 可以是 TCP、UDP、ICMP、ESP、AH 或 Any。
  • 方向。 可配置为应用于入站或出站流量。
  • 端口范围。 可指定为单个端口或端口范围。 例如,可以指定 80 或 10000-10005。 指定范围可以减少创建的安全规则数。
  • 操作。 可配置为允许或拒绝。

防火墙使用源、源端口、目标、目标端口和协议评估规则。

默认安全规则

Azure 会创建这些默认规则。

方向 Name Priority Source 源端口 目标 目标端口 协议 Access
入站 AllowVNetInBound 65000 VirtualNetwork 0-65535 VirtualNetwork 0-65535 任意 Allow
入站 AllowAzureLoadBalancerInBound 65001 AzureLoadBalancer 0-65535 0.0.0.0/0 0-65535 任意 Allow
入站 DenyAllInbound 65500 0.0.0.0/0 0-65535 0.0.0.0/0 0-65535 任意 拒绝
出站 AllowVnetOutBound 65000 VirtualNetwork 0-65535 VirtualNetwork 0-65535 任意 允许
Outbound AllowInternetOutBound 65001 0.0.0.0/0 0-65535 Internet 0-65535 任意 允许
Outbound DenyAllOutBound 65500 0.0.0.0/0 0-65535 0.0.0.0/0 0-65535 任意 拒绝

此关系图和项目符号说明了如何部署网络安全组的各种方案。

网络安全组示例的示意图。

对于入站流量,Azure 先处理与某个子网相关联的网络安全组(如果有)中的规则,然后处理与网络接口相关联的网络安全组(如果有)中的规则。

  • VM1:Subnet1 与 NSG1 相关联,因此处理安全规则,VM1 位于 Subnet1 中。 除非创建了一条允许端口 80 入站流量的规则,否则 DenyAllInbound 默认安全规则会拒绝流量,并且永远不会被 NSG2 评估,因为 NSG2 关联到网络接口。 如果 NSG1 有允许端口 80 的安全规则,则 NSG2 将处理流量。 若要允许从端口 80 到虚拟机的流量,NSG1 和 NSG2 必须指定一条规则来允许从 Internet 到端口 80 的流量。
  • VM2:由于 VM2 也位于 Subnet1 中,因此处理 NSG1 中的规则。 VM2 没有关联到其网络接口的网络安全组,因此会接收 NSG1 所允许的所有流量,或者会受到 NSG1 所拒绝的所有流量拒绝。 当网络安全组关联到子网时,对于同一子网中的所有资源,流量要么被允许,要么被拒绝。
  • VM3:由于没有网络安全组关联到 Subnet2,系统允许流量进入子网并由 NSG2 处理,因为 NSG2 关联到已连接到 VM3 的网络接口。
  • VM4:由于未将网络安全组与 Subnet3 或虚拟机中的网络接口关联,因此允许传输至 VM4 的流量。 如果没有关联的网络安全组,则允许所有网络流量通过子网和网络接口。

对于出站流量,Azure 先处理与某个网络接口相关联的网络安全组(如果有)中的规则,然后处理与子网相关联的网络安全组(如果有)中的规则。

  • VM1:系统会处理 NSG2 中的安全规则。 除非创建拒绝传输至 Internet 的端口 80 出站流量的安全规则,否则 AllowInternetOutbound 默认安全规则将允许 NSG1 和 NSG2 中的流量。 如果 NSG2 有拒绝端口 80 的安全规则,将拒绝流量,并且 NSG1 不评估流量。 若要拒绝从虚拟机到端口 80 的流量,则两个网络安全组或其中的一个必须有一条规则来拒绝从端口 80 到 Internet 的流量。
  • VM2:所有流量都会通过网络接口发送到子网,因为连接到 VM2 的网络接口没有关联的网络安全组。 系统会处理 NSG1 中的规则。
  • VM3:如果 NSG2 有一条拒绝端口 80 的安全规则,则流量会被拒绝。 如果 NSG2 有允许端口 80 的安全规则,由于未将网络安全组与 Subnet2 关联,因此允许端口 80 出站连接至 Internet。
  • VM4:由于未将网络安全组与连接到虚拟机的网络接口或 Subnet3 关联,因此允许来自 VM4 的所有网络流量。

应用程序安全组

使用应用程序安全组 (ASG) 可将网络安全性配置为应用程序结构的固有扩展,从而基于这些组将虚拟机分组以及定义网络安全策略。 可以大量重复使用安全策略,而无需手动维护显式 IP 地址。 平台会处理显式 IP 地址和多个规则集存在的复杂性,让你专注于业务逻辑。

若要最大程度地减少所需的安全规则数,请使用服务标记或应用程序安全组创建规则。 避免使用单个 IP 地址或 IP 地址范围的规则。

使用 Azure 门户通过 NSG 筛选网络流量

可以使用网络安全组来筛选来自虚拟网络子网的入站和出站网络流量。 网络安全组包含安全规则,这些规则可按 IP 地址、端口和协议筛选网络流量。 安全规则应用到子网中部署的资源。

通过 NSG 筛选网络流量的关键阶段包括:

  1. 创建资源组。
  2. 创建虚拟网络。
  3. 创建应用程序安全组。
  4. 创建网络安全组。
  5. 将网络安全组与子网相关联。
  6. 创建安全规则。
  7. 将 NIC 关联到 ASG。
  8. 测试流量筛选器。

若要查看所有这些任务的详细步骤,请参阅教程:使用 Azure 门户筛选网络安全组中的网络流量。

知识检查

1.

设计安全配置时,应采用什么原则?

2.

哪个是默认 NSG 安全规则?