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

教程:使用 Azure 门户通过网络安全组筛选网络流量

可以使用网络安全组来筛选进出 Azure 虚拟网络中 Azure 资源的入站和出站网络流量。

网络安全组包含安全规则,这些规则可按 IP 地址、端口和协议筛选网络流量。 当网络安全组与某个子网关联时,安全规则将应用于该子网中部署的资源。

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

  • 创建网络安全组和安全规则
  • 创建应用程序安全组
  • 创建虚拟网络并将网络安全组关联到子网
  • 部署虚拟机并将其网络接口关联到应用程序安全组
  • 测试流量筛选器

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

先决条件

  • Azure 订阅

登录 Azure

登录 Azure 门户

创建虚拟网络

  1. 在 Azure 门户菜单中,选择“+ 创建资源”>“网络”>“虚拟网络”,或者在门户搜索框中搜索“虚拟网络”。

  2. 选择“创建”。

  3. 在“创建虚拟网络”的“基本信息”选项卡中,输入或选择以下信息:

    设置
    项目详细信息
    订阅 选择订阅。
    资源组 选择“新建”。
    输入“myResourceGroup”。
    选择“确定”。
    实例详细信息
    名称 输入 myVNet
    区域 选择“美国东部”。
  4. 选择“查看 + 创建”选项卡,或选择页面底部的“查看 + 创建”按钮 。

  5. 选择“创建”。

创建应用程序安全组

使用应用程序安全组 (ASG) 可将功能类似的服务器(例如 Web 服务器)分组到一起。

  1. 在 Azure 门户菜单中,选择“+ 创建资源”>“网络”>“应用程序安全组”,或者在门户搜索框中搜索“应用程序安全组”。

  2. 选择“创建”。

  3. 在“创建应用程序安全组”的“基本信息”选项卡中,输入或选择以下信息:

    设置
    项目详细信息
    订阅 选择订阅。
    资源组 选择“myResourceGroup”。
    实例详细信息
    名称 输入“myAsgWebServers”。
    区域 选择“(US)美国东部”。
  4. 选择“查看 + 创建”选项卡,或选择页面底部的“查看 + 创建”按钮 。

  5. 选择“创建”。

  6. 重复上述步骤并指定以下值:

    设置
    项目详细信息
    订阅 选择订阅。
    资源组 选择“myResourceGroup”。
    实例详细信息
    名称 输入“myAsgMgmtServers”。
    区域 选择“(US)美国东部”。
  7. 选择“查看 + 创建”选项卡,或选择页面底部的“查看 + 创建”按钮 。

  8. 选择“创建”。

创建网络安全组

网络安全组 (NSG) 保护虚拟网络中的网络流量。

  1. 在 Azure 门户菜单中,选择“+ 创建资源”>“网络”>“网络安全组”,或者在门户搜索框中搜索“网络安全组”。

  2. 选择“创建”。

  3. 在“创建网络安全组”的“基本信息”选项卡中,输入或选择以下信息:

    设置
    项目详细信息
    订阅 选择订阅。
    资源组 选择“myResourceGroup”。
    实例详细信息
    名称 输入“myNSG”。
    位置 选择“(US)美国东部”。
  4. 选择“查看 + 创建”选项卡,或选择页面底部的“查看 + 创建”按钮 。

  5. 选择“创建”。

将网络安全组关联到子网

在本部分,你要将网络安全组与前面创建的虚拟网络的子网相关联。

  1. 在门户搜索框中搜索“myNsg”。

  2. 在“myNSG”的“设置”部分选择“子网”。

  3. 在“子网”页中,选择“+ 关联”:

    屏幕截图显示将网络安全组关联到子网。

  4. 在“关联子网”下,为“虚拟网络”选择“myVNet”。

  5. 为“子网”选择“默认”,然后选择“确定”。

