Creare un gruppo di sicurezza di rete (versione classica) con PowerShell

È possibile usare un gruppo di sicurezza di rete per controllare il traffico verso una o più istanze di macchina virtuale, le istanze del ruolo, le schede di rete (NIC) o i subnet in una rete virtuale. Un NSG contiene le regole di controllo di accesso che consentono o negano il traffico in base alla direzione del traffico, al protocollo, all’indirizzo e alla porta di origine e all’indirizzo e alla porta di destinazione. Le regole di un gruppo di sicurezza di rete possono essere modificate in qualsiasi momento e le modifiche vengono applicate a tutte le istanze associate.

Per ulteriori informazioni su NSGs, visitare Informazioni su NSG.

Importante

Prima di iniziare a usare le risorse di Azure, è importante comprendere che Azure al momento offre due modelli di distribuzione, la distribuzione classica e Azure Resource Manager. È importante comprendere i modelli e strumenti di distribuzione prima di lavorare con le risorse di Azure. È possibile visualizzare la documentazione relativa a diversi strumenti facendo clic sulle schede nella parte superiore di questo articolo.

In questo articolo viene illustrato il modello di distribuzione classica. È inoltre possibile creare gruppi di sicurezza di rete nel modello di distribuzione di Gestione risorse.

Scenario

Per illustrare meglio come creare un gruppo di sicurezza di rete, in questo documento verrà usato lo scenario seguente.

Scenario di una rete virtuale

In questo scenario si creerà un gruppo di sicurezza di rete per ogni subnet nella rete virtuale TestVNet, come illustrato di seguito:

  • NSG-FrontEnd. Il gruppo di sicurezza di rete front-end verrà applicato alla subnet FrontEnd e contiene due regole:
    • regola-rdp. Consente il traffico RDP verso la subnet FrontEnd.
    • regola-web. Consente il traffico HTTP verso la subnet FrontEnd.
  • Back-end di NSG. Il gruppo di sicurezza di rete back-end verrà applicato alla subnet BackEnd e contiene due regole:
    • regola sql. Consente il traffico SQL solo dalla subnet FrontEnd.
    • regola-web. Nega tutto il traffico associato ad internet proveniente dalla subnet BackEnd.

La combinazione di queste regole crea uno scenario simile alla rete perimetrale, dove la subnet di back-end può solo ricevere traffico in ingresso per SQL dalla subnet front-end e non dispone dell'accesso a Internet, mentre la subnet front-end può comunicare con Internet e ricevere solo le richieste HTTP in ingresso.

I comandi di esempio PowerShell riportati di seguito prevedono un ambiente semplice già creato in base allo scenario precedente. Se si desidera eseguire i comandi illustrati in questo documento, creare prima di tutto l'ambiente di testing creando una rete virtuale.

Creare un gruppo di sicurezza di rete per la subnet front-end

  1. Se si usa Azure PowerShell per la prima volta, vedere Come installare e configurare Azure PowerShell.

  2. Creare un gruppo di sicurezza di rete denominato NSG-FrontEnd:

    New-AzureNetworkSecurityGroup -Name "NSG-FrontEnd" -Location uswest `
      -Label "Front end subnet NSG"
    
  3. Creare una regola di sicurezza che consente l'accesso alla porta 3389 da Internet:

    Get-AzureNetworkSecurityGroup -Name "NSG-FrontEnd" `
      | Set-AzureNetworkSecurityRule -Name rdp-rule `
      -Action Allow -Protocol TCP -Type Inbound -Priority 100 `
      -SourceAddressPrefix Internet  -SourcePortRange '*' `
      -DestinationAddressPrefix '*' -DestinationPortRange '3389'
    
  4. Creare una regola di sicurezza che consente l'accesso alla porta 80 da Internet:

    Get-AzureNetworkSecurityGroup -Name "NSG-FrontEnd" `
      | Set-AzureNetworkSecurityRule -Name web-rule `
      -Action Allow -Protocol TCP -Type Inbound -Priority 200 `
      -SourceAddressPrefix Internet  -SourcePortRange '*' `
      -DestinationAddressPrefix '*' -DestinationPortRange '80'
    
  5. Associare il gruppo di sicurezza di rete a una subnet:

    Get-AzureNetworkSecurityGroup -Name "NSG-Frontend" `
    | Set-AzureNetworkSecurityGroupToSubnet -VirtualNetworkName "TestVNet" `
    -Subnet "FrontEnd"
    

Creare un gruppo di sicurezza di rete per la subnet back-end

  1. Creare un gruppo di sicurezza di rete denominato NSG-BackEnd:

    New-AzureNetworkSecurityGroup -Name "NSG-BackEnd" -Location uswest `
      -Label "Back end subnet NSG"
    
  2. Creare una regola di sicurezza che consente l'accesso dalla subnet front-end alla porta 1433 (porta predefinita usata da SQL Server):

    Get-AzureNetworkSecurityGroup -Name "NSG-FrontEnd" `
      | Set-AzureNetworkSecurityRule -Name rdp-rule `
      -Action Allow -Protocol TCP -Type Inbound -Priority 100 `
      -SourceAddressPrefix 192.168.1.0/24  -SourcePortRange '*' `
      -DestinationAddressPrefix '*' -DestinationPortRange '1433'
    
  3. Creare una regola di sicurezza che blocca l'accesso a Internet dalla subnet:

    Get-AzureNetworkSecurityGroup -Name "NSG-BackEnd" `
      | Set-AzureNetworkSecurityRule -Name block-internet `
      -Action Deny -Protocol '*' -Type Outbound -Priority 200 `
      -SourceAddressPrefix '*'  -SourcePortRange '*' `
      -DestinationAddressPrefix Internet -DestinationPortRange '*'
    
  4. Associare il gruppo di sicurezza di rete a una subnet:

    Get-AzureNetworkSecurityGroup -Name "NSG-Backend" `
    | Set-AzureNetworkSecurityGroupToSubnet -VirtualNetworkName "TestVNet" `
    -Subnet "BackEnd"