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

教程:使用 Azure 防火墙管理器保护中心虚拟网络

将本地网络连接到 Azure 虚拟网络以创建混合网络时,必须能够控制对 Azure 网络资源的访问,这是整体安全计划的重要部分。

使用 Azure 防火墙管理器,可以创建中心虚拟网络来保护发往专用 IP 地址、Azure PaaS 和 Internet 的混合网络流量。 可以使用 Azure 防火墙器通过策略来定义允许和拒绝的网络流量,以便控制混合网络中的网络访问。

防火墙管理器还支持安全虚拟中心体系结构。 有关安全虚拟中心和中心虚拟网络体系结构类型的比较,请参阅有哪些 Azure 防火墙管理器体系结构选项?

在本教程中,请创建三个虚拟网络:

  • VNet-Hub - 防火墙在此虚拟网络中。
  • VNet-Spoke - 分支虚拟网络代表 Azure 中的工作负荷。
  • VNet-Onprem - 本地虚拟网络代表本地网络。 在实际部署中,可以使用 VPN 或 ExpressRoute 来连接它。 为简单起见,本教程将使用 VPN 网关连接,并使用 Azure 中的某个虚拟网络来代表本地网络。

Azure 防火墙管理器中心混合网络的关系图。

本教程介绍如何执行下列操作:

  • 创建防火墙策略
  • 创建虚拟网络
  • 配置和部署防火墙
  • 创建并连接 VPN 网关
  • 将中心和分支虚拟网络对等互连
  • 创建路由
  • 创建虚拟机
  • 测试防火墙

先决条件

混合网络使用中心辐射型网络体系结构模型在 Azure VNet 与本地网络之间路由流量。 中心辐射型网络体系结构具有以下要求:

  • 若要通过中心防火墙路由辐射子网流量,需有一个用户定义的路由 (UDR) 且该路由应指向禁用了“虚拟网络路由传播”设置的防火墙。 此选项可防止路由分发到辐射子网。 这可以防止获知的路由与你的 UDR 冲突。
  • 请在中心网关子网上配置一个指向防火墙 IP 地址的 UDR,将其作为通向辐射网络的下一跃点。 无需在 Azure 防火墙子网中创建 UDR,因为它会从 BGP 探测路由。

请参阅本教程的创建路由部分了解如何创建这些路由。

注意

Azure 防火墙必须具有直接的 Internet 连接。 如果 AzureFirewallSubnet 知道通过 BGP 的本地网络的默认路由,则必须将其替代为 0.0.0.0/0 UDR,将 NextHopType 值设置为 Internet 以保持 Internet 直接连接 。

可将 Azure 防火墙配置为支持强制隧道。 有关详细信息,请参阅 Azure 防火墙强制隧道

注意

即使 UDR 指向作为默认网关的 Azure 防火墙,也会直接路由直接对等互连 VNet 之间的流量。 若要在此方案中将子网到子网流量发送到防火墙,UDR 必须在这两个子网上显式地包含目标子网网络前缀。

如果没有 Azure 订阅,请在开始之前创建一个免费帐户

创建防火墙策略

  1. 登录 Azure 门户

  2. 在 Azure 门户搜索栏中,键入“防火墙管理器”并按 Enter

  3. 在“Azure 防火墙管理器”页上的“安全性”下,选择“Azure 防火墙策略”

    显示防火墙管理器主页的屏幕截图。

  4. 选择“创建 Azure 防火墙策略”。

  5. 选择你的订阅,为“资源组”选择“新建”,并创建名为 FW-Hybrid-Test 的资源组。

  6. 键入 Pol-Net01 作为策略名称。

  7. 对于“区域”,请选择“美国东部”。

  8. 选择“下一步: DNS 设置”。

  9. 选择“下一步:TLS 检查”

  10. 选择“下一步:规则”。

  11. 选择“添加规则集合”。

  12. 对于“名称”,请键入 RCNet01

  13. 对于“规则集合类型”,请选择“网络”。

  14. 对于“优先级”,请键入 100

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

  16. 在“规则”下,为“名称”键入 AllowWeb

  17. 对于,请键入 192.168.1.0/24

  18. 对于“协议”,请选择“TCP”。

  19. 对于“目标端口”,请键入 80

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

  21. 对于“目标”,请键入 10.6.0.0/16

  22. 在下一规则行中输入以下信息:

    名称:键入 AllowRDP
    源:键入 192.168.1.0/24
    协议:选择“TCP”
    目标端口:键入 3389
    目标类型:选择“IP 地址”
    目标:键入 10.6.0.0/16

  23. 选择 添加

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

  25. 检查详细信息,然后选择“创建”。