创建安全规则

  1. 在“myNSG”的“设置”部分选择“入站安全规则”。

  2. 在“入站安全规则”页中,选择“+ 添加”:

    网络安全组入站安全规则的屏幕截图。

  3. 创建一项允许端口 80 和 443 与 myAsgWebServers 应用程序安全组通信的安全规则。 在“添加入站安全规则”页中,输入或选择以下信息:

    设置
    保留默认值“任意”。
    源端口范围 保留默认值 (*)。
    目标 选择“应用程序安全组”。
    目标应用程序安全组 选择“myAsgWebServers”。
    服务 保留默认值“自定义”。
    目标端口范围 输入“80,443”。
    协议 选择“TCP”。
    操作 保留默认值“允许”。
    优先级 保留默认值“100”。
    名称 输入“Allow-Web-All”。

    在网络安全组中添加入站安全规则的屏幕截图。

  4. 选择 添加

  5. 使用以下信息再次完成步骤 3-4:

    设置
    保留默认值“任意”。
    源端口范围 保留默认值 (*)。
    目标 选择“应用程序安全组”。
    目标应用程序安全组 选择“myAsgMgmtServers”。
    服务 保留默认值“自定义”。
    目标端口范围 输入“3389”。
    协议 选择“任何”
    操作 保留默认值“允许”。
    优先级 保留默认值“110”。
    名称 输入“Allow-RDP-All”。
  6. 选择“添加” 。

    注意

    在本文中,将在 Internet 上为分配给“myAsgMgmtServers”应用程序安全组的 VM 公开 RDP(端口 3389)。

    在生产环境中,建议使用 VPN、专用网络连接或 Azure Bastion 来连接到要管理的 Azure 资源,而不要向 Internet 公开端口 3389。

    有关 Azure Bastion 的详细信息,请参阅什么是 Azure Bastion?

完成步骤 1-3 以后,请复查所创建的规则。 你的列表应如以下示例中的列表所示:

网络安全组安全规则的屏幕截图。

创建虚拟机

在虚拟网络中创建两个虚拟机 (VM)。

创建第一个虚拟机

  1. 在 Azure 门户菜单中,选择“创建资源”>“计算”>“虚拟机”,或者在门户搜索框中搜索“虚拟机”。

  2. 在“创建虚拟机”的“基本信息”选项卡中,输入或选择以下信息 :

    设置
    项目详细信息
    订阅 选择订阅。
    资源组 选择“myResourceGroup”。
    实例详细信息
    虚拟机名称 输入“myVMWeb”。
    区域 选择“(US)美国东部”。
    可用性选项 保留默认值“不需要基础结构冗余”。
    安全类型 保留默认值“标准”。
    映像 选择“Windows Server 2019 Datacenter - Gen2”。
    Azure Spot 实例 保留默认值“未选中”。
    大小 选择“Standard_D2s_V3”。
    管理员帐户
    用户名 输入用户名。
    Password 输入密码。
    确认密码 重新输入密码。
    入站端口规则
    选择入站端口 选择“无”。
  3. 选择“网络”选项卡。

  4. 在“网络”中,输入或选择以下信息:

    设置
    网络接口
    虚拟网络 选择“myVNet”。
    子网 选择“默认值 (10.0.0.0/24)”。
    公共 IP 保留默认值“新建公共 IP”。
    NIC 网络安全组 选择“无”。
  5. 选择“查看 + 创建”选项卡,或选择页面底部的“查看 + 创建”按钮 。

  6. 选择“创建”。 部署 VM 可能需要几分钟时间。

创建第二个虚拟机

再次完成步骤 1-6,但在步骤 2 中,请输入“myVMMgmt”作为虚拟机名称。

等待 VM 部署完成,然后转到下一部分。

将网络接口关联到 ASG

当你创建 VM 时,Azure 已经为每个 VM 创建了一个网络接口,并已将该接口附加到 VM。

