Come creare gruppi di sicurezza di rete (in modalità classica) nell'interfaccia della riga di comando di AzureHow to create NSGs (classic) in the Azure CLI

È 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.You can use an NSG to control traffic to one or more virtual machines (VMs), role instances, network adapters (NICs), or subnets in your virtual network. 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.An NSG contains access control rules that allow or deny traffic based on traffic direction, protocol, source address and port, and destination address and port. 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.The rules of an NSG can be changed at any time, and changes are applied to all associated instances.

Per ulteriori informazioni su NSGs, visitare Informazioni su NSG.For more information about NSGs, visit what is an 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.Before you work with Azure resources, it's important to understand that Azure currently has two deployment models: Azure Resource Manager and classic. È importante comprendere i modelli e strumenti di distribuzione prima di lavorare con le risorse di Azure.Make sure you understand deployment models and tools before you work with any Azure resource. È possibile visualizzare la documentazione relativa a diversi strumenti facendo clic sulle schede nella parte superiore di questo articolo.You can view the documentation for different tools by clicking the tabs at the top of this article.

In questo articolo viene illustrato il modello di distribuzione classica.This article covers the classic deployment model. È inoltre possibile creare gruppi di sicurezza di rete nel modello di distribuzione di Gestione risorse.You can also create NSGs in the Resource Manager deployment model.

ScenarioScenario

Per illustrare meglio come creare un NSG, in questo documento verrà utilizzato lo scenario seguente.To better illustrate how to create NSGs, this document will use the scenario below.

Scenario di una rete virtuale

In questo scenario si creerà un NSG per ogni subnet nella rete virtuale TestVNet , come illustrato di seguito:In this scenario you will create an NSG for each subnet in the TestVNet virtual network, as described below:

  • NSG-FrontEnd.NSG-FrontEnd. Il front-end NSG verrà applicato per il subnet front-end , e contiene due regole:The front end NSG will be applied to the FrontEnd subnet, and contain two rules:
    • regola-rdp.rdp-rule. Questa regola consente il traffico RDP verso il subnet front-end .This rule will allow RDP traffic to the FrontEnd subnet.
    • regola-web.web-rule. Questa regola consente il traffico HTTP verso il subnet front-end .This rule will allow HTTP traffic to the FrontEnd subnet.
  • Back-end di NSG.NSG-BackEnd. Il back-end NSG verrà applicato per il subnet back-end , e contiene due regole:The back end NSG will be applied to the BackEnd subnet, and contain two rules:
    • regola sql.sql-rule. Questa regola consente il traffico SQL solo dal subnet front-end .This rule allows SQL traffic only from the FrontEnd subnet.
    • regola-web.web-rule. Questa regola nega tutto il traffico associato ad internet proveniente dal subnet back-end .This rule denies all internet bound traffic from the BackEnd subnet.

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.The combination of these rules create a DMZ-like scenario, where the back end subnet can only receive incoming traffic for SQL from the front end subnet, and has no access to the Internet, while the front end subnet can communicate with the Internet, and receive incoming HTTP requests only.

I comandi di esempio dell'interfaccia della riga di comando di Azure riportati di seguito prevedono un ambiente semplice già creato in base allo scenario precedente.The sample Azure CLI commands below expect a simple environment already created based on the scenario above. Se si desidera eseguire i comandi illustrati in questo documento, creare prima di tutto l'ambiente di testing creando una rete virtuale.If you want to run the commands as they are displayed in this document, first build the test environment by creating a VNet.

Come creare il gruppo di sicurezza di rete per la subnet front-endHow to create the NSG for the front end subnet