创建防火墙中心虚拟网络

注意

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

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

  2. 搜索“虚拟网络”,然后选择“虚拟网络”。

  3. 选择“创建”。

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

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

  6. 对于“名称”,请键入 VNet-hub

  7. 对于“区域”,请选择“美国东部”。

  8. 选择下一步

  9. 在“安全性”上,选择“下一步”。

  10. 对于“IPv4 地址空间”,请键入 10.5.0.0/16

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

  12. 对于“子网用途”,请选择“Azure 防火墙”

  13. 对于“起始地址”,输入“10.5.0.0/26”。

  14. 接受其他默认设置,然后选择“保存”。

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

  16. 选择“创建”。

添加另一个子网,将子网用途设置为“虚拟网络网关”,起始地址为 10.5.1.0/27。 此子网用于 VPN 网关。

创建分支虚拟网络

  1. 在 Azure 门户主页上,选择“创建资源”。
  2. 搜索“虚拟网络”,然后选择“虚拟网络”。
  3. 选择“创建”。
  4. 对于“订阅”,请选择自己的订阅。
  5. 对于“资源组”,请选择“FW-Hybrid-Test”。
  6. 对于“名称”,请键入 VNet-Spoke
  7. 对于“区域”,请选择“美国东部”。
  8. 选择下一步
  9. 在“安全性”页上,选择“下一步”。
  10. 选择“下一步: IP 地址”。
  11. 对于“IPv4 地址空间”,请键入“10.6.0.0/16” 。
  12. 在“子网”下,选择“默认值”。
  13. 将“名称”更改为“SN-Workload”。
  14. 对于“起始地址”,输入“10.6.0.0/24”。
  15. 接受其他默认设置,然后选择“保存”。
  16. 选择“查看 + 创建”。
  17. 选择“创建”。

创建本地虚拟网络

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

  2. 搜索“虚拟网络”,然后选择“虚拟网络”。

  3. 选择“创建”。

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

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

  6. 对于“虚拟网络名称”,请键入“VNet-OnPrem”。

  7. 对于“区域”,请选择“美国东部”。

  8. 选择下一步

  9. 在“安全性”页上,选择“下一步”。

  10. 对于“IPv4 地址空间”,请键入“192.168.0.0/16” 。

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

  12. 将“名称”更改为 SN-Corp。

  13. 对于“起始地址”,输入“192.168.1.0/24”。

  14. 接受其他默认设置,然后选择“保存”。

  15. 选择“添加子网”

  16. 对于“子网用途”,请选择“虚拟网络网关”

  17. 对于“起始地址”,输入“192.168.2.0/27”。

  18. 选择添加

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

  20. 选择“创建”。

配置和部署防火墙

安全策略在与中心关联后,将称作“中心虚拟网络”。

VNet-Hub 虚拟网络转换为中心虚拟网络,并使用 Azure 防火墙对其进行保护。

  1. 在 Azure 门户搜索栏中,键入“防火墙管理器”并按 Enter

  2. 在右窗格中,选择“概述”。

  3. 在“Azure 防火墙管理器”页上的“向虚拟网络添加安全性”下,选择“查看中心虚拟网络”。

  4. 在“虚拟网络”下,选中“VNet-hub”对应的复选框。

  5. 选择“管理安全性”,然后选择“部署具有防火墙策略的防火墙”。

  6. 在“转换虚拟网络”页上的“Azure 防火墙层”下,选择“高级”。 在“防火墙策略”下,选中“Pol-Net01”的复选框。

  7. 选择“下一步: 查看 + 确认”

  8. 检查详细信息,然后选择“确认”。

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

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

  10. 请注意“概述”页上的“防火墙专用 IP 地址”。 稍后在创建默认路由时需要用到它。

创建并连接 VPN 网关

通过 VPN 网关连接中心和本地虚拟网络。

为中心虚拟网络创建 VPN 网关