请将每个 VM 的网络接口添加到前面创建的应用程序安全组:

  1. 在门户搜索框中搜索“myVMWeb”。

  2. 在“myVMWeb”VM 的“设置”部分选择“网络”。

  3. 选择“应用程序安全组”选项卡,然后选择“配置应用程序安全组” 。

    配置应用程序安全组的屏幕截图。

  4. 在“配置应用程序安全组”中,选择“myAsgWebServers” 。 选择“保存”。

    如何将应用程序安全组关联到网络接口的屏幕截图。

  5. 再次完成步骤 1 和 2,搜索 myVMMgmt 虚拟机并选择 myAsgMgmtServers ASG。

测试流量筛选器

  1. 在门户搜索框中搜索“myVMMgmt”。

  2. 在“概述”页上选择“连接”按钮,然后选择“RDP”。

  3. 选择“下载 RDP 文件”。

  4. 打开下载的 rdp 文件,然后选择“连接”。 输入在创建 VM 时指定的用户名和密码。

  5. 选择“确定”。

  6. 在连接过程中可能会收到证书警告。 如果收到警告,请选择“是”或“继续”以继续连接 。

    连接会成功,因为允许通过端口 3389 将来自 Internet 的入站流量发送到 myAsgMgmtServers 应用程序安全组。

    “myVMMgmt”的网络接口与“myAsgMgmtServers”应用程序安全组相关联,并允许连接 。

  7. 在“myVMMgmt”上打开 PowerShell 会话。 使用以下命令连接到“myVMWeb”:

    mstsc /v:myVmWeb
    

    从“myVMMgmt”到“myVMWeb”的 RDP 连接会成功,因为同一网络中的虚拟机默认情况下可以通过任何端口相互通信。

    不能从 Internet 创建到“myVMWeb”虚拟机的 RDP 连接。 “myAsgWebServers”的安全规则阻止从 Internet 连接到端口 3389 入站。 默认情况下,拒绝来自 Internet 的入站流量到所有资源。

  8. 若要在“myVMWeb”虚拟机上安装 Microsoft IIS,请在“myVMWeb”虚拟机上通过 PowerShell 会话输入以下命令 :

    Install-WindowsFeature -name Web-Server -IncludeManagementTools
    
  9. 完成 IIS 安装后,从“myVMWeb”虚拟机断开连接,从而保留“myVMMgmt”虚拟机远程桌面连接 。

  10. 从“myVMMgmt”VM 断开连接。

  11. 在门户搜索框中搜索“myVMWeb”。

  12. 在“myVMWeb”的“概述”页上,记下 VM 的“公共 IP 地址”。 以下示例所示地址为 23.96.39.113,但你的地址与此不同:

    概览页面中“虚拟机公共 IP 地址”的屏幕截图。

  13. 若要确认能否从 Internet 访问“myVMWeb”Web 服务器,请在计算机上打开 Internet 浏览器并浏览到 http://<public-ip-address-from-previous-step>

你将看到 IIS 默认页,因为允许通过端口 80 将来自 Internet 的入站流量发送到 myAsgWebServers 应用程序安全组。

附加到“myVMWeb”的网络接口与“myAsgWebServers”应用程序安全组相关联,并允许连接 。

清理资源

不再需要资源组时,可将资源组及其包含的所有资源一并删除:

  1. 在门户顶部的“搜索”框中输入“myResourceGroup”。 当在搜索结果中看到“myResourceGroup”时,将其选中。
  2. 选择“删除资源组”。
  3. 对于“键入资源组名称:”,输入“myResourceGroup”,然后选择“删除”。

后续步骤

在本教程中,你将了解:

  • 已创建一个网络安全组并将其关联到虚拟网络子网。
  • 已为 Web 和管理创建应用程序安全组。
  • 已创建两个虚拟机并将其网络接口与应用程序安全组相关联。
  • 已测试应用程序安全组网络筛选。

若要详细了解网络安全组,请参阅网络安全组概述管理网络安全组

默认情况下,Azure 在子网之间路由流量。 你也可以选择通过某个 VM(例如,充当防火墙的 VM)在子网之间路由流量。

若要了解如何创建路由表,请继续学习下一教程。