设计和实现 Azure 防火墙
Azure 防火墙是托管的基于云的网络安全服务,可保护 Azure 虚拟网络资源。 它是一个服务形式的完全有状态防火墙,具有内置的高可用性和不受限制的云可伸缩性。
Azure 防火墙功能
Azure 防火墙包括以下功能:
- 内置高可用性 - 内置高可用性,因此无需额外的负载均衡器,也无需配置任何数据。
- 无限制的云可伸缩性 - Azure 防火墙可以根据需要进行横向扩展,以适应不断变化的网络流量流,因此无需为峰值流量做预算。
- 应用程序 FQDN 筛选规则 - 可以将出站 HTTP/S 流量或 Azure SQL 流量限制为指定的完全限定域名 (FQDN) 列表,包括通配符。 此功能不需要 TLS 终止。
- 网络流量筛选规则 - 可以根据源和目标 IP 地址、端口和协议,集中创建“允许”或“拒绝”网络筛选规则。 Azure 防火墙是完全有状态的,因此它能区分不同类型的连接的合法数据包。 将跨多个订阅和虚拟网络实施与记录规则。
- FQDN 标记 - 使用这些标记可以轻松允许已知的 Azure 服务网络流量通过防火墙。 例如,假设你想要允许 Windows 更新网络流量通过防火墙。 创建应用程序规则,并在其中包括 Windows 更新标记。 现在,来自 Windows 更新的网络流量将可以流经防火墙。
- 服务标记 - 服务标记表示一组 IP 地址前缀,帮助最大程度地降低创建安全规则的复杂性。 无法创建自己的服务标记,也无法指定要将哪些 IP 地址包含在标记中。 Microsoft 会管理服务标记所包含的地址前缀,并在地址更改时自动更新服务标记。
- 威胁情报 - 可以为防火墙启用基于威胁情报的筛选 (IDPS),以警告和拒绝来自/流向已知恶意 IP 地址和域的流量。 IP 地址和域源自 Microsoft 威胁智能源。
- TLS 检查 - 防火墙可以解密出站流量、处理数据,然后加密数据并将其发送到目标。
- 出站 SNAT 支持 - 所有出站虚拟网络流量 IP 地址都转换为 Azure 防火墙公共 IP(源网络地址转换 (SNAT))。 可以识别源自你的虚拟网络的流量,并允许将其发往远程 Internet 目标。
- 入站 DNAT 支持 - 流向防火墙公共 IP 地址的入站 Internet 网络流量也会被转换(目标网络地址转换),并筛选为虚拟网络的专用 IP 地址。
- 多个公共 IP 地址 - 可以将多个公共 IP 地址(最多 250 个)与防火墙关联,以启用特定的 DNAT 和 SNAT 方案。
- Azure Monitor 日志记录 - 所有事件与 Azure Monitor 集成,使你能够在存储帐户中存档日志、将事件流式传输到事件中心,或者将其发送到 Azure Monitor 日志。
- 强制隧道 - 可以将 Azure 防火墙配置为将 Internet 绑定的流量路由到指定的下一跃点,而不是直接路由到 Internet。 例如,你可能有一个本地边缘防火墙或其他网络虚拟设备 (NVA),用于对网络流量进行处理,然后再将其传递到 Internet。
- Web 类别 - 借助 Web 类别,管理员可以允许或拒绝用户访问网站类别,例如赌博网站、社交媒体网站等。 Web 类别还包含在 Azure 防火墙标准版中,但在 Azure 防火墙高级预览版中,它会进行更多微调。 标准版 SKU 中的 Web 类别功能根据 FQDN 来匹配类别,而高级版 SKU 则根据 HTTP 和 HTTPS 流量的整个 URL 来匹配类别。
- 认证 - Azure 防火墙符合支付卡行业 (PCI)、服务机构控制 (SOC)、国际标准化组织 (ISO) 和 ICSA 实验室标准。
在 Azure 防火墙中处理规则
在 Azure 防火墙中,可以配置 NAT 规则、网络规则和应用程序规则,可以通过使用经典规则或防火墙策略来完成这些操作。 默认情况下,Azure 防火墙拒绝所有流量,直到手动将规则配置为允许流量。
使用经典规则处理规则
使用经典规则,会根据规则类型按优先级顺序(由低编号到高编号,从 100 到 65,000)处理规则集合。 规则集合名称只能包含字母、数字、下划线、句点或连字符。 该名称还必须以字母或数字开头,必须以字母、数字或下划线结尾。 名称最大长度为 80 个字符。 最佳做法是一开始将规则集合的优先级数字以 100 为增量进行分隔(即 100、200、300 等),这样就可以在需要时添加更多规则集合。
使用防火墙策略处理规则
通过防火墙策略,规则在包含在规则集合组中的规则集合中进行组织。 规则集合可以是以下类型之一:
- DNAT(目标网络地址转换)
- 网络
- 应用程序
可以在一个规则集合组中定义多个规则集合类型,并且可以在一个规则集合中定义零个或多个规则,但规则集合中的规则必须属于同一类型(即 DNAT、网络或应用程序)。
借助防火墙策略,会根据规则集合组优先级和规则集合优先级处理规则。 优先级为 100(最高优先级)与 65,000(最低优先级)之间的任何数字。 最高优先级的规则集合组优先处理,在规则集合组中,具有最高优先级的规则集合(即最小数值)优先处理。
如果从父策略继承防火墙策略,则父策略中的规则集合组始终优先,而不考虑子策略的优先级。
始终在处理网络规则后处理应用程序规则,这些规则始终在 DNAT 规则之后处理,而不考虑规则集合组或规则集合优先级和策略继承。
使用网络规则和应用程序规则的出站连接
如果配置了网络规则和应用程序规则,则会在应用程序规则之前先按优先级顺序应用网络规则。 此外,所有规则可终止,因此,如果在网络规则中找到匹配项,则不会再处理其他任何规则。
如果没有网络规则匹配项,并且,如果协议是 HTTP、HTTPS 或 MSSQL,则应用程序规则会按优先级顺序评估数据包。 对于 HTTP,Azure 防火墙根据主机标头查找应用程序规则匹配项,而对于 HTTPS,Azure 防火墙仅根据服务器名称指示 (SNI) 查找应用程序规则匹配项。
使用 DNAT 规则和网络规则的入站连接
可以通过配置 DNAT 来启用入站 Internet 连接。 如前所述,DNAT 规则优先于网络规则。 如果找到匹配项,则会添加一个隐式的对应网络规则来允许转换后的流量。 出于安全原因,推荐的方法是添加特定的 Internet 源以允许 DNAT 访问网络,并避免使用通配符。
应用程序规则不适用于入站连接。 因此,如果要筛选入站 HTTP/S 流量,应使用 Web 应用程序防火墙 (WAF)。
为了提高安全性,如果修改规则以拒绝对以前允许的流量的访问,则会删除任何相关的现有会话。
部署和配置 Azure 防火墙
部署 Azure 防火墙时,请注意以下事项:
- 可以跨订阅和虚拟网络集中创建、实施和记录应用程序与网络连接策略。
- 它对虚拟网络资源使用静态公共 IP 地址。 这样,外部防火墙可识别来自你的虚拟网络的流量。
- 它与用于日志记录和分析的 Azure Monitor 完全集成。
- 创建防火墙规则时,最好使用 FQDN 标记。
部署和配置 Azure 防火墙的关键阶段如下:
- 创建资源组
- 创建虚拟网络和子网
- 在子网中创建工作负载 VM
- 将防火墙和策略部署到虚拟网络
- 创建默认出站路由
- 配置应用程序规则
- 配置网络规则
- 配置目标 NAT (DNAT) 规则
- 测试防火墙
部署具有可用性区域的 Azure 防火墙
Azure 防火墙的主要功能之一是可用性区域。
部署 Azure 防火墙时,可以将其配置为跨越多个可用性区域以提高可用性。 以这种方式配置 Azure 防火墙时,可用性将增加到 99.99% 的正常运行时间。 如果选择了两个或更多个可用性区域,则可以提供 99.99% 的运行时间 SLA。
还可以仅仅出于相互更靠近的原因,将 Azure 防火墙关联到特定的区域,并享用服务标准 99.95% SLA。
有关详细信息,请参阅 Azure 防火墙服务级别协议 (SLA)。
在可用性区域中部署的防火墙不会产生额外费用。 但是,与可用性区域关联的入站和出站数据传输会产生额外的费用。
有关详细信息,请参阅带宽定价详细信息。
Azure 防火墙可用性区域仅适用于支持可用性区域的区域。
只能在防火墙部署过程中配置可用性区域。 不能将现有防火墙配置为包含可用性区域。
使用可用性区域部署 Azure 防火墙的方法
可以使用多种方法来使用可用性区域部署 Azure 防火墙。
- Azure 门户
- Azure PowerShell - 参阅使用 Azure PowerShell 通过可用性区域部署 Azure 防火墙
- Azure 资源管理器模板 - 请参阅快速入门:使用可用性区域部署 Azure 防火墙 - Azure 资源管理器模板