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

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

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

Diagram of resources created during tutorial.

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

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

先决条件

登录 Azure

登录 Azure 门户

创建虚拟网络

下面的过程创建虚拟网络及资源子网。

  1. 在门户中,搜索并选择“虚拟网络”。

  2. 在“虚拟网络”页面上,选择“+ 创建”。

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

    设置
    项目详细信息
    订阅 选择订阅。
    资源组 选择“新建”。
    在“名称”中输入“test-rg”。
    选择“确定”。
    实例详细信息
    名称 输入“vnet-1”。
    区域 选择“(亚太)中国东部 2”。

    Screenshot of Basics tab of Create virtual network in the Azure portal.

  4. 选择“下一步: IP 地址”,转到“IP 地址”选项卡。

  5. 在“子网”的地址空间框中,选择“默认”子网。

  6. 在“编辑子网”中,输入或选择以下信息:

    设置
    子网名称 输入“subnet-1”。
    子网地址范围 输入“10.0.0.0/24”。

    Screenshot of default subnet rename and configuration.

  7. 选择“保存”。

  8. 选择屏幕底部的“查看 + 创建”,然后在验证通过时选择“创建”。

创建应用程序安全组

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

  1. 在门户顶部的搜索框中,输入“应用程序安全组”。 在搜索结果中选择“应用程序安全组”。

  2. 选择“+ 新建”。

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

    设置
    项目详细信息
    订阅 选择订阅。
    资源组 选择“test-rg”。
    实例详细信息
    名称 输入“asg-web”。
    区域 选择“(亚太)中国北部 2”。
  4. 选择“查看 + 创建”。

  5. 选择“+ 新建”。

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

    设置
    项目详细信息
    订阅 选择订阅。
    资源组 选择“test-rg”。
    实例详细信息
    名称 输入“asg-mgmt”。
    区域 选择“(亚太)中国北部 2”。
  7. 选择“查看 + 创建”。

  8. 选择“创建”。

创建网络安全组

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

  1. 在门户顶部的搜索框中,输入“网络安全组”。 在搜索结果中选择“网络安全组”。

    注意

    在网络安全组的搜索结果中,你可能会看到网络安全组(经典)。 选择“网络安全组”。

  2. 选择“+ 新建”。

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

    设置
    项目详细信息
    订阅 选择订阅。
    资源组 选择“test-rg”。
    实例详细信息
    名称 输入“nsg-app1”。
    位置 选择“(亚太)中国北部 2”。
  4. 选择“查看 + 创建”。

  5. 选择“创建”。

将网络安全组关联到子网

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

  1. 在门户顶部的搜索框中,输入“网络安全组”。 在搜索结果中选择“网络安全组”。

  2. 选择“nsg-1”。

  3. 在“nsg-1”的“设置”部分选择“子网”。

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

    Screenshot of Associate a network security group to a subnet.

  5. 在“关联子网”下,为“虚拟网络”选择“vnet-1 (test-rg)”。

  6. 为“子网”选择“subnet-1”,然后选择“确定”。

创建安全规则

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

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

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

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

  5. 使用以下信息完成前面的步骤:

    设置
    保留默认值“任意”。
    源端口范围 保留默认值 (*)。
    目标 选择“应用程序安全组”。
    目标应用程序安全组 选择“asg-mgmt”。
    服务 选择 RDP
    操作 保留默认值“允许”。
    优先级 保留默认值“110”。
    名称 输入“allow-rdp-all”。
  6. 选择“添加” 。

    注意

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

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

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

创建虚拟机

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

  1. 在门户中,搜索并选择“虚拟机”。

  2. 在“虚拟机”中,依次选择“+ 创建”、“Azure 虚拟机”。

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

    设置
    项目详细信息
    订阅 选择订阅。
    资源组 选择“test-rg”。
    实例详细信息
    虚拟机名称 输入“vm-1”。
    区域 选择“(亚太)中国北部 2”。
    可用性选项 保留默认值“不需要基础结构冗余”。
    安全类型 选择“标准”。
    映像 选择“Windows Server 2022 Datacenter - x64 Gen2”。
    Azure Spot 实例 保留默认值“未选中”。
    大小 选择一个大小。
    管理员帐户
    用户名 输入用户名。
    Password 输入密码。
    确认密码 重新输入密码。
    入站端口规则
    选择入站端口 选择“无”。
  4. 选择“下一步: 磁盘”,然后选择“下一步: 网络”。

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

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

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

  8. 重复上述步骤,使用以下设置创建第二个名为“vm-2”的虚拟机。

将网络接口关联到 ASG

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

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

  1. 在门户顶部的搜索框中,输入“虚拟机”。 在搜索结果中,选择“虚拟机”。

  2. 选择 vm-1

  3. 在“vm-1”的“设置”部分选择“网络”。

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

    Screenshot of Configure application security groups.

  5. 在“配置应用程序安全组”中,在“应用程序安全组”下拉菜单中选择“asg-web”,然后选择“保存”。

  6. 对 vm-2 重复上述步骤,在“应用程序安全组”下拉菜单中选择“asg-mgmt”。

测试流量筛选器

  1. 在门户顶部的搜索框中,输入“虚拟机”。 在搜索结果中,选择“虚拟机”。

  2. 选择“vm-2”。

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

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

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

  6. 选择“确定”。

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

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

    “vm-2”的网络接口与“asg-mgmt”应用程序安全组相关联,并允许连接。

  8. 在“vm-2”上打开 PowerShell 会话 vm-2.。 使用以下命令连接到“vm-1”:

    mstsc /v:vm-1
    

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

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

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

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

  11. 从“vm-2”VM 断开连接。

  12. 在门户搜索框中搜索“vm-1”。

  13. 在“vm-1”的“概述”页上,记下 VM 的“公共 IP 地址”。 以下示例所示地址为 20.230.55.178,但你的地址与此不同:

    Screenshot of Public IP address of a virtual machine in the Overview page.

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

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

附加到“vm-1”的网络接口与“asg-web”应用程序安全组相关联,并允许连接。

清理资源

使用创建的资源之后,可以删除资源组及其所有资源。

  1. 在 Azure 门户中,搜索并选择“资源组”。

  2. 在“资源组”页上,选择“test-rg”资源组。

  3. 在“test-rg”页上,选择“删除资源组”。

  4. 在“输入资源组名称以确认删除”中输入“test-rg”,然后选择“删除”。

后续步骤

在本教程中,你将了解:

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

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

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

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