现在,为中心虚拟网络创建 VPN 网关。 网络到网络配置需要 RouteBased VpnType。 创建 VPN 网关通常需要 45 分钟或更长时间,具体取决于所选 VPN 网关的 SKU。

  1. 在 Azure 门户主页上,选择“创建资源”。
  2. 在搜索文本框中,键入“虚拟网络网关”并按 Enter
  3. 依次选择“虚拟网络网关”、“创建”。
  4. 对于“名称”,请键入 GW-hub
  5. 对于“区域”,请选择“(US)美国东部”。
  6. 对于“网关类型”,请选择“VPN”。
  7. 对于“SKU”,选择“VpnGw2”。
  8. 为“代系”选择“第 2 代”。
  9. 对于“虚拟网络”,请选择“VNet-hub”。
  10. 对于“公共 IP 地址”,请选择“新建”,然后键入 VNet-hub-GW-pip 作为名称。
  11. 对于“启用主动-主动模式”,选择“已禁用”
  12. 接受剩余的默认值,然后选择“查看 + 创建”。
  13. 检查配置,然后选择“创建”。

为本地虚拟网络创建 VPN 网关

现在,为本地虚拟网络创建 VPN 网关。 网络到网络配置需要 RouteBased VpnType。 创建 VPN 网关通常需要 45 分钟或更长时间,具体取决于所选 VPN 网关的 SKU。

  1. 在 Azure 门户主页上,选择“创建资源”。
  2. 在搜索文本框中,键入“虚拟网络网关”并按 Enter
  3. 依次选择“虚拟网络网关”、“创建”。
  4. 对于“名称”,请键入 GW-Onprem
  5. 对于“区域”,请选择“(US)美国东部”。
  6. 对于“网关类型”,请选择“VPN”。
  7. 对于“SKU”,选择“VpnGw2”。
  8. 为“代系”选择“第 2 代”。
  9. 对于“虚拟网络”,请选择“VNet-Onprem”。
  10. 对于“公共 IP 地址”,请选择“新建”,然后键入 VNet-Onprem-GW-pip 作为名称。
  11. 对于“启用主动-主动模式”,选择“已禁用”
  12. 接受剩余的默认值,然后选择“查看 + 创建”。
  13. 检查配置,然后选择“创建”。

创建 VPN 连接

现在,可在中心与本地网关之间创建 VPN 连接。

此步骤创建从中心虚拟网络到本地虚拟网络的连接。 示例中引用了一个共享密钥。 可以对共享密钥使用自己的值。 共享密钥必须与两个连接匹配,这一点非常重要。 创建连接需要花费一段时间。

  1. 打开“FW-Hybrid-Test”资源组并选择“GW-hub”网关。
  2. 在左列中的“设置”下,选择“连接”
  3. 选择 添加
  4. 键入 Hub-to-Onprem 作为连接名称。
  5. 选择“VNet 到 VNet”作为“连接类型”。
  6. 选择“下一步:设置”
  7. 对于“第一虚拟网络网关”,请选择“GW-hub”
  8. 对于“第二个虚拟网络网关”,请选择“GW-Onprem”。
  9. 对于“共享密钥(PSK)”,请键入 AzureA1b2C3
  10. 选择“查看 + 创建”。
  11. 选择“创建”。

创建本地到中心虚拟网络连接。 此步骤类似于前一步骤,但这次是创建从 VNet-Onprem 到 VNet-hub 的连接。 确保共享密钥匹配。 几分钟后会建立连接。

  1. 打开“FW-Hybrid-Test”资源组并选择“GW-Onprem”网关。
  2. 在左栏中选择“连接”。
  3. 选择 添加
  4. 对于“连接名称”,请键入“Onprem-to-Hub”。
  5. 选择“VNet 到 VNet”作为“连接类型”。
  6. 选择“下一步:设置”
  7. 对于“第一虚拟网络网关”,请选择“GW-Onprem”
  8. 对于“第二个虚拟网络网关”,请选择“GW-hub”。
  9. 对于“共享密钥(PSK)”,请键入 AzureA1b2C3
  10. 选择“确定” 。

验证连接

在部署第二个网络连接大约五分钟左右后,两个连接的状态应为“已连接”

显示 VPN 网关连接的屏幕截图。

将中心和分支虚拟网络对等互连

现在,将中心和分支虚拟网络对等互连。

  1. 打开“FW-Hybrid-Test”资源组并选择“VNet-hub”虚拟网络。

  2. 在左栏中选择“对等互连”。

  3. 选择 添加

  4. 在“远程虚拟网络摘要”下:

    设置名称
    对等互连链接名称 SpoketoHub
    虚拟网络部署模型 资源管理器
    订阅 <订阅>
    虚拟网络 VNet-Spoke
    允许“VNet-Spoke”访问“VNet-hub” 已选定
    允许“VNet-Spoke”接收来自“VNet-Hub”的转发流量 已选定
    允许“VNet-Spoke”中的网关或路由服务器将流量转发到“VNet-Hub” 未选中
    启用“VNet-Spoke”以使用“VNet-hub”远程网关或路由服务器 已选定
  5. 在“本地虚拟网络摘要”下:

    设置名称
    对等互连链接名称 HubtoSpoke
    允许“VNet-hub”访问“VNet-Spoke” 已选定
    允许“VNet-hub”接收来自“VNet-Spoke”的转发流量 已选定
    允许“VNet-Hub”中的网关或路由服务器将流量转发到“VNet-Spoke” 已选定
    启用“VNet-hub”以使用“VNet-Spoke”远程网关或路由服务器 未选中
  6. 选择 添加

    显示 Vnet 对等互连的屏幕截图。

创建路由

接下来创建一对路由:

  • 通过防火墙 IP 地址从中心网关子网连接到分支子网的路由
  • 通过防火墙 IP 地址从分支子网连接的默认路由
  1. 在 Azure 门户主页上,选择“创建资源”。
  2. 在搜索文本框中,键入“路由表”并按 Enter
  3. 选择“路由表”。
  4. 选择“创建”。
  5. 选择“FW-Hybrid-Test”作为资源组。
  6. 对于“区域”,请选择“美国东部”。
  7. 对于“名称”,请键入 UDR-Hub-Spoke
  8. 选择“查看 + 创建” 。
  9. 选择“创建”。
  10. 创建路由表后,请选择它以打开路由表页。
  11. 在左栏中选择“路由”。
  12. 选择 添加
  13. 键入 ToSpoke 作为路由名称。
  14. 对于“目标类型”,请选择“IP 地址”
  15. 对于“目标 IP 地址/CIDR 范围”,键入 10.6.0.0/16
  16. 选择“虚拟设备”作为下一跃点类型。
  17. 键入前面记下的防火墙专用 IP 地址作为下一跃点地址。
  18. 选择 添加

现在,将路由关联到子网。

  1. 在“UDR-Hub-Spoke - 路由”页上,选择“子网”。
  2. 选择“关联”。
  3. 在“虚拟网络”下,选择“VNet-hub”。
  4. 在“子网”下,选择“GatewaySubnet”。
  5. 选择“确定”。

现在,创建从辐射子网的默认路由。

  1. 在 Azure 门户主页上,选择“创建资源”。
  2. 在搜索文本框中,键入“路由表”并按 Enter
  3. 选择“路由表”。
  4. 选择“创建”。
  5. 选择“FW-Hybrid-Test”作为资源组。
  6. 对于“区域”,请选择“美国东部”。
  7. 键入 UDR-DG 作为名称。
  8. 对于“传播网关路由”,请选择“否” 。
  9. 选择“查看 + 创建”。
  10. 选择“创建”。
  11. 创建路由表后,请选择它以打开路由表页。
  12. 在左栏中选择“路由”。
  13. 选择 添加
  14. 键入“ToHub”作为路由名称。
  15. 对于“目标类型”,请选择“IP 地址”
  16. 对于“目标 IP 地址/CIDR 范围”,键入 0.0.0.0/0。
  17. 选择“虚拟设备”作为下一跃点类型。
  18. 键入前面记下的防火墙专用 IP 地址作为下一跃点地址。
  19. 选择 添加

现在,将路由关联到子网。

  1. 在“UDR-DG - 路由”页上,选择“子网”。
  2. 选择“关联”。
  3. 在“虚拟网络”下,选择“VNet-spoke”。
  4. 在“子网”下,选择“SN-Workload”。
  5. 选择“确定”。