Per creare un gruppo di sicurezza di rete denominato NSG-FrontEnd in base allo scenario precedente, seguire questa procedura.To create an NSG named named NSG-FrontEnd based on the scenario above, follow the steps below.

  1. Se l'interfaccia della riga di comando di Azure non è mai stata usata, vedere Installare e configurare l'interfaccia della riga di comando di Azure e seguire le istruzioni fino al punto in cui si selezionano l'account e la sottoscrizione di Azure.If you have never used Azure CLI, see Install and Configure the Azure CLI and follow the instructions up to the point where you select your Azure account and subscription.
  2. Eseguire il comando azure config mode per passare alla modalità classica, come illustrato di seguito.Run the azure config mode command to switch to classic mode, as shown below.

     azure config mode asm
    

    Output previsto:Expected output:

     info:    New mode is asm
    
  3. Eseguire il comando azure network nsg create per creare un gruppo di sicurezza di rete.Run the azure network nsg create command to create an NSG.

     azure network nsg create -l uswest -n NSG-FrontEnd
    

    Output previsto:Expected output:

     info:    Executing command network nsg create
     info:    Creating a network security group "NSG-FrontEnd"
     info:    Looking up the network security group "NSG-FrontEnd"
     data:    Name                            : NSG-FrontEnd
     data:    Location                        : West US
     data:    Security group rules:
     data:    Name                               Source IP           Source Port  Destination IP   Destination Port  Protocol  Type      Action  Prior
     ity  Default
     data:    ---------------------------------  ------------------  -----------  ---------------  ----------------  --------  --------  ------  -----
     ---  -------
     data:    ALLOW VNET OUTBOUND                VIRTUAL_NETWORK     *            VIRTUAL_NETWORK  *                 *         Outbound  Allow   65000
          true   
     data:    ALLOW VNET INBOUND                 VIRTUAL_NETWORK     *            VIRTUAL_NETWORK  *                 *         Inbound   Allow   65000
          true   
     data:    ALLOW AZURE LOAD BALANCER INBOUND  AZURE_LOADBALANCER  *            *                *                 *         Inbound   Allow   65001
          true   
     data:    ALLOW INTERNET OUTBOUND            *                   *            INTERNET         *                 *         Outbound  Allow   65001
          true   
     data:    DENY ALL OUTBOUND                  *                   *            *                *                 *         Outbound  Deny    65500
          true   
     data:    DENY ALL INBOUND                   *                   *            *                *                 *         Inbound   Deny    65500
          true   
     info:    network nsg create command OK
    

    ParametriParameters:

    • -l (o --location).-l (or --location). Area di Azure in cui verrà creato il nuovo gruppo di sicurezza di rete.Azure region where the new NSG will be created. Per questo scenario, westus.For our scenario, westus.
    • -n (o --name).-n (or --name). Nome per il nuovo gruppo di sicurezza di rete.Name for the new NSG. Per questo scenario, NSG-FrontEnd.For our scenario, NSG-FrontEnd.
  4. Eseguire il comando azure network nsg rule create per creare una regola che consenta l'accesso alla porta 3389 (RDP) da Internet.Run the azure network nsg rule create command to create a rule that allows access to port 3389 (RDP) from the Internet.

     azure network nsg rule create -a NSG-FrontEnd -n rdp-rule -c Allow -p Tcp -r Inbound -y 100 -f Internet -o * -e * -u 3389
    

    Output previsto:Expected output:

     info:    Executing command network nsg rule create
     info:    Looking up the network security group "NSG-FrontEnd"
     info:    Creating a network security rule "rdp-rule"
     info:    Looking up the network security group "NSG-FrontEnd"
     data:    Name                            : rdp-rule
     data:    Source address prefix           : INTERNET
     data:    Source Port                     : *
     data:    Destination address prefix      : *
     data:    Destination Port                : 3389
     data:    Protocol                        : TCP
     data:    Type                            : Inbound
     data:    Action                          : Allow
     data:    Priority                        : 100
     info:    network nsg rule create command OK
    

    ParametriParameters:

    • -a (o --nsg-name).-a (or --nsg-name). Nome del gruppo di sicurezza di rete in cui verrà creata la regola.Name of the NSG in which the rule will be created. Per questo scenario, NSG-FrontEnd.For our scenario, NSG-FrontEnd.
    • -n (o --name).-n (or --name). Nome per la nuova regola.Name for the new rule. Per questo scenario, rdp-rule.For our scenario, rdp-rule.
    • -c (o --action).-c (or --action). Livello di accesso per la regola (Deny o Allow).Access level for the rule (Deny or Allow).
    • -p (o --protocol).-p (or --protocol). Protocollo (Tcp, Udp o *) per la regola.Protocol (Tcp, Udp, or *) for the rule.
    • -r (o --type).-r (or --type). Direzione di connessione (Inbound o Outbound).Direction of connection (Inbound or Outbound).
    • -y (o --priority).-y (or --priority). Priorità per la regola.Priority for the rule.
    • -f (o --source-address-prefix).-f (or --source-address-prefix). Prefisso dell'indirizzo di origine in CIDR o con tag predefiniti.Source address prefix in CIDR or using default tags.
    • -o (o --source-port-range).-o (or --source-port-range). Porta o intervallo di porte di origine.Source port, or port range.
    • -e (o --destination-address-prefix).-e (or --destination-address-prefix). Prefisso dell'indirizzo di destinazione in CIDR o con tag predefiniti.Destination address prefix in CIDR or using default tags.
    • -u (o --destination-port-range).-u (or --destination-port-range). Porta o intervallo di porte di destinazione.Destination port, or port range.
  5. Eseguire il comando azure network nsg rule create per creare una regola che consenta l'accesso alla porta 80 (HTTP) da Internet.Run the azure network nsg rule create command to create a rule that allows access to port 80 (HTTP) from the Internet.

     azure network nsg rule create -a NSG-FrontEnd -n web-rule -c Allow -p Tcp -r Inbound -y 200 -f Internet -o * -e * -u 80
    

    Output previsto:Expected putput:

     info:    Executing command network nsg rule create
     info:    Looking up the network security group "NSG-FrontEnd"
     info:    Creating a network security rule "web-rule"
     info:    Looking up the network security group "NSG-FrontEnd"
     data:    Name                            : web-rule
     data:    Source address prefix           : INTERNET
     data:    Source Port                     : *
     data:    Destination address prefix      : *
     data:    Destination Port                : 80
     data:    Protocol                        : TCP
     data:    Type                            : Inbound
     data:    Action                          : Allow
     data:    Priority                        : 200
     info:    network nsg rule create command OK
    
  6. Eseguire il comando azure network nsg subnet add per collegare il gruppo di sicurezza di rete alla subnet front-end.Run the azure network nsg subnet add command to link the NSG to the front end subnet.

     azure network nsg subnet add -a NSG-FrontEnd --vnet-name TestVNet --subnet-name FrontEnd
    

    Output previsto:Expected output:

     info:    Executing command network nsg subnet add
     info:    Looking up the network security group "NSG-FrontEnd"
     info:    Looking up the subnet "FrontEnd"
     info:    Looking up network configuration
     info:    Creating a network security group "NSG-FrontEnd"
     info:    network nsg subnet add command OK
    

