练习 - 通过 Azure 防火墙路由网络流量
在上一个练习中,你部署了 Azure 防火墙。 现在需要通过防火墙路由所有网络流量,并使用防火墙规则筛选流量。 完成后,Azure 防火墙将保护 Azure 虚拟桌面的出站网络流量。
通过防火墙路由所有流量
对于主机池使用的子网,请将出站默认路由配置为通过防火墙。 你将完成以下三个步骤:
- 在与主机池 VM 和防火墙相同的资源组中创建路由表。
- 将路由表关联到主机池 VM 使用的子网。
- 在路由表上,添加通往防火墙的路由。
完成这些步骤后,所有流量都将路由到 Azure 防火墙。
创建路由表
首先,创建一个名为 firewall-route 的路由表。
在 Azure 门户中,搜索并选择“路由表”。
选择“+ 新建”。
使用以下值:
字段 值 订阅 你的订阅 资源组 learn-firewall-rg 区域 选择先前使用的相同位置。 名称 firewall-route 选择“查看 + 创建”>“创建”。
部署完成后,选择“转到资源”。
将路由表关联到工作负载的子网
现在,将 firewall-route 关联到主机池的子网。
在“firewall-route”上的“设置”下,选择“子网”。
选择“+ 关联”。
选择以下值:
字段 Value 虚拟网络 hostVNet 子网 hostSubnet 选择“确定”,然后等待关联添加完毕。
将路由添加到路由表
最后一步是在路由表上添加通往 Azure 防火墙的路由。 完成此步骤后,主机池虚拟网络上的所有网络流量都将通过 Azure 防火墙进行路由。
在“设置”下,选择“路由”。
选择“+ 添加”。
输入以下值:
字段 值 路由名称 fw-rt 目标类型 IP 地址 目标 IP 地址/CIDR 范围 0.0.0.0/0 下一跃点类型 虚拟设备 下一跃点地址 粘贴上一个练习单元中的“防火墙专用 IP 地址”。 可在防火墙页面下找到此信息,信息列为“防火墙专用 IP”。 选择 添加 。
创建应用程序规则集合
默认情况下,防火墙拒绝对所有内容的访问,因此,你需要配置允许流量通过防火墙的条件。
创建应用程序规则集合,其中包含允许 Azure 虚拟桌面访问多个完全限定域名 (FQDN) 的规则。
在 Azure 门户中,搜索并选择“防火墙”。
选择“learn-fw”防火墙。
在“设置”下,选择“规则(经典)”。
选择“应用程序规则集合”选项卡,然后选择“添加应用程序规则集合”。
输入以下信息:
字段 值 名称 app-coll01 优先度 200 操作 允许 在“规则”下的“FQDN 标记”部分中,输入以下信息:
字段 值 名称 allow-virtual-desktop 源类型 IP 地址 源 hostVNet 的地址空间,例如 10.0.0.0/16 FQDN 标记 Windows 虚拟桌面 在“规则”下的“目标 FQDN”部分中,输入以下信息:
字段 值 名称 allow-storage-service-bus-accounts 源类型 IP 地址 源 hostVNet 的地址空间,例如 10.0.0.0/16 协议:端口 https 目标 FQDN *xt.blob.core.windows.net
、*eh.servicebus.windows.net
、*xt.table.core.windows.net
完成后,窗体如下图所示:
选择 添加 。
创建网络规则集合
假设我们的方案使用 Microsoft Entra 域服务(Microsoft Entra 域服务),因此无需创建网络规则来允许 DNS。 但是,你需要创建规则来允许从 Azure 虚拟桌面 VM 流向 Windows 激活服务的流量。 若要让我们的网络规则允许密钥管理服务 (KMS),请使用 Azure 全球云的 KMS 服务器的目标 IP 地址。
在“learn-fw”>“规则(经典)”上,选择“网络规则集合”。
选择“网络规则集合”选项卡,然后选择“添加网络规则集合”。
输入以下信息:
字段 值 名称 net-coll01 优先度 200 操作 允许 在“规则”下的“IP 地址”部分中,输入以下信息:
字段 值 名称 allow-kms 协议 TCP 源类型 IP 地址 源 hostVNet 的地址空间,例如 10.0.0.0/16 目标类型 IP 地址 目标地址 23.102.135.246 目标端口 1688 完成后,窗体如下图所示:
选择 添加 。
检查你的工作
至此,你已通过防火墙路由了 Azure 虚拟桌面的所有网络流量。 请确保防火墙正常工作。 来自主机池的出站网络流量应通过防火墙筛选后流向 Azure 虚拟桌面服务。 你可以通过检查服务组件的状态,验证防火墙是否允许流量流向该服务。
在 Azure Cloud Shell 中运行以下命令:
"rdgateway", "rdbroker","rdweb"|% ` {Invoke-RestMethod -Method:Get ` -Uri https://$_.wvd.microsoft.com/api/health}|ft ` -Property Health,TimeStamp,ClusterUrl
你应该会看到如下所示的结果,即,列出的三个组件服务全都正常运行:
Health TimeStamp ClusterUrl ------ --------- ---------- RDGateway is Healthy 7/2/2021 6:00:00 PM https://rdgateway-c101-cac-r1.wvd.microsoft.com/ RDBroker is Healthy 7/2/2021 6:00:00 PM https://rdbroker-c100-cac-r1.wvd.microsoft.com/ RDWeb is Healthy 7/2/2021 6:00:00 PM https://rdweb-c100-cac-r1.wvd.microsoft.com/
如果一个或多个组件不正常,则表示防火墙未正常工作。