使用 Azure 门户部署和配置 Azure 防火墙

控制出站网络访问是整个网络安全计划的重要组成部分。 例如,你可能想要限制对网站的访问, 或者限制可以访问的出站 IP 地址和端口。

可以控制 Azure 子网的出站网络访问的一种方法是使用 Azure 防火墙。 使用 Azure 防火墙,可以配置:

  • 应用程序规则,用于定义可从子网访问的完全限定域名 (FQDN)。
  • 网络规则,用于定义源地址、协议、目标端口和目标地址。

将网络流量路由到用作子网默认网关的防火墙时,网络流量受到配置的防火墙规则的控制。

在本文中,你将创建一个包含两个子网的简化虚拟网络便于轻松部署。

  • AzureFirewallSubnet - 防火墙在此子网中。
  • Workload-SN - 工作负荷服务器在此子网中。 此子网的网络流量通过防火墙。

网络基础结构

在本文中,学习如何:

  • 设置测试网络环境
  • 部署防火墙
  • 创建默认路由
  • 配置一个应用程序规则以允许访问 www.qq.com
  • 配置网络规则,以允许访问外部 DNS 服务器
  • 将 NAT 规则配置为允许远程桌面连接到测试服务器
  • 测试防火墙

注意

本文使用经典防火墙规则来管理防火墙。 首选方法是使用防火墙策略。 若要使用防火墙策略完成此过程,请查看教程:使用 Azure 门户部署和配置 Azure 防火墙和策略

如果需要,可以使用 Azure PowerShell 完成此过程。

先决条件

如果没有 Azure 订阅,请在开始前创建一个试用版订阅

设置网络

首先,创建一个资源组用于包含部署防火墙所需的资源。 然后创建虚拟网络、子网和测试服务器。

创建资源组

资源组包含此过程中使用的所有资源。

  1. 登录到 Azure 门户
  2. 在 Azure 门户菜单上,选择“资源组”或从任意页面搜索并选择“资源组”。 然后选择“创建”。
  3. 对于“订阅”,请选择自己的订阅。
  4. 对于“资源组名称”,请键入 Test-FW-RG。
  5. 对于“区域”,选择一个区域。 你创建的所有其他资源必须位于同一区域中。
  6. 选择“查看 + 创建”。
  7. 选择“创建”。

创建虚拟网络

此虚拟网络有两个子网。

注意

AzureFirewallSubnet 子网的大小为 /26。 有关子网大小的详细信息,请参阅 Azure 防火墙常见问题解答

  1. 在 Azure 门户菜单或“主页”上,搜索“虚拟网络”。
  2. 在结果窗格中选择“虚拟网络”。
  3. 选择“创建”。
  4. 对于“订阅”,请选择自己的订阅。
  5. 对于“资源组”,请选择“Test-FW-RG”。
  6. 对于“虚拟网络名称”,请键入“Test-FW-VN”
  7. 对于“区域”,请选择前面使用的同一区域。
  8. 选择下一步
  9. 在“安全性”选项卡上,选择“启用 Azure 防火墙”
  10. 对于“Azure 防火墙名称”,请键入“Test-FW01”
  11. 对于“Azure 防火墙公共 IP 地址”,请选择“创建公共 IP 地址”
  12. 对于“名称”,请键入“fw-pip”,然后选择“确定”
  13. 选择下一步
  14. 对于“地址空间”,请接受默认值“10.0.0.0/16”。
  15. 在“子网”下,选择“默认”,并将“名称”更改为“Workload-SN”
  16. 对于“起始地址”,请将其更改为“10.0.2.0/24”
  17. 选择“保存”。
  18. 选择“查看 + 创建”。
  19. 选择创建

注意

Azure 防火墙会根据可用端口视需要使用公共 IP。 随机选择一个公共 IP 进行出站连接后,只有在再也无法从当前公共 IP 进行连接后,它才会使用下一个可用的公共 IP。 在流量和吞吐量较高的场景中,建议使用 NAT 网关提供出站连接。 SNAT 端口在与 NAT 网关关联的所有公共 IP 之间动态分配。 若要了解详细信息,请参阅将 NAT 网关与 Azure 防火墙集成