Come creare il gruppo di sicurezza di rete per la subnet back-endHow to create the NSG for the back end subnet

Per creare un gruppo di sicurezza di rete denominato NSG-BackEnd in base allo scenario precedente, seguire questa procedura.To create an NSG named named NSG-BackEnd based on the scenario above, follow the steps below.

  1. Eseguire il comando azure network nsg create per creare un gruppo di sicurezza di rete.Run the azure network nsg create command to create an NSG.

     azure network nsg create -l uswest -n NSG-BackEnd
    

    Output previsto:Expected output:

     info:    Executing command network nsg create
     info:    Creating a network security group "NSG-BackEnd"
     info:    Looking up the network security group "NSG-BackEnd"
     data:    Name                            : NSG-BackEnd
     data:    Location                        : West US
     data:    Security group rules:
     data:    Name                               Source IP           Source Port  Destination IP   Destination Port  Protocol  Type      Action  Prior
     ity  Default
     data:    ---------------------------------  ------------------  -----------  ---------------  ----------------  --------  --------  ------  -----
     ---  -------
     data:    ALLOW VNET OUTBOUND                VIRTUAL_NETWORK     *            VIRTUAL_NETWORK  *                 *         Outbound  Allow   65000
          true   
     data:    ALLOW VNET INBOUND                 VIRTUAL_NETWORK     *            VIRTUAL_NETWORK  *                 *         Inbound   Allow   65000
          true   
     data:    ALLOW AZURE LOAD BALANCER INBOUND  AZURE_LOADBALANCER  *            *                *                 *         Inbound   Allow   65001
          true   
     data:    ALLOW INTERNET OUTBOUND            *                   *            INTERNET         *                 *         Outbound  Allow   65001
          true   
     data:    DENY ALL OUTBOUND                  *                   *            *                *                 *         Outbound  Deny    65500
          true   
     data:    DENY ALL INBOUND                   *                   *            *                *                 *         Inbound   Deny    65500
          true   
     info:    network nsg create command OK
    

    ParametriParameters:

    • -l (o --location).-l (or --location). Area di Azure in cui verrà creato il nuovo gruppo di sicurezza di rete.Azure region where the new NSG will be created. Per questo scenario, westus.For our scenario, westus.
    • -n (o --name).-n (or --name). Nome per il nuovo gruppo di sicurezza di rete.Name for the new NSG. Per questo scenario, NSG-FrontEnd.For our scenario, NSG-FrontEnd.
  2. Eseguire il comando azure network nsg rule create per creare una regola che consenta l'accesso alla porta 1433 (SQL) dalla subnet front-end.Run the azure network nsg rule create command to create a rule that allows access to port 1433 (SQL) from the front end subnet.

     azure network nsg rule create -a NSG-BackEnd -n sql-rule -c Allow -p Tcp -r Inbound -y 100 -f 192.168.1.0/24 -o * -e * -u 1433
    

    Output previsto:Expected output:

     info:    Executing command network nsg rule create
     info:    Looking up the network security group "NSG-BackEnd"
     info:    Creating a network security rule "sql-rule"
     info:    Looking up the network security group "NSG-BackEnd"
     data:    Name                            : sql-rule
     data:    Source address prefix           : 192.168.1.0/24
     data:    Source Port                     : *
     data:    Destination address prefix      : *
     data:    Destination Port                : 1433
     data:    Protocol                        : TCP
     data:    Type                            : Inbound
     data:    Action                          : Allow
     data:    Priority                        : 100
     info:    network nsg rule create command OK
    
  3. Eseguire il comando azure network nsg rule create per creare una regola che neghi l'accesso a Internet.Run the azure network nsg rule create command to create a rule that denies access to the Internet.

     azure network nsg rule create -a NSG-BackEnd -n web-rule -c Deny -p Tcp -r Outbound -y 200 -f * -o * -e Internet -u 80
    

    Output previsto:Expected putput:

     info:    Executing command network nsg rule create
     info:    Looking up the network security group "NSG-BackEnd"
     info:    Creating a network security rule "web-rule"
     info:    Looking up the network security group "NSG-BackEnd"
     data:    Name                            : web-rule
     data:    Source address prefix           : *
     data:    Source Port                     : *
     data:    Destination address prefix      : INTERNET
     data:    Destination Port                : 80
     data:    Protocol                        : TCP
     data:    Type                            : Outbound
     data:    Action                          : Deny
     data:    Priority                        : 200
     info:    network nsg rule create command OK
    
  4. Eseguire il comando azure network nsg subnet add per collegare il gruppo di sicurezza di rete alla subnet back-end.Run the azure network nsg subnet add command to link the NSG to the back end subnet.

     azure network nsg subnet add -a NSG-BackEnd --vnet-name TestVNet --subnet-name BackEnd
    

    Output previsto:Expected output:

     info:    Executing command network nsg subnet add
     info:    Looking up the network security group "NSG-BackEndX"
     info:    Looking up the subnet "BackEnd"
     info:    Looking up network configuration
     info:    Creating a network security group "NSG-BackEndX"
     info:    network nsg subnet add command OK