你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

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

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

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

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

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

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

对于生产部署,建议使用中心辐射模型,其中的防火墙位于其自身的虚拟网络中。 工作负荷服务器在包含一个或多个子网的同一区域中的对等虚拟网络内。

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

网络基础结构

在本文中,学习如何:

  • 设置测试网络环境
  • 部署防火墙
  • 创建默认路由
  • 配置一个应用程序规则以允许访问 www.google.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. 选择“创建”。

创建虚拟机

现在创建工作负荷虚拟机,将其置于“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. 选择 添加

配置应用程序规则

这是允许出站访问 www.google.com 的应用程序规则。

  1. 打开“Test-FW-RG”,然后选择“Test-FW01”防火墙。
  2. 在“Test-FW01”页的“设置”下,选择“规则(经典)” 。
  3. 选择“应用程序规则集合”选项卡。
  4. 选择“添加应用程序规则集合”。
  5. 对于“名称”,请键入 App-Coll01
  6. 对于“优先级”,请键入 200
  7. 对于“操作”,请选择“允许”。
  8. 在“规则”>“目标 FQDN”下,键入 Allow-Google 作为名称
  9. 对于源类型,请选择“IP 地址”。
  10. 对于,请键入 10.0.2.0/24
  11. 对于“协议:端口”,请键入 http, https
  12. 对于“目标 FQDN”,请键入 www.google.com
  13. 选择 添加

Azure 防火墙包含默认情况下允许的基础结构 FQDN 的内置规则集合。 这些 FQDN 特定于平台,不能用于其他目的。 有关详细信息,请参阅基础结构 FQDN

配置网络规则

这是允许在端口 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.google.com

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

    应会看到 Google 主页。

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

    防火墙应该会阻止你。

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

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

清理资源

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

后续步骤