你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure Virtual Network Manager 中的安全管理员规则
在本文中,你将了解 Azure Virtual Network Manager 中的安全管理员规则。 安全管理员规则用于定义全局网络安全规则,这些规则适用于网络组内的所有虚拟网络。 你将了解什么是安全管理员规则、规则的工作方式以及使用时间。
什么是安全管理员规则?
安全管理员规则是全局网络安全规则,可在虚拟网络上强制执行规则集合中定义的安全策略。 这些规则可用于“允许”、“始终允许”或“拒绝”目标网络组内虚拟网络中的流量。 这些网络组只能由虚拟网络管理器实例范围内的虚拟网络组成。 安全管理员规则不适用于不由虚拟网络管理器管理的虚拟网络。
以下是一些可使用安全管理员规则的场景:
方案 | 描述 |
---|---|
限制访问高风险网络端口 | 安全管理员规则可阻止经常成为攻击者目标的特定端口上的流量,例如用于远程桌面协议 (RDP) 的端口 3389,或用于安全外壳 (SSH) 的端口 22. |
强制执行合规性要求 | 安全管理员规则可强制执行合规性要求。 例如,阻止与特定 IP 地址或网络块之间的流量。 |
保护敏感数据 | 安全管理员规则可通过阻止与特定 IP 地址或子网之间的流量,限制对敏感数据的访问。 |
强制执行网络分段 | 安全管理员规则可通过阻止虚拟网络或子网之间的流量,强制执行网络分段。 |
强制执行应用程序级安全性 | 安全管理员规则可通过阻止与特定应用程序或服务之间的流量,强制执行应用程序级安全性。 |
使用 Azure Virtual Network Manager,你就可以在一个集中的位置管理安全管理员规则。 集中化可让你大规模定义安全策略,并将这些策略同时应用于多个虚拟网络。
注意
目前,安全管理员规则不适用于属于托管虚拟网络范围内的专用终结点。
安全管理员规则是如何工作的?
安全管理员规则允许或拒绝指定方向的特定端口、协议和源/目标 IP 前缀上的流量。 在定义安全管理员规则时,需要指定以下条件:
- 规则的优先级
- 要执行的操作(允许、拒绝或始终允许)
- 流量方向(入站或出站)
- 要使用的协议
要在多个虚拟网络中强制执行安全策略,需要创建和部署安全管理员配置。 这种配置包含一组规则集合,每个规则集合都包含一个或多个安全管理员规则。 创建好配置后,将规则集合与需要安全管理员规则的网络组相关联。 然后,在部署配置时,这些规则将应用于网络组中包含的所有虚拟网络。 单一配置可在多个虚拟网络中以集中、可扩展的方式强制执行安全策略。
重要
一个区域只能部署一个安全管理配置。 但是,一个区域中可以存在多个连接配置。 若要将多个安全管理配置部署到一个区域,可以在安全配置中创建多个规则集合。
如何评估安全管理员规则和网络安全组 (NSG)
安全管理员规则和网络安全组 (NSG) 可用于在 Azure 中强制执行网络安全策略。 但是,它们的范围和优先级有所不同。#
安全管理员规则旨在由中心治理团队的网络管理员使用,从而将 NSG 规则委派给单个应用程序或服务团队,以便根据需要进一步指定安全性。 安全管理员规则的优先级高于 NSG 规则,在 NSG 规则之前进行评估。
而 NSG 规则用于筛选出入单个子网或网络接口的网络流量。 此类规则供单个应用程序或服务团队使用,以根据需要进一步指定安全性。 NSG 规则的优先级低于安全管理员规则,在安全管理员规则之后进行评估。
安全管理员规则目前在虚拟网络级别应用,而网络安全组规则可以在子网和 NIC 级别关联。 下表显示了这些异同:
规则类型 | 目标受众 | 应用对象 | 评估顺序 | 操作类型 | Parameters |
---|---|---|---|---|---|
安全管理员规则 | 网络管理员、中心治理团队 | 虚拟网络 | 较高优先级 | 允许、拒绝、始终允许 | 优先级、协议、操作、源、目标 |
网络安全组规则 | 单个团队 | 子网、NIC | 较低优先级,在安全管理规则之后 | 允许、拒绝 | 优先级、协议、操作、源、目标 |
安全管理员规则可对流量执行三种操作:“允许”、“始终允许”和“拒绝”。 创建后,先评估“允许”规则,然后评估网络安全组规则。 此操作允许网络安全组规则在需要时以不同的方式处理流量。
如果创建“始终允许”或“拒绝”规则,在评估完安全管理员规则后,即终止流量评估。 使用“始终允许”规则,流量将直接传输到资源,并终止 NSG 规则的进一步(可能存在冲突的)评估。 此操作可用于强制执行流量并防止网络安全组规则拒绝。 使用“拒绝”规则,流量会在传递到目标之前被停止。 安全管理员规则不依赖于 NSG,因此它们可以单独用于创建默认安全规则。
将安全管理员规则和 NSG 结合使用,你便可以在全局和个别级别强制执行网络安全策略,确保虚拟网络安全且符合组织的安全策略。
重要
部署安全管理员规则时,采用最终一致性模型。 这意味着,在短暂的延迟之后,安全管理员规则最终将应用于虚拟网络中包含的资源。 已经对其应用了安全管理员规则的虚拟网络上添加的资源也将在一段时间后最终接收到相同的安全管理员规则。
安全管理员规则的优势
安全管理员规则为确保组织资源的安全提供了诸多优势。 通过使用安全管理员规则,你可以强制执行允许的流量,并防止网络安全组规则冲突造成的拒绝。 你还可以创建不依赖于 NSG 存在的默认安全管理员规则。 当应用程序所有者配置错误或忘记建立 NSG 时,这些默认规则尤其有用。 此外,安全管理员规则还提供了一种大规模管理安全性的方式,减少了随着网络资源数量的增加而带来的运营开销。
保护高风险端口
根据行业研究和来自 Microsoft 的建议,我们建议客户使用安全管理员规则限制以下列表中高风险端口的外部流量。 这些端口通常用于管理资源或不安全/未加密的数据传输,不应向 Internet 公开。 但是,有时某些虚拟网络及其资源需要允许用于管理或其他进程的流量。 可以根据需要创建例外。 了解如何针对这些类型的场景阻止高风险端口(有例外)。
端口 | 协议 | 描述 |
---|---|---|
20 | TCP | 未加密的 FTP 流量 |
21 | TCP | 未加密的 FTP 流量 |
22 | TCP | SSH。 潜在的暴力攻击 |
23 | TCP | TFTP 允许未经身份验证和/或未加密的流量 |
69 | UDP | TFTP 允许未经身份验证和/或未加密的流量 |
111 | TCP/UDP | RPC。 允许未加密的身份验证 |
119 | TCP | 用于未加密身份验证的 NNTP |
135 | TCP/UDP | 终结点映射器,多种远程管理服务 |
161 | TCP | 用于不安全/无身份验证的 SNMP |
162 | TCP/UDP | SNMP 陷阱 - 不安全/无身份验证 |
445 | TCP | SMB - 已知的攻击途径 |
512 | TCP | Linux 上的 Rexec - 无加密身份验证的远程命令 |
514 | TCP | 远程 Shell - 无身份验证或加密的远程命令 |
593 | TCP/UDP | HTTP RPC EPMAP - 未加密的远程过程调用 |
873 | TCP | Rsync - 未加密的文件传输 |
2049 | TCP/UDP | 网络文件系统 |
3389 | TCP | RDP - 常见的暴力攻击端口 |
5800 | TCP | HTTP 上的 VNC 远程帧缓冲区 |
5900 | TCP | HTTP 上的 VNC 远程帧缓冲区 |
11211 | UDP | Memcached |
大规模管理
Azure Virtual Network Manager 提供了一种利用安全管理员规则大规模管理安全策略的方法。 将安全管理员配置应用到网络组时,网络组范围内的所有虚拟网络及其包含的资源都会在策略中接收安全管理员规则。
新资源与现有资源一起受到保护。 例如,如果在安全管理员规则范围内向虚拟网络添加新 VM,这些 VM 也将自动受到保护。 部署这些 VM 后不久,将应用安全管理员规则对它们施加保护。
当发现新的安全风险时,可以通过创建安全管理员规则来防范新风险,并将规则应用到网络组中,以此实现大规模部署。 部署此新规则后,网络组范围内的所有资源将自此开始受到保护。
安全管理员规则的不适用情况
在大多数情况下,安全管理员规则适用于网络组应用的安全配置范围内的所有虚拟网络和子网。 但是,由于服务的网络要求,有些服务不应用安全管理员规则。 服务的网络意图策略强制执行这些要求。
安全管理员规则的不适用情况(虚拟网络级)
默认情况下,安全管理员规则不适用于包含以下服务的虚拟网络:
- Azure SQL 托管实例
- Azure Databricks
要请求 Azure Virtual Network Manager 在包含这些服务的虚拟网络上应用安全管理员规则,可以使用此表单提交请求。
当虚拟网络包含这些服务时,安全管理员规则会跳过该虚拟网络。 如果要将“允许”规则应用于此虚拟网络,可以使用 securityConfiguration.properties.applyOnNetworkIntentPolicyBasedServices .NET 类中设置的 AllowRulesOnly
字段创建安全配置。 设置后,安全配置中的“允许”规则将应用于此虚拟网络。 “拒绝”规则不应用于此虚拟网络。 没有这些服务的虚拟网络可以继续使用“允许”和“拒绝”规则。
你可以创建仅包含“允许”规则的安全配置,然后通过 Azure PowerShell 和 Azure CLI 将其部署到虚拟网络。
注意
当多个 Azure Virtual Network Manager 实例将不同的设置应用于同一个虚拟网络的 securityConfiguration.properties.applyOnNetworkIntentPolicyBasedServices
类时,将使用具有最高范围的网络管理器实例的设置。
假设你有两个虚拟网络管理器。 第一个网络管理器的范围限定为根管理组,其安全配置在 securityConfiguration.properties.applyOnNetworkIntentPolicyBasedServices
类中设置为 AllowRulesOnly。 第二个网络管理器的范围限定为根管理组下的订阅,它在安全配置中使用默认字段“无”。 当两种配置都将安全管理员规则应用于同一虚拟网络时,AllowRulesOnly 设置便会应用于虚拟网络。
安全管理员规则的不适用情况(子网级)
同样,当子网的虚拟网络在安全管理员配置范围内时,有些服务不会在子网级别应用安全管理员规则。 这些服务包括:
- Azure 应用程序网关
- Azure Bastion
- Azure 防火墙
- Azure 路由服务器
- Azure VPN 网关
- Azure 虚拟 WAN
- Azure ExpressRoute 网关
在这种情况下,安全管理员规则不会影响子网中使用这些服务的资源。 但是,同一虚拟网络中的其他子网应用了安全管理员规则。
注意
如果需要在包含 Azure 应用程序网关的子网上应用安全管理员规则,请确保每个子网只包含通过已启用网络隔离预配的网关。 如果子网包含 Azure 应用程序网关,但没有启用网络隔离,就不会将安全管理员规则应用于此子网。
安全管理字段
定义安全管理规则时,有些字段必填,有些字段选填。
Required fields
优先级
安全管理员规则的优先级是介于 1 和 4096 之间的整数。 序号越低,规则优先级就越高。 例如,优先级为 10 的拒绝规则会替代优先级为 20 的允许规则。
操作
可以为安全规则定义以下三个操作之一:
操作 | 说明 |
---|---|
允许 | 允许指定方向的特定端口、协议和源/目标 IP 前缀上的流量。 |
拒绝 | 阻止指定方向的特定端口、协议和源/目标 IP 前缀上的流量。 |
始终允许 | 无论优先级较低的其他规则或用户定义的网络安全组如何,都允许指定方向的指定端口、协议和源/目标 IP 前缀上的流量。 |
方向
可以指定规则应用的流量方向。 可以定义入站或出站。
协议
安全管理规则当前支持的协议包括:
- TCP
- UDP
- ICMP
- ESP
- AH
- 任何协议
可选字段
源类型和目标类型
- IP 地址:可使用 CIDR 表示法提供 IPv4 或 IPv6 地址或地址块。 若要列出多个 IP 地址,请用逗号分隔每个 IP 地址。
- 服务标记:可基于区域或整个服务定义特定的服务标记。 请参阅有关可用服务标记的公共文档,查看支持的标记的列表。 在此列表中,安全管理员规则当前不支持 AzurePlatformDNS、AzurePlatformIMDS 和 AzurePlatformLKM 服务标记。
源端口和目标端口
可定义要阻止来自源或到目标的特定公用端口。 以下是常用 TCP 端口的列表:
端口 | 服务名称 |
---|---|
20, 21 | FTP |
22 | SSH |
23 | Telnet |
25 | SMTP |
53 | DNS |
80 | HTTP |
443 | HTTPS |
3389 | RDP |
1433 | SQL |
后续步骤
了解如何使用安全管理配置阻止网络流量。