Come aprire le porte e gli endpoint in una VM in Azure usando PowerShellHow to open ports and endpoints to a VM in Azure using 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.You open a port, or create an endpoint, to a virtual machine (VM) in Azure by creating a network filter on a subnet or VM network interface. 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.You place these filters, which control both inbound and outbound traffic, on a Network Security Group attached to the resource that receives the traffic.

Si userà un esempio comune di traffico Web sulla porta 80.Let's use a common example of web traffic on port 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:Once you have a VM that is configured to serve web requests on the standard TCP port 80 (remember to start the appropriate services and open any OS firewall rules on the VM as well), you:

  1. Creare un gruppo di sicurezza di rete.Create a Network Security Group.
  2. Creare una regola in ingresso che consenta il traffico con:Create an inbound rule allowing traffic with:
    • intervallo di porte di destinazione impostato su "80"the destination port range of "80"
    • intervallo di porte di origine "", che consente qualsiasi porta di originethe source port range of "" (allowing any source port)
    • 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-alla priority value of less 65,500 (to be higher in priority than the default catch-all deny inbound rule)
  3. Associare il gruppo di sicurezza di rete con l'interfaccia di rete della VM o con la subnetAssociate the Network Security Group with the VM network interface or subnet.

È possibile creare configurazioni di rete complesse per proteggere l'ambiente usando i gruppi di sicurezza di rete e le regole.You can create complex network configurations to secure your environment using Network Security Groups and rules. L'esempio usa solo una o due regole che consentono il traffico HTTP o la gestione remota.Our example uses only one or two rules that allow HTTP traffic or remote management. Per altre informazioni, vedere la sezione "Altre informazioni" seguente o Informazioni sui gruppi di sicurezza di rete.For more information, see the following 'More Information' section or What is a Network Security Group?

Comandi rapidiQuick commands

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.To create a Network Security Group and ACL rules you need the latest version of Azure PowerShell installed. È possibile anche eseguire questi passaggi tramite il portale di Azure.You can also perform these steps using the Azure portal.

Accedere all'account di Azure:Log in to your Azure account:

Login-AzureRmAccount

Nell'esempio seguente sostituire i nomi dei parametri di esempio con i valori desiderati.In the following examples, replace example parameter names with your own values. I nomi dei parametri di esempio includono myResourceGroup, myNetworkSecurityGroup e myVnet.Example parameter names included myResourceGroup, myNetworkSecurityGroup, and myVnet.

Creare una regola con New-AzureRmNetworkSecurityRuleConfig.Create a rule with New-AzureRmNetworkSecurityRuleConfig. L'esempio seguente crea una regola denominata myNetworkSecurityGroupRule per consentire il traffico tcp sulla porta 80:The following example creates a rule named myNetworkSecurityGroupRule to allow tcp traffic on port 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.Next, create your Network Security group with New-AzureRmNetworkSecurityGroup and assign the HTTP rule you just created as follows. L'esempio seguente crea un gruppo di sicurezza di rete denominato myNetworkSecurityGroup:The following example creates a Network Security Group named myNetworkSecurityGroup:

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

Ora si assegnerà il gruppo di sicurezza di rete a una subnet.Now let's assign your Network Security Group to a subnet. L'esempio seguente assegna una rete virtuale esistente denominata myVnet alla variabile $vnet con Get-AzureRmVirtualNetwork:The following example assigns an existing virtual network named myVnet to the variable $vnet with Get-AzureRmVirtualNetwork:

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

Associare il gruppo di sicurezza di rete alla subnet con Set-AzureRmVirtualNetworkSubnetConfig.Associate your Network Security Group with your subnet with Set-AzureRmVirtualNetworkSubnetConfig. L'esempio seguente associa la subnet denominata mySubnet al gruppo di sicurezza di rete:The following example associates the subnet named mySubnet with your Network Security Group:

$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:Finally, update your virtual network with Set-AzureRmVirtualNetwork in order for your changes to take effect:

Set-AzureRmVirtualNetwork -VirtualNetwork $vnet

Altre informazioni sui gruppi di sicurezza di reteMore information on Network Security Groups

I comandi rapidi seguenti consentono di rendere operativo il traffico verso la VM.The quick commands here allow you to get up and running with traffic flowing to your VM. I gruppi di sicurezza di rete offrono numerose funzionalità efficienti e la necessaria granularità per controllare l'accesso alle risorse.Network Security Groups provide many great features and granularity for controlling access to your resources. 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.You can read more about creating a Network Security Group and ACL rules here.

Per le applicazioni Web a disponibilità elevata, è consigliabile inserire le macchine virtuali dietro a un Azure Load Balancer.For highly available web applications, you should place your VMs behind an 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.The load balancer distributes traffic to VMs, with a Network Security Group that provides traffic filtering. Per altre informazioni, vedere Come bilanciare il carico per le macchine virtuali di Linux in Azure per creare un'applicazione a disponibilità elevata.For more information, see How to load balance Linux virtual machines in Azure to create a highly available application.

Passaggi successiviNext steps

In questo esempio viene creata una regola semplice per consentire il traffico HTTP.In this example, you created a simple rule to allow HTTP traffic. È possibile trovare informazioni sulla creazione di ambienti più dettagliati negli articoli seguenti:You can find information on creating more detailed environments in the following articles: