Azure 防火墙已知问题和限制
本文列出了 Azure 防火墙的已知问题。 当问题得到解决时,本文会更新。
有关 Azure 防火墙限制,请参阅 Azure 订阅和服务限制、配额与约束。
Azure 防火墙标准版
Azure 防火墙标准版存在以下已知问题:
注意
任何适用于标准版的问题也适用于高级版。
问题 | 说明 | 缓解操作 |
---|---|---|
针对非 TCP/UDP 协议(例如 ICMP)的网络筛选规则不适用于 Internet 绑定的流量 | 针对非 TCP/UDP 协议的网络筛选规则不支持公共 IP 地址的 SNAT。 在分支子网与 VNet 之间支持非 TCP/UDP 协议。 | Azure 防火墙使用目前不支持 IP 协议 SNAT 的标准负载均衡器。 我们正在探索如何在将来的版本中推出支持此方案的选项。 |
缺少对 ICMP 的 PowerShell 和 CLI 支持 | Azure PowerShell 和 CLI 不支持使用 ICMP 作为网络规则中的有效协议。 | 仍然可以通过门户和 REST API 使用 ICMP 作为协议。 我们正在致力于在不久之后在 PowerShell 和 CLI 中添加 ICMP。 |
FQDN 标记要求设置 protocol: port | 带有 FQDN 标记的应用程序规则需要 port:protocol 定义。 | 可以将 https 用作 port: protocol 值。 我们正在致力于使此字段在使用了 FQDN 标记时可选。 |
不支持将防火墙移动到不同的资源组或订阅 | 不支持将防火墙移动到不同的资源组或订阅。 | 我们已计划提供此功能的支持。 若要将防火墙移动到不同的资源组或订阅,必须删除当前实例并在新的资源组或订阅中重新创建它。 |
威胁智能警报可能会被屏蔽 | 配置为仅警报模式时,目标为 80/443 的用于出站筛选的网络规则会屏蔽威胁智能警报。 | 使用应用程序规则为 80/443 创建出站筛选。 或者,将威胁智能模式更改为“提醒和拒绝”。 |
Azure 防火墙 DNAT 不适用于专用 IP 目标 | Azure 防火墙 DNAT 支持仅限于 Internet 出口/入口。 DNAT 目前不适用于专用 IP 目标。 例如,分支到分支。 | 我们正在研究修复措施。 |
对于安全虚拟中心,只能在部署期间配置可用性区域。 | 部署具有安全虚拟中心的防火墙后,无法配置可用性区域。 | 这是设计的结果。 |
对入站连接的 SNAT | 除了 DNAT 以外,通过防火墙公共 IP 地址(入站)建立的连接将通过 SNAT 转换为某个防火墙专用 IP。 当前提出此项要求(也适用于主动/主动 NVA)的目的是确保对称路由。 | 若要保留 HTTP/S 的原始源,请考虑使用 XFF 标头。 例如,在防火墙前面使用 Azure Front Door 或 Azure 应用程序网关等服务。 还可以添加 WAF 作为 Azure Front Door 的一部分,并链接到防火墙。 |
仅在代理模式下支持 SQL FQDN 筛选(端口 1433) | 对于 Azure SQL 数据库、Azure Synapse Analytics 和 Azure SQL 托管实例: 仅在代理模式下支持 SQL FQDN 筛选(端口 1433)。 对于 Azure SQL IaaS: 如果使用的是非标准端口,可以在应用程序规则中指定这些端口。 |
对于采用重定向模式的 SQL(这是从 Azure 内连接时采用的默认设置),可以将 SQL 服务标记用作 Azure 防火墙网络规则的一部分,改为对访问进行筛选。 |
TCP 端口 25 上的出站 SMTP 流量被阻止 | Azure 平台会阻止直接发送到 TCP 端口 25 上的外部域(如 outlook.com 和 gmail.com )的出站电子邮件。 这是 Azure 中的默认平台行为,Azure 防火墙不引入任何其他特定限制。 |
使用经过身份验证的 SMTP 中继服务,这些服务通常通过 TCP 端口 587 进行连接,但也支持其他端口。 有关详细信息,请参阅排查 Azure 中的出站 SMTP 连接问题。 目前,Azure 防火墙可以使用出站 TCP 25 与公共 IP 通信,但不能保证有效,并且并非所有订阅类型都支持它。 对于虚拟网络、VPN 和 Azure ExpressRoute 等专用 IP,Azure 防火墙支持 TCP 端口 25 的出站连接。 |
SNAT 端口耗尽 | Azure 防火墙当前支持每个后端虚拟机规模集实例的每个公用 IP 地址 2496 个端口。 默认有两个虚拟机规模集实例。 因此,每个流(目标 IP、目标端口和协议(TCP 或 UDP))有 4992 个端口。 防火墙最多可以扩展到 20 个实例。 | 这是平台限制。 可以针对容易出现 SNAT 耗尽的部署,为 Azure 防火墙部署配置至少五个公共 IP 地址,以此解决这些限制。 这将使可用的 SNAT 端口增加五倍。 从 IP 地址前缀分配以简化下游权限。 为获得更持久的解决方案,可以部署 NAT 网关来克服 SNAT 端口限制。 虚拟网络部署支持此方法。 有关详细信息,请参阅利用 Azure 虚拟网络 NAT 缩放 SNAT 端口。 |
在启用了强制隧道的情况下不支持 DNAT | 由于采用非对称路由,在启用了强制隧道的情况下部署的防火墙无法支持从 Internet 进行入站访问。 | 这种限制是根据非对称路由设计的。 入站连接的返回路径通过本地防火墙,而该防火墙看不到已建立的连接。 |
出站被动 FTP 可能不适用于具有多个公共 IP 的防火墙,具体取决于你的 FTP 服务器配置。 | 被动 FTP 为控制通道和数据通道建立不同的连接。 当具有多个公共 IP 地址的防火墙发送出站数据时,它会随机选择一个公共 IP 地址作为源 IP 地址。 当数据和控制通道使用不同的源 IP 地址时,FTP 可能会失败,具体取决于你的 FTP 服务器配置。 | 规划显式 SNAT 配置。 同时,你可将 FTP 服务器配置为接受来自不同源 IP 地址的数据和控制通道(请参阅 IIS 的示例)。 或者,请考虑在此情况中使用单个 IP 地址。 |
入站被动 FTP 可能无法工作,具体取决于你的 FTP 服务器配置 | 被动 FTP 为控制通道和数据通道建立不同的连接。 Azure 防火墙上的入站连接经过 SNAT 转换为防火墙专用 IP 地址,以确保对称路由。 当数据和控制通道使用不同的源 IP 地址时,FTP 可能会失败,具体取决于你的 FTP 服务器配置。 | 保留原始源 IP 地址的操作正在接受调查。 在此期间,你可将 FTP 服务器配置为接受来自不同源 IP 地址的数据和控制通道。 |
当 FTP 客户端必须通过 Internet 上访问 FTP 服务器时,主动 FTP 不起作用。 | 主动 FTP 使用 FTP 客户端的 PORT 命令,该命令指示 FTP 服务器该对数据通道使用哪些 IP 和端口。 此 PORT 命令使用无法更改的客户端专用 IP。 对于基于 Internet 的通信,遍历 Azure 防火墙的客户端流量将经过 NAT 转换,这样 FTP 服务器会将 PORT 命令视为无效。 | 与客户端 NAT 一起使用时,它是主动 FTP 的一般限制。 |
NetworkRuleHit 指标缺少协议维度 | ApplicationRuleHit 指标允许基于筛选的协议,但相应的 NetworkRuleHit 指标中缺少此功能。 | 我们正在研究修复措施。 |
不支持端口介于 64000 和 65535 之间的 NAT 规则 | Azure 防火墙允许网络和应用程序规则中 1-65535 范围内的任何端口,但是 NAT 规则仅支持 1-63999 范围内的端口。 | 这是当前的一项限制。 |
配置更新平均可能需要 5 分钟 | Azure 防火墙配置更新平均可能需要 3 到 5 分钟,且不支持并行更新。 | 我们正在研究修复措施。 |
Azure 防火墙使用 SNI TLS 标头筛选 HTTPS 和 MSSQL 流量 | 如果浏览器或服务器软件不支持服务器名称指示 (SNI) 扩展,则无法通过 Azure 防火墙进行连接。 | 如果浏览器或服务器软件不支持 SNI,也许可以使用网络规则(而不是应用程序规则)控制连接。 有关支持 SNI 的软件,请参阅服务器名称指示。 |
无法使用门户或 Azure 资源管理器 (ARM) 模板添加防火墙策略标记 | Azure 防火墙策略存在补丁支持限制,可防止使用 Azure 门户或 ARM 模板添加标记。 生成以下错误:无法保存资源的标记。 | 我们正在研究修复措施。 或者,可以使用 Azure PowerShell cmdlet Set-AzFirewallPolicy 更新标记。 |
目前不支持 IPv6 | 如果将 IPv6 地址添加到规则,防火墙会失败。 | 仅使用 IPv4 地址。 正在调查 IPv6 支持。 |
更新多个 IPGroup 失败并出现冲突错误。 | 当你更新两个或更多个已附加到同一个防火墙的 IP 组时,其中一个资源将进入失败状态。 | 这是一个已知问题或限制。 更新 IP 组时,会对该 IP 组所附加到的所有防火墙触发更新。 如果在防火墙仍处于“正在更新”状态时启动对另一个 IP 组的更新,IP 组更新将会失败。 若要避免更新失败,必须逐个更新附加到同一个防火墙的 IP 组。 请在两次更新之间留出足够的时间,让防火墙可以避开“正在更新”状态。 |
不支持使用 ARM 模板删除 RuleCollectionGroup。 | 不支持使用 ARM 模板删除 RuleCollectionGroup,这会导致失败。 | 此操作不受支持。 |
允许任何 (*) 的 DNAT 规则将对流量进行 SNAT 处理。 | 如果 DNAT 规则允许任何 (*) 为源 IP 地址,则隐式网络规则将匹配 VNet-VNet 流量,并始终会对流量进行 SNAT 处理。 | 这是当前的一项限制。 |
不支持使用安全提供程序将 DNAT 规则添加到安全虚拟中心。 | 这将导致返回 DNAT 流量的异步路由,该流量将发送到安全提供程序。 | 不支持。 |
创建超过 2000 个规则集合时遇到错误。 | NAT/应用程序或网络规则集合的最大数目为 2000(资源管理器限制)。 | 这是当前的一项限制。 |
HTTP/S 中的 XFF 标头 | 将使用防火墙看到的原始源 IP 地址覆盖 XFF 标头。 这适用于以下用例: - HTTP 请求 - 具有 TLS 终止的 HTTPS 请求 |
我们正在研究修复措施。 |
无法使用新创建的公共 IP 地址部署具有可用性区域的防火墙 | 部署具有可用性区域的防火墙时,不能使用新创建的公共 IP 地址。 | 首先创建一个新的区域冗余公共 IP 地址,然后在防火墙部署期间分配以前创建的 IP 地址。 |
Azure 防火墙不支持 Azure 专用 DNS 区域 | 无论 Azure 防火墙 DNS 设置如何,Azure 专用 DNS 区域都不适用于 Azure 防火墙。 | 若要实现使用专用 DNS 服务器的所需状态,请使用Azure 防火墙 DNS 代理而不是 Azure 专用 DNS 区域。 |
Azure 防火墙高级版
Azure 防火墙高级版存在以下已知问题:
问题 | 说明 | 缓解措施 |
---|---|---|
ESNI 支持 HTTPS 中的 FQDN 解析 | HTTPS 握手不支持加密的 SNI。 | 目前只有 Firefox 通过自定义配置支持 ESNI。 建议的解决方法是禁用此功能。 |
客户端认证身份验证不受支持 | 客户端证书用于在客户端与服务器之间建立相互的身份信任。 TLS 协商期间使用客户端证书。 Azure 防火墙会重新协商与服务器的连接,并且无权访问客户端证书的私钥。 | 无 |
QUIC/HTTP3 | QUIC 是 HTTP 的新的主版本。 它是基于 UDP 的通过 80 (PLAN) 和 443 (SSL) 端口的协议。 将不支持 FQDN/URL/TLS 检查。 | 配置作为网络规则传递 UDP 80/443。 |
不受信任的客户签名证书 | 一旦从基于 Intranet 的 Web 服务器接收客户签名的证书,防火墙将不信任它们。 | 我们正在研究修复措施。 |
使用适于 HTTP 的 IDPS 的警报中源 IP 地址错误(未经 TLS 检查)。 | 当正在使用纯文本 HTTP 流量,IDPS 发出新的警报,并且目标是公共 IP 地址时,显示的源 IP 地址错误(显示内部 IP 地址,而不是原始 IP 地址)。 | 我们正在研究修复措施。 |
证书传播 | 将 CA 证书应用于防火墙后,证书可能需要 5 到 10 分钟生效。 | 我们正在研究修复措施。 |
TLS 1.3 支持 | TLS 1.3 部分受支持。 从客户端到防火墙的 TLS 隧道基于 TLS 1.2,从防火墙到外部 Web 服务器的 TLS 隧道基于 TLS 1.3。 | 正在调查更新。 |
TLSi 中间 CA 证书过期 | 在某些特殊情况下,中间 CA 证书可能会在原始到期日期前两个月过期。 | 在原始到期日期前两个月续订中间 CA 证书。 我们正在研究修复措施。 |