Filtrare il traffico della VM in ingresso e in uscitaFilter inbound and outbound VM network traffic

Questo script di esempio crea una rete virtuale con subnet front-end e back-end.This script sample creates a virtual network with front-end and back-end subnets. Il traffico di rete in ingresso alla subnet front-end è limitato a HTTP, HTTPS e SSH, mentre il traffico in uscita verso Internet dalla subnet back-end non è consentito.Inbound network traffic to the front-end subnet is limited to HTTP, HTTPS and SSH, while outbound traffic to the Internet from the back-end subnet is not permitted. Dopo aver eseguito lo script sarà presente una macchina virtuale con due NIC.After running the script, you will have one virtual machine with two NICs. Ogni NIC è collegata a una subnet diversa.Each NIC is connected to a different subnet.

Per eseguire questo esempio, verificare di aver installato l'ultima versione dell'interfaccia della riga di comando di Azure 2.0.To run this sample, make sure you have installed the latest Azure CLI 2.0. Per iniziare, eseguire az login per creare una connessione con Azure.To start, run az login to create a connection with Azure.

Questo esempio funziona in una shell Bash.This sample works in a Bash shell. Per le opzioni sull'esecuzione di script dell'interfaccia della riga di comando di Azure nel client Windows, vedere Running the Azure CLI in Windows (Esecuzione dell'interfaccia della riga di comando di Azure in Windows).For options on running Azure CLI scripts on Windows client, see Running the Azure CLI in Windows.

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.If you don't have an Azure subscription, create a free account before you begin.

Script di esempioSample script

#!/bin/bash

RgName="MyResourceGroup"
Location="eastus"

# Create a resource group.
az group create \
  --name $RgName \
  --location $Location

# Create a virtual network and a front-end subnet.
az network vnet create \
  --resource-group $RgName \
  --name MyVnet \
  --address-prefix 10.0.0.0/16  \
  --location $Location \
  --subnet-name MySubnet-FrontEnd \
  --subnet-prefix 10.0.1.0/24

# Create a back-end subnet.
az network vnet subnet create \
  --address-prefix 10.0.2.0/24 \
  --name MySubnet-BackEnd \
  --resource-group $RgName \
  --vnet-name MyVnet

# Create a network security group (NSG) for the front-end subnet.
az network nsg create \
  --resource-group $RgName \
  --name MyNsg-FrontEnd \
  --location $Location

# Create NSG rules to allow HTTP & HTTPS traffic inbound.
az network nsg rule create \
  --resource-group $RgName \
  --nsg-name MyNsg-FrontEnd \
  --name Allow-HTTP-All \
  --access Allow \
  --protocol Tcp \
  --direction Inbound \
  --priority 100 \
  --source-address-prefix Internet \
  --source-port-range "*" \
  --destination-address-prefix "*" \
  --destination-port-range 80

az network nsg rule create \
  --resource-group $RgName \
  --nsg-name MyNsg-FrontEnd \
  --name Allow-HTTPS-All \
  --access Allow \
  --protocol Tcp \
  --direction Inbound \
  --priority 200 \
  --source-address-prefix Internet \
  --source-port-range "*" \
  --destination-address-prefix "*" \
  --destination-port-range 443

# Create an NSG rule to allow SSH traffic in from the Internet to the front-end subnet.
az network nsg rule create \
  --resource-group $RgName \
  --nsg-name MyNsg-FrontEnd \
  --name Allow-SSH-All \
  --access Allow \
  --protocol Tcp \
  --direction Inbound \
  --priority 300 \
  --source-address-prefix Internet \
  --source-port-range "*" \
  --destination-address-prefix "*" \
  --destination-port-range 22

# Associate the front-end NSG to the front-end subnet.
az network vnet subnet update \
  --vnet-name MyVnet \
  --name MySubnet-FrontEnd \
  --resource-group $RgName \
  --network-security-group MyNsg-FrontEnd

# Create a network security group for the back-end subnet.
az network nsg create \
  --resource-group $RgName \
  --name MyNsg-BackEnd \
  --location $Location

# Create an NSG rule to block all outbound traffic from the back-end subnet to the Internet (inbound blocked by default).
az network nsg rule create \
  --resource-group $RgName \
  --nsg-name MyNsg-BackEnd \
  --name Deny-Internet-All \
  --access Deny --protocol Tcp \
  --direction Outbound --priority 100 \
  --source-address-prefix "*" \
  --source-port-range "*" \
  --destination-address-prefix "Internet" \
  --destination-port-range "*"

# Associate the back-end NSG to the back-end subnet.
az network vnet subnet update \
  --vnet-name MyVnet \
  --name MySubnet-BackEnd \
  --resource-group $RgName \
  --network-security-group MyNsg-BackEnd

# Create a public IP address for the VM front-end network interface.
az network public-ip create \
  --resource-group $RgName \
  --name MyPublicIp-FrontEnd \
  --allocation-method Dynamic

# Create a network interface for the VM attached to the front-end subnet.
az network nic create \
  --resource-group $RgName \
  --vnet-name MyVnet \
  --subnet MySubnet-FrontEnd \
  --name MyNic-FrontEnd \
  --public-ip-address MyPublicIp-FrontEnd

# Create a network interface for the VM attached to the back-end subnet.
az network nic create \
  --resource-group $RgName \
  --vnet-name MyVnet \
  --subnet MySubnet-BackEnd \
  --name MyNic-BackEnd

# Create the VM with both the FrontEnd and BackEnd NICs.
az vm create \
  --resource-group $RgName \
  --name MyVm \
  --nics MyNic-FrontEnd MyNic-BackEnd \
  --image UbuntuLTS \
  --admin-username azureadmin \
  --generate-ssh-keys

Pulire la distribuzioneClean up deployment

Eseguire questo comando per rimuovere il gruppo di risorse, la macchina virtuale e tutte le risorse correlate.Run the following command to remove the resource group, VM, and all related resources.

az group delete --name MyResourceGroup --yes

Spiegazione dello scriptScript explanation

Questo script usa i comandi seguenti per creare un gruppo di risorse, una rete virtuale e i gruppi di sicurezza di rete.This script uses the following commands to create a resource group, virtual network, and network security groups. Ogni comando della tabella include collegamenti alla documentazione specifica del comando.Each command in the table links to command-specific documentation.

ComandoCommand NoteNotes
az group createaz group create Consente di creare un gruppo di risorse in cui sono archiviate tutte le risorse.Creates a resource group in which all resources are stored.
az network vnet createaz network vnet create Consente di creare una rete virtuale e una subnet front-end di Azure.Creates an Azure virtual network and front-end subnet.
az network subnet createaz network subnet create Consente di creare una subnet back-end.Creates a back-end subnet.
az network vnet subnet updateaz network vnet subnet update Consente di associare i gruppi di risorse di rete alla subnet.Associates NSGs to subnets.
az network public-ip createaz network public-ip create Consente di creare un indirizzo IP pubblico per accedere alla VM da Internet.Creates a public IP address to access the VM from the Internet.
az network nic createaz network nic create Consente di creare interfacce di rete virtuale e di associarle alle subnet front-end e back-end della rete virtuale.Creates virtual network interfaces and attaches them to the virtual network's front-end and back-end subnets.
az network nsg createaz network nsg create Consente di creare gruppi di sicurezza di rete associati alle subnet front-end e back-end.Creates network security groups (NSG) that are associated to the front-end and back-end subnets.
az network nsg rule createaz network nsg rule create Consente di creare regole del gruppo di sicurezza di rete che consentono o bloccano porte specifiche su subnet specifiche.Creates NSG rules that allow or block specific ports to specific subnets.
az vm createaz vm create Consente di creare macchine virtuali e associa una NIC a ogni VM.Creates virtual machines and attaches a NIC to each VM. Questo comando specifica anche l'immagine della macchina virtuale da usare e le credenziali di amministrazione.This command also specifies the virtual machine image to use and administrative credentials.
az group deleteaz group delete Consente di eliminare un gruppo di risorse e tutte le risorse in esso contenute.Deletes a resource group and all resources it contains.

Passaggi successiviNext steps

Per altre informazioni sull'interfaccia della riga di comando di Azure, vedere la documentazione sull'interfaccia della riga di comando di Azure.For more information on the Azure CLI, see Azure CLI documentation.

Altri esempi di script dell'interfaccia della riga di comando per la rete sono disponibili nella documentazione sulla Panoramica delle reti di Azure.Additional networking CLI script samples can be found in the Azure Networking Overview documentation