在 Azure 门户中通过 Azure 防火墙 DNAT 筛选入站 Internet 流量

可以配置 Azure 防火墙目标网络地址转换 (DNAT),以转换和筛选到子网的入站 Internet 流量。 配置 DNAT 时,NAT 规则收集操作设置为“Dnat”。 然后,可使用 NAT 规则集合中的每个规则将防火墙公共 IP 地址和端口转换为专用/公共 IP 地址和端口。 DNAT 规则会隐式添加一个对应的网络规则来允许转换后的流量。 出于安全原因,推荐的方法是添加特定的 Internet 源以允许 DNAT 访问网络,并避免使用通配符。 若要详细了解 Azure 防火墙规则处理逻辑,请参阅 Azure 防火墙规则处理逻辑

注意

本文使用经典防火墙规则来管理防火墙。 首选方法是使用防火墙策略。 若要使用防火墙策略完成此过程,请查看教程:在 Azure 门户中使用 Azure 防火墙策略 DNAT 筛选入站 Internet 流量

先决条件

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

创建资源组

  1. 登录 Azure 门户
  2. 在 Azure 门户主页上,依次选择“资源组”、“创建”。
  3. 对于“订阅”,请选择自己的订阅。
  4. 对于“资源组”,请键入 RG-DNAT-Test。
  5. 对于“区域”,选择一个区域。 你创建的所有其他资源必须位于同一区域中。
  6. 选择“查看 + 创建”。
  7. 选择“创建” 。

设置网络环境

请为本文创建 2 个对等互连的 VNet:

  • VN-Hub - 防火墙在此 VNet 中。
  • VN-Spoke - 工作负荷服务器在此 VNet 中。

首先创建 VNet,然后将其对等互连。

创建中心 VNet

  1. 在 Azure 门户主页上,选择“所有服务”。

  2. 在“网络”下,选择“虚拟网络”。

  3. 选择“创建”。

  4. 对于“资源组”,请选择“RG-DNAT-Test” 。

  5. 对于“名称”,请键入“VN-Hub”。

  6. 对于“区域”,请选择之前使用的同一区域。

  7. 选择下一步

  8. 在“安全性”选项卡上,选择“下一步”。

  9. 对于“IPv4 地址空间”,请接受默认值“10.0.0.0/16”。

  10. 在“子网”下,选择“默认值”。

  11. 对于“子网模板”,请选择“Azure 防火墙”。

    防火墙将位于此子网中,子网名称必须是 AzureFirewallSubnet。

    注意

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

  12. 选择“保存”。

  13. 选择“查看 + 创建”。

  14. 选择“创建”。

创建辐射 VNet

  1. 在 Azure 门户主页上,选择“所有服务”。
  2. 在“网络”下,选择“虚拟网络”。
  3. 选择“创建”。
  4. 对于“资源组”,请选择“RG-DNAT-Test” 。
  5. 对于“名称” ,请键入 VN-Spoke
  6. 对于“区域”,请选择之前使用的同一区域。
  7. 选择下一步
  8. 在“安全性”选项卡上,选择“下一步”。
  9. 对于“IPv4 地址空间”,请编辑默认值并键入“192.168.0.0/16”。
  10. 在“子网”下,选择“默认值”。
  11. 对于子网名称,请键入“SN-Workload”。
  12. 对于“起始地址”,输入“192.168.1.0”。
  13. 对于“子网大小”,请选择“/24”。
  14. 选择“保存”。
  15. 选择“查看 + 创建”。
  16. 选择“创建”。

在 VNet 之间建立对等互连

现在,请将这两个 VNet 对等互连。

  1. 选择“VN-Hub”虚拟网络。
  2. 在“设置”下选择“对等互连”。
  3. 选择“添加” 。
  4. 在“此虚拟网络”下的“对等互连链接名称”中,键入“Peer-HubSpoke”。
  5. 在“远程虚拟网络”下的“对等互连链接名称”中,键入“Peer-SpokeHub”。
  6. 选择 VN-Spoke 作为虚拟网络。
  7. 接受所有其他默认值,然后选择“添加”。

创建虚拟机

创建一个工作负荷虚拟机,将其置于 SN-Workload 子网中。

  1. 在 Azure 门户菜单中,选择“创建资源” 。
  2. 在“常用产品”下,选择“Windows Server 2019 Datacenter”。

基础知识

  1. 对于“订阅”,请选择自己的订阅。
  2. 对于“资源组”,请选择“RG-DNAT-Test” 。
  3. 对于“虚拟机名称”,请键入 Srv-Workload
  4. 对于“区域”,请选择以前使用的同一位置。
  5. 键入用户名和密码。
  6. 在完成时选择“下一步:磁盘”