创建虚拟机

现在,创建分支工作负荷与本地虚拟机,并将其放入相应的子网。

创建工作负荷虚拟机

在分支虚拟网络中,创建运行 IIS 且不使用公共 IP 地址的虚拟机。

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

  2. 在“热门市场产品”下,选择“Windows Server 2019 Datacenter”。

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

    • 资源组 - 选择“FW-Hybrid-Test”
    • 虚拟机名称VM-Spoke-01
    • 区域 - (美国)美国东部
    • 用户名:键入用户名
    • 密码:键入密码。
  4. 对“公共入站端口”,请选择“允许所选端口”,然后选择“HTTP (80)”和“RDP (3389)”。

  5. 选择“下一步:磁盘” 。

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

  7. 选择“VNet-Spoke”作为虚拟网络;子网为“SN-Workload”。

  8. 选择“下一步: 管理”。

  9. 选择“下一步: 监视”。

  10. 对于“启动诊断”,请选择“禁用” 。

  11. 选择“查看 + 创建”,查看摘要页上的设置,然后选择“创建”。

安装 IIS

  1. 在 Azure 门户中打开 Cloud Shell,确保它设置为“PowerShell”。

  2. 运行以下命令以在虚拟机上安装 IIS 并根据需要更改位置:

    Set-AzVMExtension `
            -ResourceGroupName FW-Hybrid-Test `
            -ExtensionName IIS `
            -VMName VM-Spoke-01 `
            -Publisher Microsoft.Compute `
            -ExtensionType CustomScriptExtension `
            -TypeHandlerVersion 1.4 `
            -SettingString '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell      Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}' `
            -Location EastUS
    

创建本地虚拟机

你将使用此虚拟机通过远程桌面连接到公共 IP 地址。 然后,请在该虚拟机中通过防火墙连接到本地服务器。

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

  2. 在“常用”下,选择“Windows Server 2019 Datacenter”。

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

    • 资源组 - 选择现有资源组,然后选择“FW-Hybrid-Test”
    • 虚拟机名称 - VM-Onprem
    • 区域 - (美国)美国东部
    • 用户名:键入用户名
    • 密码:键入密码
  4. 对“公共入站端口”,请选择“允许所选端口”,然后选择“RDP (3389)”。

  5. 选择“下一步:磁盘” 。

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

  7. 选择“VNet-Onprem”作为虚拟网络,并确认子网为“SN-Corp”。

  8. 选择“下一步: 管理”。

  9. 选择“下一步: 监视”。

  10. 对于“启动诊断”,请选择“禁用” 。

  11. 选择“查看 + 创建”,查看摘要页上的设置,然后选择“创建”。

测试防火墙

  1. 首先,请注意 VM-Spoke-01“概述”页上 VM-Spoke-01 虚拟机的专用 IP 地址。

  2. 在 Azure 门户中,连接到 VM-Onprem 虚拟机。

  1. VM-Onprem 上打开 Web 浏览器并浏览到 http://<VM-spoke-01 的专用 IP>。

    你会看到 VM-spoke-01 网页:显示 vm-spoke-01 网页的屏幕截图。

  2. 在“VM-Onprem”虚拟机中,打开远程桌面并连接到 VM-spoke-01 的专用 IP 地址。

    应可成功连接,并且可以登录。

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

  • 可以浏览分支虚拟网络中的 Web 服务器。
  • 可以使用 RDP 连接到分支虚拟网络中的服务器。

接下来,将防火墙网络规则集合操作更改为“拒绝”,以验证防火墙规则是否按预期工作。

  1. 打开“FW-Hybrid-Test”资源组并选择“Pol-Net01”防火墙策略。
  2. 在“设置”下,选择“规则集合”。
  3. 选择“RCNet01”规则集合。
  4. 对于“规则集合操作”,请选择“拒绝”。
  5. 选择“保存”。

在测试已更改的规则之前,请关闭 VM-Onprem 上的所有现有远程桌面和浏览器。 规则集合更新完成后,再次运行测试。 这一次,远程桌面和浏览器应该都无法建立连接。

清理资源

可以保留防火墙资源以供进一步的调查。不再需要时,请删除 FW-Hybrid-Test 资源组,以删除与防火墙相关的所有资源。

后续步骤