创建虚拟机

现在创建工作负荷虚拟机,将其置于“Workload-SN”子网中。

  1. 在 Azure 门户菜单或“主页”页上,选择“创建资源” 。

  2. 选择“Windows Server 2019 Datacenter”。

  3. 输入虚拟机的以下值:

    设置
    资源组 Test-FW-RG
    虚拟机名称 Srv-Work
    区域 与前面相同
    映像 Windows Server 2019 Datacenter
    管理员用户名 键入用户名
    密码 键入密码
  4. 在“公用入站端口”,“入站端口规则”下 ,选择“无”。

  5. 接受其他默认值,然后选择“下一步:磁盘”

  6. 接受磁盘默认值,然后选择“下一步:网络”。

  7. 请确保为虚拟网络选择“Test-FW-VN”,并且子网为“Workload-SN”。

  8. 对于“公共 IP”,请选择“无”。

  9. 接受其他默认值,然后选择“下一步:管理”

  10. 接受默认值,然后选择“下一步: 监视”。

  11. 对于“启动诊断”,请选择“禁用”以禁用启动诊断。 接受其他默认值,然后选择“查看 + 创建”。

  12. 检查摘要页上的设置,然后选择“创建”。

  13. 部署完成后,选择“转到资源”并记下稍后需要使用的“Srv-Work”专用 IP 地址。

注意

Azure 会为未分配公共 IP 地址的 VM 或位于内部基本 Azure 负载均衡器的后端池中的 VM 提供默认出站访问 IP。 默认出站访问 IP 机制会提供不可配置的出站 IP 地址。

发生以下事件之一时,将禁用默认出站访问 IP:

  • 将公共 IP 地址分配给 VM。
  • 虚拟机被放置在标准负载平衡器的后端池中,有无出站规则均可。
  • 向 VM 的子网分配了 Azure NAT 网关资源。

在灵活业务流程模式下通过使用虚拟机规模集创建的 VM 没有默认的出站访问权限。

有关 Azure 中的出站连接的详细信息,请参阅 Azure 中的默认出站访问权限使用用于出站连接的源网络地址转换 (SNAT)

检查防火墙

  1. 转到资源组并选择防火墙。
  2. 记下防火墙专用 IP 地址和公共 IP 地址。 稍后将使用这些地址。

创建默认路由

为通过防火墙的出站和入站连接创建路由时,使用虚拟设备专用 IP 作为下一个跃点的默认路由为 0.0.0.0/0。 这会通过防火墙定向任何传出和传入连接。 例如,如果防火墙正在完成 TCP 握手并响应传入请求,则系统会将响应定向到发送流量的 IP 地址。 这是设计的结果。

因此,无需创建其他的用户定义路由来包含 AzureFirewallSubnet IP 范围。 这可能会导致连接断开。 原始默认路由就已足够。

对于“Workload-SN”子网,请配置要通过防火墙的出站默认路由。

  1. 在 Azure 门户中,搜索“路由表”。
  2. 在结果窗格中选择“路由表”。
  3. 选择“创建”。
  4. 对于“订阅”,请选择自己的订阅。
  5. 对于“资源组”,请选择“Test-FW-RG”。
  6. 对于“区域”,请选择以前使用的同一位置。
  7. 对于“名称”,请键入 Firewall-route
  8. 选择“查看 + 创建”。
  9. 选择“创建”。

