在 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。
  • 虚拟机被放置在标准负载平衡器的后端池中,有无出站规则均可。
  • 向虚拟机的子网分配了 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 防火墙日志