練習 - 建立 NVA 和虛擬機器

已完成

在安全性實作的下一個階段中,您將會部署網路虛擬設備 (NVA),以保護並監視前端公用伺服器和內部私人伺服器之間的流量。

您會將設備設定為轉送 IP 流量。 如果未啟用 IP 轉送,預期的目的地伺服器將一律不會接收透過您設備路由傳送的流量。

在本練習中,您會將 nva 網路應用設備部署至 dmzsubnet 子網路。 接著,您會啟用 IP 轉送,讓來自 * 的流量和使用自訂路由的流量會傳送至 privatesubnet 子網路。

Visualization of a Network virtual appliance with IP forwarding enabled.

在下列步驟中,您將會部署 NVA。 接著,您會更新 Azure 虛擬 NIC 和設備內的網路設定,以啟用 IP 轉送。

部署網路虛擬設備

若要建置 NVA,請部署 Ubuntu LTS 執行個體。

  1. 在 Cloud Shell 中,執行下列命令以部署設備。 將 <password> 取代為您為 azureuser 管理帳戶選擇的適當密碼。

    az vm create \
        --resource-group "<rgn>[sandbox resource group name]</rgn>" \
        --name nva \
        --vnet-name vnet \
        --subnet dmzsubnet \
        --image Ubuntu2204 \
        --admin-username azureuser \
        --admin-password <password>
    

啟用 Azure 網路介面的 IP 轉送

在後續步驟中,將會啟用 nva 網路設備的 IP 轉送。 當流量流向 NVA,但其目的是另一個目標時,NVA 會將該流量路由傳送到正確的目的地。

  1. 執行下列命令以取得 NVA 網路介面的識別碼。

    NICID=$(az vm nic list \
        --resource-group "<rgn>[sandbox resource group name]</rgn>" \
        --vm-name nva \
        --query "[].{id:id}" --output tsv)
    
    echo $NICID
    
  2. 執行下列命令以取得 NVA 網路介面的名稱。

    NICNAME=$(az vm nic show \
        --resource-group "<rgn>[sandbox resource group name]</rgn>" \
        --vm-name nva \
        --nic $NICID \
        --query "{name:name}" --output tsv)
    
    echo $NICNAME
    
  3. 執行下列命令以啟用網路介面的 IP 轉送。

    az network nic update --name $NICNAME \
        --resource-group "<rgn>[sandbox resource group name]</rgn>" \
        --ip-forwarding true
    

啟用設備中的 IP 轉送

  1. 執行下列命令以將 NVA 虛擬機器的公用 IP 位址儲存至變數 NVAIP

    NVAIP="$(az vm list-ip-addresses \
        --resource-group "<rgn>[sandbox resource group name]</rgn>" \
        --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;'
    

    出現提示時,輸入您建立虛擬機器時所用的密碼。