部署完成后,选择“转到资源”。

  1. 在“防火墙路由”页上,选择“子网”,然后选择“关联”。

  2. 对于虚拟网络,请选择“Test-FW-VN”。

  3. 对于“子网”,请选择“Workload-SN”。 请确保仅为此路由选择“Workload-SN” 子网,否则防火墙将无法正常工作

  4. 选择“确定”。

  5. 依次选择“路由”、“添加” 。

  6. 对于“路由名称”,请键入 fw-dg

  7. 对于“目标类型”,请选择“IP 地址”。

  8. 对于“目标 IP 地址/CIDR 范围”,键入 0.0.0.0/0。

  9. 对于“下一跃点类型”,请选择“虚拟设备”。

    Azure 防火墙实际上是一个托管服务,但虚拟设备可在此场合下正常工作。

  10. 对于“下一跃点地址”,请键入前面记下的防火墙专用 IP 地址。

  11. 选择添加

配置网络规则

这是允许在端口 53 (DNS) 上对两个 IP 地址进行出站访问的网络规则。

  1. 选择“网络规则集合”选项卡。

  2. 选择“添加网络规则集合”。

  3. 对于“名称”,请键入 Net-Coll01

  4. 对于“优先级”,请键入 200

  5. 对于“操作”,请选择“允许”。

  6. 在“规则”下,对于“名称”键入 Allow-DNS

  7. 对于“协议”,请选择“UDP”。

  8. 对于源类型,请选择“IP 地址”。

  9. 对于,请键入 10.0.2.0/24

  10. 对于“目标类型”,请选择“IP 地址”。

  11. 对于目标地址,请键入 209.244.0.3,209.244.0.4

    这些是由 Level3 操作的公共 DNS 服务器。

  12. 对于“目标端口”,请键入 53

  13. 选择 添加

配置 DNAT 规则

此规则允许通过防火墙将远程桌面连接到 Srv-Work 虚拟机。

  1. 选择“NAT 规则集合”选项卡。
  2. 选择“添加 NAT 规则集合”。
  3. 对于“名称”,请键入“rdp”。
  4. 对于“优先级”,请键入 200
  5. 在“规则”下,对于“名称”,键入“rdp-nat” 。
  6. 对于“协议”,请选择“TCP”。
  7. 对于源类型,请选择“IP 地址”。
  8. 对于“源”,请键入 *
  9. 对于“目标地址”,键入防火墙的公共 IP 地址。
  10. 对于“目标端口”,请键入 3389
  11. 对于“已翻译的地址”,键入 Srv-work 的专用 IP 地址。
  12. 对于“已翻译的端口” ,键入 3389
  13. 选择 添加

更改 Srv-Work 网络接口的主要和辅助 DNS 地址

为了进行测试,请配置服务器的主要和辅助 DNS 地址。 这并不是一项常规的 Azure 防火墙要求。

  1. 在 Azure 门户菜单上,选择“资源组”或从任意页面搜索并选择“资源组”。 选择“Test-FW-RG”资源组。
  2. 选择 Srv-Work 虚拟机的网络接口。
  3. 在“设置”下,选择“DNS 服务器”。
  4. 在“DNS 服务器”下,选择“自定义”。
  5. 在“添加 DNS 服务器”文本框中键入 209.244.0.3 并按 Enter,然后在下一个文本框中键入 209.244.0.4
  6. 选择“保存”。
  7. 重启 Srv-Work 虚拟机。

测试防火墙

现在测试防火墙,以确认它是否按预期方式工作。

  1. 将远程桌面连接到防火墙公共 IP 地址,并登录到“Srv-Work”虚拟机。

  2. 打开 Internet Explorer 并浏览到 https://www.qq.com

  3. 出现 Internet Explorer 安全警报时,请选择“确定”>“关闭”。

    应会看到 QQ 主页。

  4. 浏览到 https://www.microsoft.com

    防火墙应该会阻止你。

现已验证防火墙规则可正常工作:

  • 可以使用 RDP 连接到虚拟机。
  • 可以浏览到一个允许的 FQDN,但不能浏览到其他任何 FQDN。
  • 可以使用配置的外部 DNS 服务器解析 DNS 名称。

清理资源

可保留防火墙资源来继续测试。如果不再需要,请删除 Test-FW-RG 资源组,以删除与防火墙相关的所有资源。

后续步骤

教程:监视 Azure 防火墙日志