练习 - 创建 NVA 和虚拟机

已完成

在安全实现的下一个阶段,将部署一个网络虚拟设备 (NVA) 来保护和监视前端公共服务器和内部专用服务器之间的流量。

首先,配置设备以转发 IP 流量。 如果未启用 IP 转发,则预期的目标服务器永远不会收到已通过设备路由的流量。

在本练习中,将 nva 网络设备部署到 dmzsubnet 子网。 然后启用 IP 转发,以便将来自 * 的流量和使用自定义路由的流量发送到 privatesubnet 子网。

启用了 IP 转发的网络虚拟设备示意图。

在以下步骤中,你将部署 NVA。 然后,需要更新 Azure 虚拟 NIC 和设备中的网络设置,以启用 IP 转发。

注释

本练习可选做。 若要完成本练习,则需要在开始之前创建 Azure 订阅。 如果没有 Azure 帐户或不想暂时创建一个帐户,可以通读说明,以便了解所显示的信息。

部署网络虚拟设备

若要构建 NVA,请部署 Ubuntu LTS 实例。

  1. Azure Cloud Shell 中,运行以下命令来部署设备。 将所选 <password> 管理员帐户的密码替换为所选密码,将 myResourceGroupName 替换为资源组的名称。

    az vm create \
        --resource-group "myResourceGroupName" \
        --name nva \
        --vnet-name vnet \
        --subnet dmzsubnet \
        --image Ubuntu2204 \
        --admin-username azureuser \
        --admin-password <password>
    

启用 Azure 网络接口的 IP 转发

在接下来的步骤中,你将启用 nva 网络设备的 IP 转发。 当流量流向 NVA(但本应流向其他目标)时,NVA 会将该流量路由到正确的目标。

  1. 运行以下命令以获取 NVA 网络接口的 ID:

    NICID=$(az vm nic list \
        --resource-group "myResourceGroupName" \
        --vm-name nva \
        --query "[].{id:id}" --output tsv)
    
    echo $NICID
    
  2. 运行以下命令以获取 NVA 网络接口的命令:

    NICNAME=$(az vm nic show \
        --resource-group "myResourceGroupName" \
        --vm-name nva \
        --nic $NICID \
        --query "{name:name}" --output tsv)
    
    echo $NICNAME
    
  3. 运行以下命令以启用网络接口的 IP 转发:

    az network nic update --name $NICNAME \
        --resource-group "myResourceGroupName" \
        --ip-forwarding true
    

在设备中启用 IP 转发

  1. 运行以下命令,将 NVA 虚拟机的公共 IP 地址保存到 NVAIP 变量:

    NVAIP="$(az vm list-ip-addresses \
        --resource-group "myResourceGroupName" \
        --name nva \
        --query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \
        --output tsv)"
    
    echo $NVAIP
    
  2. 运行以下命令以启用 NVA 中的 IP 转发:

    ssh -t -o StrictHostKeyChecking=no azureuser@$NVAIP 'sudo sysctl -w net.ipv4.ip_forward=1; exit;'
    

    出现提示时,输入创建虚拟机时所用的密码。