磁盘

  1. 在完成时选择“下一步: 网络”。

联网

  1. 对于“虚拟网络”,请选择“VN-Spoke”。
  2. 对于“子网”,请选择“SN-Workload”。
  3. 对于“公共 IP”,请选择“无”。
  4. 对于“公共入站端口”,请选择“无”。
  5. 保留其他默认设置,然后选择“下一步: 管理”。

Management

  1. 在完成时选择“下一步:监视”。

Monitoring

  1. 对于“启动诊断”,请选择“禁用” 。
  2. 选择“查看 + 创建” 。

查看 + 创建

查看摘要,然后选择“创建”。 此过程需要花费几分钟时间才能完成。

部署完成后,请记下虚拟机的专用 IP 地址。 会在稍后配置防火墙时使用此信息。 选择虚拟机名称。 选择“概述”,并在“网络”下记下专用 IP 地址。

注意

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

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

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

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

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

部署防火墙

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

  2. 搜索“防火墙”,然后选择“防火墙” 。

  3. 选择“创建”。

  4. 在“创建防火墙”页上,使用下表配置防火墙:

    设置
    订阅 <用户的订阅>
    资源组 选择“RG-DNAT-Test”
    名称 FW-DNAT-test
    区域 选择前面使用的同一位置
    防火墙 SKU 标准
    防火墙管理 使用“防火墙规则(经典)”来管理此防火墙
    选择虚拟网络 使用现有项:VN-Hub
    公共 IP 地址 新建,名称:fw-pip。
  5. 接受其他默认值,然后选择“查看 + 创建”。

  6. 查看摘要,然后选择“创建”以创建防火墙。

    部署过程需要花费几分钟时间。

  7. 部署完成后,转到“RG-DNAT-Test”资源组,然后选择“FW-DNAT-test”防火墙。

  8. 记下防火墙专用 IP 地址和公共 IP 地址。 稍后在创建默认路由和 NAT 规则时,将用到它们。

创建默认路由

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

重要

无需在目标子网中配置返回防火墙的显式路由。 Azure 防火墙是一项有状态服务,可自动处理数据包和会话。 如果创建此路由,则会创建一个非对称路由环境,该环境会中断有状态会话逻辑并导致数据包和连接丢失。

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

  2. 搜索路由表并将其选中。

  3. 选择创建

  4. 对于“订阅”,请选择自己的订阅。

  5. 对于“资源组”,请选择“RG-DNAT-Test” 。

  6. 对于“区域”,请选择前面使用的同一区域。

  7. 对于“名称”,请键入“RT-FWroute”。

  8. 选择“查看 + 创建”。

  9. 选择“创建”。

  10. 选择“转到资源”。

  11. 依次选择“子网”、“关联”。

  12. 对于“虚拟网络”,请选择“VN-Spoke”。

  13. 对于“子网”,请选择“SN-Workload”。

  14. 选择“确定” 。

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

  16. 对于“路由名称”,请键入 FW-DG

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

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

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

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

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

  21. 选择 添加

配置 NAT 规则

  1. 打开“RG-DNAT-Test”资源组,然后选择“FW-DNAT-test”防火墙 。
  2. 在“FW-DNAT-test”页的“设置”下,选择“规则(经典)” 。
  3. 选择“添加 NAT 规则集合”。
  4. 对于“名称”,键入 RC-DNAT-01
  5. 对于“优先级”,请键入 200
  6. 在“规则”下,对于“名称”,键入 RL-01
  7. 对于“协议”,请选择“TCP”。
  8. 对于源类型,请选择“IP 地址”。
  9. 对于“源”,请键入“*”。
  10. 对于“目标地址”,请键入防火墙的公共 IP 地址。
  11. 对于“目标端口”,键入 3389
  12. 对于“已翻译的地址” ,键入 Srv-Workload 虚拟机的专用 IP 地址。
  13. 对于“已翻译的端口” ,键入 3389
  14. 选择添加

此过程需要花费几分钟时间才能完成。

测试防火墙

  1. 将远程桌面连接到防火墙公共 IP 地址。 此时会连接到 Srv-Workload 虚拟机。
  2. 关闭远程桌面。

清理资源

可保留防火墙资源供进一步测试。如果不再需要,请删除 RG-DNAT-Test 资源组,以删除与防火墙相关的所有资源。

后续步骤

接下来,可以监视 Azure 防火墙日志。

教程:监视 Azure 防火墙日志