Come aprire porte ed endpoint in una macchina virtuale usando PowerShell

Si applica a: Macchine ✔️ virtuali Linux Windows ✔️ set di scalabilità flessibili ✔️

Per aprire una porta, o creare un endpoint, in una macchina virtuale (VM) di Azure si crea 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 collegato alla risorsa che riceve il traffico.

L'esempio in questo articolo illustra come creare un filtro di rete che usa la porta TCP 80 standard. Si presuppone di avere già avviato i servizi appropriati e di avere aperto le eventuali regole del firewall del sistema operativo nella macchina virtuale.

Dopo aver creato una macchina virtuale configurata per elaborare le richieste Web sulla porta TCP 80 standard, è possibile:

  1. Creare un gruppo di sicurezza di rete.

  2. Creare una regola di sicurezza in ingresso che consente il traffico e assegnare valori alle impostazioni seguenti:

    • Intervalli di porte di destinazione: 80

    • Intervalli di porte di origine: * (consente qualsiasi porta di origine)

    • Valore di priorità: immettere un valore di priorità minore di 65.500 e più alto rispetto al valore predefinito della regola in ingresso di accesso negato di tipo catch-all.

  3. Associare il gruppo di sicurezza di rete alla subnet o all'interfaccia di rete della macchina virtuale.

Anche se questo esempio usa una regola semplice per consentire il traffico HTTP, è possibile usare anche regole e gruppi di sicurezza di rete per creare configurazioni di rete più complesse.

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:

Connect-AzAccount

Negli esempi seguenti sostituire i nomi dei parametri con i valori desiderati. I nomi dei parametri di esempio includono myResourceGroup, myNetworkSecurityGroup e myVnet.

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

$httprule = New-AzNetworkSecurityRuleConfig `
    -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-AzNetworkSecurityGroup 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-AzNetworkSecurityGroup `
    -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-AzVirtualNetwork:

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

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

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

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

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

Set-AzVirtualNetwork -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: