什么是 Azure 防火墙?
Azure 防火墙是托管的基于云的网络安全服务,可保护 Azure 虚拟网络资源。 它是一个服务形式的完全有状态防火墙,具有内置的高可用性和不受限制的云可伸缩性。 可以跨订阅和虚拟网络集中创建、实施和记录应用程序与网络连接策略。
Azure 防火墙支持哪些功能?
若要了解 Azure 防火墙的功能,请参阅 Azure 防火墙功能。
Azure 防火墙的典型部署模型是什么?
可在任何虚拟网络中部署 Azure 防火墙,但客户往往在中心虚拟网络中部署它,并在中心辐射模型中将其对等互连到其他虚拟网络。 然后,可将对等互连的虚拟网络中的默认路由设置为指向此中心防火墙虚拟网络。 支持全局 VNet 对等互连,但不建议使用,因为它可能会在不同的区域中造成性能影响和延迟问题。 为获得最佳性能,请为每个区域部署一个防火墙。
该模型的优点是能够跨不同订阅集中控制多个辐射 VNET。 由于不需要在每个 VNet 中单独部署防火墙,因此还能节约成本。 应根据客户流量模式衡量成本节约与相关对等互连成本。
如何安装 Azure 防火墙?
可以使用 Azure 门户、PowerShell、REST API 或使用模板设置 Azure 防火墙。 请参阅教程:使用 Azure 门户部署和配置 Azure 防火墙。
有哪些 Azure 防火墙概念?
Azure 防火墙支持规则和规则集合。 规则集合是一组共享相同顺序和优先级的规则。 规则集合按其优先顺序执行。 DNAT 规则集合是优先级较高的网络规则集合,网络规则集合的优先级高于应用程序规则集合,所有规则都具有终止性。
有三种类型的规则集合:
- 应用程序规则:配置可从虚拟网络访问的完全限定域名 (FQDN)。
- 网络规则:配置包含源地址、协议、目标端口和目标地址的规则。
- NAT 规则:将 DNAT 规则配置为允许传入的 Internet 连接。
有关详细信息,请参阅配置 Azure 防火墙规则。
Azure 防火墙是否支持入站流量筛选?
Azure 防火墙支持入站和出站筛选。 入站保护通常用于 RDP、SSH 和 FTP 协议等非 HTTP 协议。 对于入站 HTTP 和 HTTPS 保护,请使用 Web 应用程序防火墙,例如 Azure Web 应用程序防火墙 (WAF) 或 Azure 防火墙高级版的 TLS 卸载和深度数据包检查功能。
Azure 防火墙基本版是否支持强制隧道?
是的,Azure 防火墙基本版支持强制隧道。
Azure 防火墙支持哪些日志记录和分析服务?
Azure 防火墙与 Azure Monitor 集成,可用于查看和分析防火墙日志。 日志可发送到 Log Analytics、Azure 存储或事件中心。 它们可在 Log Analytics 中进行分析,也可通过 Excel 和 Power BI 等不同工具进行分析。 有关详细信息,请参阅教程:监视 Azure 防火墙日志。
Azure 防火墙的工作原理与市场中现有的服务(例如 NVA)有何不同?
Azure 防火墙是基于云的托管式网络安全服务,可保护虚拟网络资源。 它是一个服务形式的完全有状态防火墙,具有内置的高可用性和不受限制的云可伸缩性。 它与第三方安全即服务 (SECaaS) 提供程序预先集成,为虚拟网络和分支 Internet 连接提供高级安全性。 若要详细了解 Azure 网络安全,请参阅 Azure 网络安全。
应用程序网关 WAF 与 Azure 防火墙之间有何区别?
Web 应用程序防火墙 (WAF) 是应用程序网关的一项功能,可在出现常见攻击和漏洞时为 Web 应用程序提供集中的入站保护。 Azure 防火墙防火墙为非 HTTP/S 协议(例如,RDP、SSH、FTP)提供入站保护、为所有端口和协议提供出站网络级别的保护,并为出站 HTTP/S 提供应用程序级别的保护。
网络安全组 (NSG) 和 Azure 防火墙之间有何区别?
Azure 防火墙服务为网络安全组功能提供了补充。 两者共同提供了更好的“深层防御”网络安全性。 网络安全组提供分布式网络层流量过滤,以限制每个订阅中虚拟网络内资源的流量。 Azure 防火墙是一个服务形式的完全有状态的集中式网络防火墙,可跨不同的订阅和虚拟网络提供网络和应用程序级别的保护。
AzureFirewallSubnet 是否支持网络安全组 (NSG)?
Azure 防火墙是具有多个保护层的托管服务,这些层包括使用 NIC 级 NSG(不可查看)进行的平台保护。 不需要在 AzureFirewallSubnet 中配置子网级 NSG,为确保服务不会中断,将禁用此类 NSG。
如何使用服务终结点设置 Azure 防火墙?
若要安全访问 PaaS 服务,我们建议使用服务终结点。 可以选择在 Azure 防火墙子网中启用服务终结点,并在连接的分支虚拟网络中禁用它们。 这样可以受益于以下两个功能:服务终结点安全性和针对所有流量的集中日志记录。
Azure 防火墙采用何种定价方式?
请参阅 Azure 防火墙定价。
如何停止和启动 Azure 防火墙?
可以使用 Azure PowerShell 的 deallocate 和 allocate 方法。 对于为强制隧道配置的防火墙,此过程略有不同。
例如,对于配置时未启用管理 NIC 的防火墙:
# Stop an existing firewall
$azfw = Get-AzFirewall -Name "FW Name" -ResourceGroupName "RG Name"
$azfw.Deallocate()
Set-AzFirewall -AzureFirewall $azfw
# Start the firewall
$azfw = Get-AzFirewall -Name "FW Name" -ResourceGroupName "RG Name"
$vnet = Get-AzVirtualNetwork -ResourceGroupName "RG Name" -Name "VNet Name"
$publicip1 = Get-AzPublicIpAddress -Name "Public IP1 Name" -ResourceGroupName "RG Name"
$publicip2 = Get-AzPublicIpAddress -Name "Public IP2 Name" -ResourceGroupName "RG Name"
$azfw.Allocate($vnet,@($publicip1,$publicip2))
Set-AzFirewall -AzureFirewall $azfw
对于配置时启用了管理 NIC 的防火墙,停止是相同的。 但时启动需要将管理公共 IP 重新关联回防火墙:
# Stop an existing firewall
$azfw = Get-AzFirewall -Name "FW Name" -ResourceGroupName "RG Name"
$azfw.Deallocate()
Set-AzFirewall -AzureFirewall $azfw
# Start the firewall
$azfw = Get-AzFirewall -Name "FW Name" -ResourceGroupName "RG Name"
$vnet = Get-AzVirtualNetwork -ResourceGroupName "RG Name" -Name "VNet Name"
$pip= Get-AzPublicIpAddress -ResourceGroupName "RG Name" -Name "azfwpublicip"
$mgmtPip2 = Get-AzPublicIpAddress -ResourceGroupName "RG Name" -Name "mgmtpip"
$azfw.Allocate($vnet, $pip, $mgmtPip2)
$azfw | Set-AzFirewall
对于安全虚拟中心体系结构中的防火墙,停止操作相同,但启动操作必须使用虚拟中心 ID:
# Stop and existing firewall
$azfw = Get-AzFirewall -Name "FW Name" -ResourceGroupName "RG Name"
$azfw.Deallocate()
Set-AzFirewall -AzureFirewall $azfw
# Start the firewall
$virtualhub = get-azvirtualhub -ResourceGroupName "RG name of vHUB" -name "vHUB name"
$azfw = Get-AzFirewall -Name "FW Name" -ResourceGroupName "Azfw RG Name"
$azfw.Allocate($virtualhub.Id)
$azfw | Set-AzFirewall
在分配和解除分配时,防火墙计费会相应地停止和启动。
注意
必须将防火墙和公共 IP 重新分配到原始资源组和订阅。 执行停止/启动时,防火墙的专用 IP 地址可能会更改为子网中的其他 IP 地址。 这可能会影响以前配置的路由表的连接。
部署后如何配置可用性区域?
建议在初始防火墙部署期间配置可用性区域。 但是,在某些情况下,可以在部署后更改可用性区域。 先决条件包括:
- 防火墙部署在 VNet 中。 它不受在安全虚拟中心部署的防火墙支持。
- 防火墙的区域支持可用性区域。
- 所有附加的公共 IP 地址都随可用性区域一起部署。 在每个公共 IP 地址的“属性”页中,确保可用性区域字段存在,并使用为防火墙配置的相同区域进行配置。
只有在重启防火墙时,才能重新配置可用性区域。 在分配防火墙后,以及使用 Set-AzFirewall
启动防火墙之前,请使用以下 Azure PowerShell 修改防火墙的 区域属性:
$azfw = Get-AzFirewall -Name "FW Name" -ResourceGroupName "RG Name"
$vnet = Get-AzVirtualNetwork -ResourceGroupName "RG Name" -Name "VNet Name"
$pip= Get-AzPublicIpAddress -ResourceGroupName "RG Name" -Name "azfwpublicip"
$mgmtPip2 = Get-AzPublicIpAddress -ResourceGroupName "RG Name" -Name "mgmtpip"
$azfw.Allocate($vnet, $pip, $mgmtPip2)
$azFw.Zones=1,2,3
$azfw | Set-AzFirewall
有哪些已知的服务限制?
有关 Azure 防火墙服务限制,请参阅 Azure 订阅和服务限制、配额与约束。
中心虚拟网络中的 Azure 防火墙能否转发并筛选多个分支虚拟网络之间的网络流量?
能,可以在中心虚拟网络中使用 Azure 防火墙来路由和筛选多个分支虚拟网络之间的流量。 每个分支虚拟网络中的子网必须具有指向 Azure 防火墙的 UDR,作为此方案生效所需的默认网关。
Azure 防火墙能否转发和筛选同一虚拟网络或对等互连虚拟网络中子网之间的网络流量?
是的。 但是,将 UDR 配置为在同一 VNET 中的子网之间重定向流量时需要额外注意。 虽然使用 VNET 地址范围作为 UDR 的目标前缀就足够了,但这也会通过 Azure 防火墙实例将所有流量从一台计算机路由到同一子网中的另一台计算机。 为避免这种情况,请在 UDR 中包含下一跃点类型为 VNET 的子网路由。 管理这些路由可能很麻烦并且容易出错。 建议的内部网络分段方法是使用不需要 UDR 的网络安全组。
是否在专用网络之间进行 Azure 防火墙出站 SNAT?
如果目标 IP 地址是符合专用网络的 IANA RFC 1918 或 IANA RFC 6598 的专用 IP 范围,Azure 防火墙不会执行 SNAT。 如果组织对专用网络使用公共 IP 地址范围,Azure 防火墙会通过 SNAT 将流量发送到 AzureFirewallSubnet 中的某个防火墙专用 IP 地址。 可以将 Azure 防火墙配置为不 SNAT 公共 IP 地址范围。 有关详细信息,请参阅 Azure 防火墙 SNAT 专用 IP 地址范围。
此外,应用程序规则处理的流量始终经过 SNAT。 如果要在日志中查看 FQDN 流量的原始源 IP 地址,可将网络规则与目标 FQDN 结合使用。
是否支持强制隧道/链接到网络虚拟设备?
创建新的防火墙时,支持强制隧道。 不能为强制隧道配置现有的防火墙。 有关详细信息,请参阅 Azure 防火墙强制隧道。
Azure 防火墙必须具有直接的 Internet 连接。 如果 AzureFirewallSubnet 知道通过 BGP 的本地网络的默认路由,则必须将其替代为 0.0.0.0/0 UDR,将 NextHopType 值设置为 Internet 以保持 Internet 直接连接 。
如果你的配置需要通过强制隧道连接到本地网络,并且可以确定 Internet 目标的目标 IP 前缀,则可以通过 AzureFirewallSubnet 上用户定义的路由将本地网络的这些范围配置为下一跃点。 或者,可以使用 BGP 来定义这些路由。
是否有任何防火墙资源组限制?
是的。
- 防火墙和 VNet 必须位于同一资源组中。
- 公共 IP 地址可以位于任何资源组中。
- 防火墙、VNet 和公共 IP 地址都必须位于同一订阅中。
通配符在应用程序规则的目标 URL 和目标 FQDN 中如何工作?
- URL - 在最右边或最左边时,星号起作用。 如果它位于左侧,则不能是 FQDN 的一部分。
- FQDN - 星号在置于最左侧时起作用。
- 常规 - 最左侧的星号表示左侧的任何内容将逐字匹配,这意味着多个子域和/或可能不需要的域名变体将匹配 - 参见以下示例。
示例:
类型 | 规则 | 是否支持? | 正样本 |
---|---|---|---|
TargetURL | www.contoso.com |
是 | www.contoso.com www.contoso.com/ |
TargetURL | *.contoso.com |
是 | any.contoso.com/ sub1.any.contoso.com |
TargetURL | *contoso.com |
是 | example.anycontoso.com sub1.example.contoso.com contoso.com 警告:通配符的这种用法也会带来潜在的意外/风险变化,例如 th3re4lcontoso.com - 请谨慎使用。 |
TargetURL | www.contoso.com/test |
是 | www.contoso.com/test www.contoso.com/test/ www.contoso.com/test?with_query=1 |
TargetURL | www.contoso.com/test/* |
是 | www.contoso.com/test/anything 注意: www.contoso.com/test 不匹配(最后的斜杠) |
TargetURL | www.contoso.*/test/* |
否 | |
TargetURL | www.contoso.com/test?example=1 |
否 | |
TargetURL | www.contoso.* |
否 | |
TargetURL | www.*contoso.com |
否 | |
TargetURL | www.contoso.com:8080 |
否 | |
TargetURL | *.contoso.* |
否 | |
TargetFQDN | www.contoso.com |
是 | www.contoso.com |
TargetFQDN | *.contoso.com |
是 | any.contoso.com 注意:如果要专门允许 contoso.com ,则必须在规则中包含 contoso.com。 否则,默认情况下将删除连接,因为请求将不匹配任何规则。 |
TargetFQDN | *contoso.com |
是 | example.anycontoso.com contoso.com |
TargetFQDN | www.contoso.* |
否 | |
TargetFQDN | *.contoso.* |
否 |
“预配状态: 失败”意味着什么?
无论何时应用配置更改,Azure 防火墙都会尝试更新其所有基础后端实例。 在极少数情况下,其中一个后端实例可能无法更新为新配置,更新过程将以失败的预配状态停止。 你的 Azure 防火墙仍然可以运行,但是应用的配置可能处于不一致的状态,其中一些实例具有以前的配置,而其他实例具有已更新的规则集。 如果发生这种情况,请尝试再一次更新配置,直到操作成功,并且防火墙处于“成功”预配状态。
Azure 防火墙如何处理计划内维护和计划外故障?
Azure 防火墙包含多个采用主动-主动配置的后端节点。 对于任何计划内维护,我们都可以通过连接清空逻辑来正常更新节点。 为进一步限制中断风险,计划在每个 Azure 区域的非营业时间进行更新。 对于计划外问题,我们会实例化一个新节点来代替故障节点。 通常情况下,我们会在发生故障后 10 秒钟内重新建立到新节点的连接。
连接清空的工作原理
对于任何计划内维护,连接清空逻辑会正常更新后端节点。 Azure 防火墙会等待 90 秒,以便关闭现有连接。 在前 45 秒内,后端节点不接受新连接,在剩余时间内,它通过 RST
响应所有传入数据包。 如果需要,客户端可以自动重建到另一个后端节点的连接。
防火墙名称是否存在字符限制?
是的。 防火墙名称有 50 个字符的限制。
为何 Azure 防火墙需要 /26 子网大小?
Azure 防火墙在缩放时必须预配更多的虚拟机实例。 /26 地址空间确保防火墙有足够的 IP 地址来应对缩放操作。
在服务缩放时,防火墙子网大小是否需要更改?
不是。 Azure 防火墙不需要大于 /26 的子网。
如何提高防火墙吞吐量?
Azure 防火墙的初始吞吐容量为 2.5 - 3 Gbps,对于标准 SKU,它会横向扩展到 30 Gbps;对于高级 SKU,它会横向扩展到 100 Gbps。 它会根据 CPU 使用率、吞吐量和连接数自动进行横向扩展。
Azure 防火墙横向扩展需要多长时间?
当平均吞吐量或 CPU 消耗达到 60% 或连接使用率数量达到 80% 时,Azure 防火墙就会逐渐横向扩展。 例如,当它达到最大吞吐量的 60% 时,即会开始横向扩展。 最大吞吐量数值因防火墙 SKU 和已启用功能而异。 有关详细信息,请参阅 Azure 防火墙性能。
横向扩展需要 5 到 7 分钟。
进行性能测试时,请确保至少测试 10 到 15 分钟,并启动新连接以利用新创建的防火墙节点。
Azure 防火墙如何处理空闲超时?
在连接出现空闲超时(4 分钟时间无活动)时,Azure 防火墙会通过发送 TCP RST 数据包来正常终止该连接。
Azure 防火墙如何处理虚拟机规模集横向缩减(纵向缩减)或舰队软件升级过程中的 VM 实例关闭问题?
在虚拟机规模集横向缩减(纵向缩减)过程中,或者在舰队软件升级过程中,可能会发生 Azure 防火墙 VM 实例关闭的情况。 在这些情况下,新的传入连接会负载均衡到其余的防火墙实例,而不会转发到已关闭的防火墙实例。 在 45 秒后,防火墙会通过发送 TCP RST 数据包来开始拒绝现有的连接。 再过 45 秒后,防火墙 VM 会关闭。 有关详细信息,请参阅负载均衡器 TCP 重置和空闲超时。
默认情况下,Azure 防火墙是否允许访问 Active Directory?
不是。 Azure 防火墙默认阻止 Active Directory 访问。 若要允许访问,请配置 AzureActiveDirectory 服务标记。 有关详细信息,请参阅 Azure 防火墙服务标记。
能否从基于 Azure 防火墙威胁情报的筛选中排除 FQDN 或 IP 地址?
能。可以使用 Azure PowerShell 执行该操作:
# Add a Threat Intelligence allowlist to an Existing Azure Firewall.
# Create the allowlist with both FQDN and IPAddresses
$fw = Get-AzFirewall -Name "Name_of_Firewall" -ResourceGroupName "Name_of_ResourceGroup"
$fw.ThreatIntelWhitelist = New-AzFirewallThreatIntelWhitelist `
-FQDN @("fqdn1", "fqdn2", …) -IpAddress @("ip1", "ip2", …)
# Or Update FQDNs and IpAddresses separately
$fw = Get-AzFirewall -Name $firewallname -ResourceGroupName $RG
$fw.ThreatIntelWhitelist.IpAddresses = @($fw.ThreatIntelWhitelist.IpAddresses + $ipaddresses)
$fw.ThreatIntelWhitelist.fqdns = @($fw.ThreatIntelWhitelist.fqdns + $fqdns)
Set-AzFirewall -AzureFirewall $fw
为什么 TCP ping 和类似工具可以成功连接到目标 FQDN,即使 Azure 防火墙上没有允许该流量的规则也是如此?
TCP ping 实际上并不连接到目标 FQDN。 Azure 防火墙不允许连接到任何目标 IP 地址/FQDN,除非存在允许它的显式规则。
TCP ping 是一个独特的用例,其中如果没有允许的规则,防火墙本身也会响应客户端的 TCP ping 请求,即使 TCP ping 不到达目标 IP 地址/FQDN。 在这种情况下,不会记录事件。 如果存在允许访问目标 IP 地址/FQDN 的网络规则,则 ping 请求将到达目标服务器,并且其响应将中继回客户端。 此事件记录在网络规则日志中。
IP 组支持的 IP 地址数量是否有限制?
是的。 有关详细信息,请参阅 Azure 订阅和服务限制、配额与约束
能否将 IP 组移到其他资源组?
否,目前不支持将 IP 组移动到其他资源组。
Azure 防火墙的 TCP 空闲超时是多长时间?
网络防火墙的标准行为是确保 TCP 连接保持活动状态,并在没有活动时迅速将其关闭。 Azure 防火墙 TCP 空闲超时为 4 分钟。 用户不可配置此设置,但你可以联系 Azure 支持人员来增加入站和出站连接的空闲超时(不超过 15 分钟)。 无法更改东西向流量的空闲超时。
如果处于非活动状态的时间超过超时值,则不能保证维持 TCP 或 HTTP 会话。 常见的做法是使用 TCP 保持连接状态。 这种做法可以使连接状态保持更长时间。 有关详细信息,请参阅 .NET 示例。
是否可以在不使用公共 IP 地址的情况下部署 Azure 防火墙?
是,但你必须在强制隧道模式下配置防火墙。 此配置会创建一个管理接口,其中包含 Azure 防火墙用于其操作的公共 IP 地址。 此公共 IP 地址用于管理流量。 它仅供 Azure 平台使用,不能用于任何其他目的。 可以在没有公共 IP 地址的情况下配置租户数据路径网络,并且 Internet 流量可以强制通过隧道连接到另一个防火墙或完全被阻止。
Azure 防火墙将客户数据存储在何处?
Azure 防火墙不会将客户数据移动或存储到部署了该防火墙的区域之外。
是否有办法自动备份 Azure 防火墙和策略?
是的。 有关详细信息,请参阅使用逻辑应用备份 Azure 防火墙和 Azure 防火墙策略。
卡塔尔是否支持安全虚拟中心 (vWAN) 的 Azure 防火墙?
否,目前卡塔尔不支持安全虚拟中心 (vWAN) 的 Azure 防火墙。
Azure 防火墙可以支持多少个并行连接?
Azure 防火墙使用具有硬限制连接数的 Azure 虚拟机。 每个虚拟机的活动连接总数为 25 万。
每个防火墙的总限制为虚拟机连接限制 (250k) x 防火墙后端池中的虚拟机数。 Azure 防火墙从两个虚拟机开始,并根据 CPU 使用率和吞吐量横向扩展。
什么是 Azure 防火墙中的 SNAT TCP/UDP 端口重用行为?
Azure 防火墙当前对出站 SNAT 流量使用 TCP/UDP 源端口,没有空闲等待时间。 关闭 TCP/UDP 连接后,所使用的 TCP 端口立即被视为可供即将建立的连接使用。
某些体系结构的解决方法是,可通过使用 Azure 防火墙的 NAT 网关进行部署和缩放,提供一组更广泛的 SNAT 端口来实现可变性和可用性。
什么是 Azure 防火墙中的 NAT 行为?
特定 NAT 行为取决于防火墙的配置和所配置的 NAT 类型。 例如,防火墙具有面向入站流量的 DNAT 规则,以及面向通过防火墙的出站流量的网络规则和应用程序规则。