Come creare NSG (classici) in 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 NSG, in questo documento verrà utilizzato lo scenario seguente.

Scenario di una rete virtuale

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

  • NSG-FrontEnd. Il front-end NSG verrà applicato per il subnet front-end , e contiene due regole:
    • regola-rdp. Questa regola consente il traffico RDP verso il subnet front-end .
    • regola-web. Questa regola consente il traffico HTTP verso il subnet front-end .
  • Back-end di NSG. Il back-end NSG verrà applicato per il subnet back-end , e contiene due regole:
    • regola sql. Questa regola consente il traffico SQL solo dal subnet front-end .
    • regola-web. Questa regola nega tutto il traffico associato ad internet proveniente dal subnet back-end .

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.

Come creare il gruppo di sicurezza di rete per la subnet front-end

Per creare un gruppo di sicurezza di rete denominato NSG-FrontEnd in base allo scenario precedente, seguire la procedura riportata di seguito:

  1. Se è la prima volta che si utilizza Azure PowerShell, vedere Come installare e configurare Azure PowerShell e seguire le istruzioni fino al termine della procedura per accedere ad Azure e selezionare la sottoscrizione desiderata.
  2. Creare un gruppo di sicurezza di rete denominato NSG-FrontEnd.

     New-AzureNetworkSecurityGroup -Name "NSG-FrontEnd" -Location uswest `
         -Label "Front end subnet NSG"
    

    Output previsto:

     Name         Location   Label               
    
     NSG-FrontEnd West US     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'
    

    Output previsto:

     Name     : NSG-FrontEnd
     Location : Central US
     Label    : Front end subnet NSG
     Rules    :
    
                   Type: Inbound
    
                Name                 Priority  Action   Source Address  Source Port   Destination      Destination    Protocol
                                                        Prefix          Range         Address Prefix   Port Range             
    
                rdp-rule             100       Allow    INTERNET        *             *                3389           TCP     
                ALLOW VNET INBOUND   65000     Allow    VIRTUAL_NETWORK *             VIRTUAL_NETWORK  *              *       
                ALLOW AZURE LOAD     65001     Allow    AZURE_LOADBALAN *             *                *              *       
                BALANCER INBOUND                        CER                                                                   
                DENY ALL INBOUND     65500     Deny     *               *             *                *              *       
    
                   Type: Outbound
    
                Name                 Priority  Action   Source Address  Source Port   Destination      Destination    Protocol
                                                        Prefix          Range         Address Prefix   Port Range             
    
                ALLOW VNET OUTBOUND  65000     Allow    VIRTUAL_NETWORK *             VIRTUAL_NETWORK  *              *       
                ALLOW INTERNET       65001     Allow    *               *             INTERNET         *              *       
                OUTBOUND                                                                                                      
                DENY ALL OUTBOUND    65500     Deny     *               *             *                *              *
    
  4. Creare una regola di sicurezza che consente l'accesso da Internet alla porta 80.

     Get-AzureNetworkSecurityGroup -Name "NSG-FrontEnd" `
     | Set-AzureNetworkSecurityRule -Name web-rule `
         -Action Allow -Protocol TCP -Type Inbound -Priority 200 `
         -SourceAddressPrefix Internet  -SourcePortRange '*' `
         -DestinationAddressPrefix '*' -DestinationPortRange '80'
    

    Output previsto:

     Name     : NSG-FrontEnd
     Location : Central US
     Label    : Front end subnet NSG
     Rules    :
    
                   Type: Inbound
    
                Name                 Priority  Action   Source Address  Source Port   Destination      Destination    Protocol
                                                        Prefix          Range         Address Prefix   Port Range             
    
                rdp-rule             100       Allow    INTERNET        *             *                3389           TCP     
                web-rule             200       Allow    INTERNET        *             *                80             TCP     
                ALLOW VNET INBOUND   65000     Allow    VIRTUAL_NETWORK *             VIRTUAL_NETWORK  *              *       
                ALLOW AZURE LOAD     65001     Allow    AZURE_LOADBALAN *             *                *              *       
                BALANCER INBOUND                        CER                                                                   
                DENY ALL INBOUND     65500     Deny     *               *             *                *              *       
    
                  Type: Outbound

               Name                 Priority  Action   Source Address  Source Port   Destination      Destination    Protocol
                                                       Prefix          Range         Address Prefix   Port Range             

               ALLOW VNET OUTBOUND  65000     Allow    VIRTUAL_NETWORK *             VIRTUAL_NETWORK  *              *       
               ALLOW INTERNET       65001     Allow    *               *             INTERNET         *              *       
               OUTBOUND                                                                                                      
               DENY ALL OUTBOUND    65500     Deny     *               *             *                *              *   

Come creare il 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"
    

    Output previsto:

     Name        Location   Label              
    
     NSG-BackEnd West US    Back end subnet NSG
    
  2. Creare una regola di sicurezza che consente l'accesso dalla subnet front-end per la porta 1433 (porta predefinita utilizzata 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'
    

    Output previsto:

     Name     : NSG-BackEnd
     Location : Central US
     Label    : Back end subnet NSG
     Rules    :
    
                   Type: Inbound
    
                Name                 Priority  Action   Source Address  Source Port   Destination      Destination    Protocol
                                                        Prefix          Range         Address Prefix   Port Range             
    
                fe-rule              100       Allow    192.168.1.0/24  *             *                1433           TCP     
                ALLOW VNET INBOUND   65000     Allow    VIRTUAL_NETWORK *             VIRTUAL_NETWORK  *              *       
                ALLOW AZURE LOAD     65001     Allow    AZURE_LOADBALAN *             *                *              *       
                BALANCER INBOUND                        CER                                                                   
                DENY ALL INBOUND     65500     Deny     *               *             *                *              *       
    
                   Type: Outbound
    
                Name                 Priority  Action   Source Address  Source Port   Destination      Destination    Protocol
                                                        Prefix          Range         Address Prefix   Port Range             
    
                ALLOW VNET OUTBOUND  65000     Allow    VIRTUAL_NETWORK *             VIRTUAL_NETWORK  *              *       
                ALLOW INTERNET       65001     Allow    *               *             INTERNET         *              *       
                OUTBOUND                                                                                                      
                DENY ALL OUTBOUND    65500     Deny     *               *             *                *              *      
    
  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 '*'
    

    Output previsto:

     Name     : NSG-BackEnd
     Location : Central US
     Label    : Back end subnet NSG
     Rules    :
    
                   Type: Inbound
    
                Name                 Priority  Action   Source Address  Source Port   Destination      Destination    Protocol
                                                        Prefix          Range         Address Prefix   Port Range             
    
                fe-rule              100       Allow    192.168.1.0/24  *             *                1433           TCP     
                ALLOW VNET INBOUND   65000     Allow    VIRTUAL_NETWORK *             VIRTUAL_NETWORK  *              *       
                ALLOW AZURE LOAD     65001     Allow    AZURE_LOADBALAN *             *                *              *       
                BALANCER INBOUND                        CER                                                                   
                DENY ALL INBOUND     65500     Deny     *               *             *                *              *       
    
                   Type: Outbound
    
                Name                 Priority  Action   Source Address  Source Port   Destination      Destination    Protocol
                                                        Prefix          Range         Address Prefix   Port Range             
    
                block-internet       200       Deny     *               *             INTERNET         *              *       
                ALLOW VNET OUTBOUND  65000     Allow    VIRTUAL_NETWORK *             VIRTUAL_NETWORK  *              *       
                ALLOW INTERNET       65001     Allow    *               *             INTERNET         *              *       
                OUTBOUND                                                                                                      
                DENY ALL OUTBOUND    65500     Deny     *               *             *                *              *