Azure网络安全组NSG
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Azure网络安全组NSG相关的知识,希望对你有一定的参考价值。
上一篇博文中我们了解了Azure中的终结点访问控制列表,在安全方面,微软在Azure中还提供了另外一个解决方案,那就是本文我们要来了解的网络安全组NSG。网络安全组 (NSG) 包含一系列安全规则,这些规则可以允许或拒绝流向连接到 Azure 虚拟网络 (VNet) 的资源的网络流量。 可以将 NSG 关联到子网、单个 VM(经典)或附加到 VM 的单个网络接口 (NIC) (Resource Manager)。 将 NSG 关联到子网时,规则适用于连接到该子网的所有资源。 也可通过将 NSG 关联到 VM 或 NIC 来进一步限制流量。NSG 包含两组规则:入站规则和出站规则。 在每组中,规则的优先级必须保持唯一。
下图显示如何处理 NSG 规则
NSG 资源
NSG 包含以下属性:
属性 | 说明 | 约束 | 注意事项 |
名称 | NSG 的名称 | 必须在区域内唯一。 | 由于可能需要创建多个 NSG,因此请确保设置命名约定,以便轻松标识 NSG 的功能。 |
区域 | 在其中创建 NSG 的 Azure 区域。 | 只能将多个 NSG 关联到该 NSG 所在区域中的资源。 | 若要了解一个区域可以有多少 NSG,请阅读 Azure 限制。 |
资源组 | NSG 所在的资源组。 | 虽然 NSG 存在于一个资源组中,但可将其关联到任意资源组中的资源,只要该资源与 NSG 属于同一 Azure 区域。 | 资源组用于以部署单元的形式集中管理多个资源。 |
规则 | 入站或出站规则,用于定义允许或拒绝的具体流量。 | 请参阅本文的 NSG 规则部分。 |
需要注意的是:不支持将基于终结点的 ACL 和网络安全组置于相同 VM 实例上。 如果想要使用 NSG,但已有了终结点 ACL,则请先删除该终结点 ACL。
NSG 规则
NSG 规则包含以下属性:
属性 | 说明 | 约束 | 注意事项 |
名称 | 规则的名称。 | 必须在区域内唯一。 | 一个 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 中按优先级参照以下顺序应用到流量:
入站流量
应用到子网的 NSG:如果子网 NSG 存在相应的拒绝流量的规则,则会丢弃数据包。
应用到 NIC (Resource Manager) 或 VM(经典)的 NSG:如果 VM\NIC NSG 存在相应的拒绝流量的规则,则会丢弃 VM\NIC 上的数据包,即使子网 NSG 存在相应的允许流量的规则。
出站流量
应用到 NIC (Resource Manager) 或 VM(经典)的 NSG:如果 VM\NIC NSG 存在相应的拒绝流量的规则,则会丢弃数据包。
应用到子网的 NSG:如果子网 NSG 存在相应的拒绝流量的规则,则会丢弃数据包,即使 VM\NIC NSG 存在相应的允许流量的规则。
使用Azure门户创建NSG
登录Azure门户,点击创建资源,选择网络,点击网络安全组--创建,如下图所示
输入名称,选择订阅,资源组可以新建也可以选择现有项,选择好位置,然后点击创建
资源组创建成功后,在其概述中可以看到默认的规则
在入站安全规则和出站安全规则中可以分别去添加所需的规则,如下图
下图所示为添加入站安全规则,需要填写源、源端口范围、目标、目标端口范围、优先级,选择协议和操作
还可以在说明中填写备注信息
以上是关于Azure网络安全组NSG的主要内容,如果未能解决你的问题,请参考以下文章
适用于来自 Azure 云服务的流量的 Azure NSG 规则
Azure - 如何将新 IP 附加到多个网络安全组的 SourceAddressPrefix