Come aprire le porte e gli endpoint in una VM in Azure usando PowerShell

Aprire una porta o creare un endpoint in una macchina virtuale (VM) di Azure tramite la creazione di un filtro di rete su una subnet o un'interfaccia di rete di VM. Questi filtri, che consentono di controllare il traffico in ingresso e in uscita, vengono inseriti in un gruppo di sicurezza di rete e collegati alla risorsa che riceve il traffico.

Si userà un esempio comune di traffico Web sulla porta 80. Dopo aver ottenuto una VM configurata per rispondere alle richieste Web sulla porta TCP 80 standard, ricordando anche di avviare i servizi e aprire tutte le regole del firewall del sistema operativo nella VM, si procederà a:

  1. Creare un gruppo di sicurezza di rete.
  2. Creare una regola in ingresso che consenta il traffico con:
    • intervallo di porte di destinazione impostato su "80"
    • intervallo di porte di origine "*", che consente qualsiasi porta di origine
    • valore di priorità minore di 65.500, per ottenere una priorità più alta rispetto al valore predefinito della regola in ingresso di accesso negato di tipo catch-all
  3. Associare il gruppo di sicurezza di rete con l'interfaccia di rete della VM o con la subnet

È possibile creare configurazioni di rete complesse per proteggere l'ambiente usando i gruppi di sicurezza di rete e le regole. L'esempio usa solo una o due regole che consentono il traffico HTTP o la gestione remota. Per altre informazioni, vedere la sezione "Altre informazioni" seguente o Informazioni sui gruppi di sicurezza di rete.

Comandi rapidi

Per creare un gruppo di sicurezza di rete e le regole del controllo di accesso, è necessario che sia installata la versione più recente di Azure PowerShell. È possibile anche eseguire questi passaggi tramite il portale di Azure.

Accedere all'account di Azure:

Login-AzureRmAccount

Nell'esempio seguente sostituire i nomi dei parametri di esempio con i valori desiderati. I nomi dei parametri di esempio includono myResourceGroup, myNetworkSecurityGroup e myVnet.

Creare una regola con New-AzureRmNetworkSecurityRuleConfig. L'esempio seguente crea una regola denominata myNetworkSecurityGroupRule per consentire il traffico tcp sulla porta 80:

$httprule = New-AzureRmNetworkSecurityRuleConfig `
    -Name "myNetworkSecurityGroupRule" `
    -Description "Allow HTTP" `
    -Access "Allow" `
    -Protocol "Tcp" `
    -Direction "Inbound" `
    -Priority "100" `
    -SourceAddressPrefix "Internet" `
    -SourcePortRange * `
    -DestinationAddressPrefix * `
    -DestinationPortRange 80

Creare quindi il gruppo di sicurezza di rete con New-AzureRmNetworkSecurityGroup e assegnare la regola HTTP appena creata come indicato di seguito. L'esempio seguente crea un gruppo di sicurezza di rete denominato myNetworkSecurityGroup:

$nsg = New-AzureRmNetworkSecurityGroup `
    -ResourceGroupName "myResourceGroup" `
    -Location "EastUS" `
    -Name "myNetworkSecurityGroup" `
    -SecurityRules $httprule

Ora si assegnerà il gruppo di sicurezza di rete a una subnet. L'esempio seguente assegna una rete virtuale esistente denominata myVnet alla variabile $vnet con Get-AzureRmVirtualNetwork:

$vnet = Get-AzureRmVirtualNetwork `
    -ResourceGroupName "myResourceGroup" `
    -Name "myVnet"

Associare il gruppo di sicurezza di rete alla subnet con Set-AzureRmVirtualNetworkSubnetConfig. L'esempio seguente associa la subnet denominata mySubnet al gruppo di sicurezza di rete:

$subnetPrefix = $vnet.Subnets|?{$_.Name -eq 'mySubnet'}

Set-AzureRmVirtualNetworkSubnetConfig `
    -VirtualNetwork $vnet `
    -Name "mySubnet" `
    -AddressPrefix $subnetPrefix.AddressPrefix `
    -NetworkSecurityGroup $nsg

Infine, aggiornare la rete virtuale con Set-AzureRmVirtualNetwork affinché le modifiche abbiano effetto:

Set-AzureRmVirtualNetwork -VirtualNetwork $vnet

Altre informazioni sui gruppi di sicurezza di rete

I comandi rapidi seguenti consentono di rendere operativo il traffico verso la VM. I gruppi di sicurezza di rete offrono numerose funzionalità efficienti e la necessaria granularità per controllare l'accesso alle risorse. Per altre informazioni, leggere l'articolo sulla creazione di un gruppo di sicurezza di rete e di regole dell'elenco di controllo di accesso qui.

Per le applicazioni Web a disponibilità elevata, è consigliabile inserire le macchine virtuali dietro a un Azure Load Balancer. Il bilanciamento del carico distribuisce il traffico alle macchine virtuali, con un gruppo di sicurezza di rete che consente di filtrare il traffico. Per altre informazioni, vedere Come bilanciare il carico per le macchine virtuali di Linux in Azure per creare un'applicazione a disponibilità elevata.

Passaggi successivi

In questo esempio viene creata una regola semplice per consentire il traffico HTTP. È possibile trovare informazioni sulla creazione di ambienti più dettagliati negli articoli seguenti: