Esempio 1: Creare una rete perimetrale semplice usando gruppi di sicurezza di rete con un modello di Azure Resource ManagerExample 1 – Build a simple DMZ using NSGs with an Azure Resource Manager template

Tornare alla pagina relativa alle procedure consigliate sui limiti di sicurezzaReturn to the Security Boundary Best Practices Page

Questo esempio descrive come creare una rete perimetrale primitiva con quattro server Windows e gruppi di sicurezza di rete.This example creates a primitive DMZ with four Windows servers and Network Security Groups. Per comprendere in modo approfondito ogni passaggio, questo esempio descrive tutte le sezioni del modello pertinenti.This example describes each of the relevant template sections to provide a deeper understanding of each step. È disponibile anche una sezione sugli scenari di traffico con istruzioni dettagliate sul percorso seguito dal traffico attraverso i livelli di difesa della rete perimetrale.There is also a Traffic Scenario section to provide an in-depth step-by-step look at how traffic proceeds through the layers of defense in the DMZ. La sezione Riferimenti, infine, include le istruzioni e il codice del modello completi per creare l'ambiente per testare e sperimentare vari scenari.Finally, in the references section is the complete template code and instructions to build this environment to test and experiment with various scenarios.

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.

Rete perimetrale in ingresso con gruppo di sicurezza di reteInbound DMZ with NSG

Descrizione dell'ambienteEnvironment description

Una sottoscrizione in questo esempio include le risorse seguenti:In this example a subscription contains the following resources:

  • Un unico gruppo di risorseA single resource group
  • Una rete virtuale con due subnet: front-end e back-endA Virtual Network with two subnets; “FrontEnd” and “BackEnd”
  • Un gruppo di sicurezza di rete applicato a entrambe le subnetA Network Security Group that is applied to both subnets
  • Un server Windows che rappresenta un server Web applicazioni ("IIS01")A Windows Server that represents an application web server (“IIS01”)
  • Due server Windows che rappresentano i server applicazioni back-end ("AppVM01", "AppVM02")Two windows servers that represent application back-end servers (“AppVM01”, “AppVM02”)
  • Un server Windows che rappresenta un server DNS ("DNS01")A Windows server that represents a DNS server (“DNS01”)
  • Un indirizzo IP pubblico associato al server Web applicazioniA public IP address associated with the application web server

Un collegamento nella sezione Riferimenti a un modello di Azure Resource Manager compila l'ambiente descritto in questo esempio.In the references section, there is a link to an Azure Resource Manager template that builds the environment described in this example. La creazione di VM e reti virtuali, anche se eseguita dal modello di esempio, non è descritta in dettaglio in questo documento.Building the VMs and Virtual Networks, although done by the example template, are not described in detail in this document.

Per compilare questo ambiente. Istruzioni dettagliate sono disponibili nella sezione Riferimenti di questo documento;To build this environment (detailed instructions are in the references section of this document);

  1. Distribuire il modello di Azure Resource Manager in Modelli di avvio rapido di AzureDeploy the Azure Resource Manager Template at: Azure Quickstart Templates
  2. Installare l'applicazione di esempio in: Script di applicazione di esempioInstall the sample application at: Sample Application Script

Nota

Per eseguire la connessione tramite RDP ai server back-end in questa istanza, il server IIS viene usato come "jumpbox".To RDP to any back-end servers in this instance, the IIS server is used as a "jump box." Eseguire prima la connessione tramite RDP al server IIS e, quindi, dal server IIS eseguire la connessione tramite RDP al server back-end.First RDP to the IIS server and then from the IIS Server RDP to the back-end server. In alternativa è possibile associare un indirizzo IP alla scheda di interfaccia di rete di ogni server per semplificare la connessione tramite RDP.Alternately a Public IP can be associated with each server NIC for easier RDP.

Le sezioni seguenti descrivono in modo dettagliato il gruppo di sicurezza di rete e il relativo funzionamento per questo esempio spiegando le righe principali del modello di Azure Resource Manager.The following sections provide a detailed description of the Network Security Group and how it functions for this example by walking through key lines of the Azure Resource Manager Template.

Gruppi di sicurezza di rete (NGS)Network Security Groups (NSG)

Per questo esempio viene creato un gruppo di sicurezza di rete, in cui vengono caricate sei regole.For this example, an NSG group is built and then loaded with six rules.

Suggerimento

In genere, è consigliabile creare prima di tutto le regole specifiche di tipo "Consenti" e infine le regole di tipo "Nega" più generiche.Generally speaking, you should create your specific “Allow” rules first and then the more generic “Deny” rules last. La priorità assegnata determina quali regole vengono valutate per prime.The assigned priority dictates which rules are evaluated first. Quando si rileva che al traffico è applicabile una determinata regola, non vengono valutate altre regole.Once traffic is found to apply to a specific rule, no further rules are evaluated. Le regole del gruppo di sicurezza di rete possono essere applicate nella direzione in ingresso o in uscita, dal punto di vista della subnet.NSG rules can apply in either in the inbound or outbound direction (from the perspective of the subnet).

A livello dichiarativo, per il traffico in ingresso vengono create le righe seguenti:Declaratively, the following rules are being built for inbound traffic:

  1. Il traffico DNS interno (porta 53) è consentito.Internal DNS traffic (port 53) is allowed
  2. Il traffico RDP (porta 3389) da Internet a qualsiasi macchina virtuale è consentito.RDP traffic (port 3389) from the Internet to any VM is allowed
  3. Il traffico HTTP (porta 80) da Internet al server Web (IIS01) è consentito.HTTP traffic (port 80) from the Internet to web server (IIS01) is allowed
  4. Tutto il traffico (tutte le porte) da IIS01 ad AppVM1 è consentito.Any traffic (all ports) from IIS01 to AppVM1 is allowed
  5. Tutto il traffico (tutte le porte) da Internet all'intera rete virtuale (entrambe le subnet) viene bloccato.Any traffic (all ports) from the Internet to the entire VNet (both subnets) is Denied
  6. Tutto il traffico (tutte le porte) dalla subnet front-end alla subnet back-end viene bloccato.Any traffic (all ports) from the Frontend subnet to the Backend subnet is Denied

Con queste regole associate a ogni subnet, se una richiesta HTTP proviene da Internet ed è diretta verso il server Web, le regole 3 (consenti) e 5 (nega) saranno applicabili, ma poiché la regola 3 ha una priorità maggiore, verrà applicata solo tale regola e la regola 5 non verrà presa in considerazione.With these rules bound to each subnet, if an HTTP request was inbound from the Internet to the web server, both rules 3 (allow) and 5 (deny) would apply, but since rule 3 has a higher priority only it would apply and rule 5 would not come into play. La richiesta HTTP verrà quindi consentita sul server Web.Thus the HTTP request would be allowed to the web server. Se lo stesso traffico prova a raggiungere il server DNS01, la regola 5 (nega) sarà la prima applicabile e il traffico non sarà autorizzato a passare al server.If that same traffic was trying to reach the DNS01 server, rule 5 (Deny) would be the first to apply and the traffic would not be allowed to pass to the server. La regola 6 (nega) impedisce alla subnet front-end di comunicare con la subnet back-end, ad eccezione del traffico consentito nelle regole 1 e 4; questo set di regole protegge la rete back-end nel caso in cui un utente malintenzionato comprometta l'applicazione Web sul front-end. L'utente malintenzionato avrà infatti accesso limitato alla rete "protetta" back-end, ovvero solo alle risorse esposte nel server AppVM01.Rule 6 (Deny) blocks the Frontend subnet from talking to the Backend subnet (except for allowed traffic in rules 1 and 4), this rule-set protects the Backend network in case an attacker compromises the web application on the Frontend, the attacker would have limited access to the Backend “protected” network (only to resources exposed on the AppVM01 server).

Esiste una regola in uscita predefinita che consente il traffico in uscita verso Internet.There is a default outbound rule that allows traffic out to the internet. Per questo esempio si consente il traffico in uscita e non si modificano le regole in uscita.For this example, we’re allowing outbound traffic and not modifying any outbound rules. Per applicare criteri di sicurezza al traffico in entrambe le direzioni, è obbligatorio il routing definito dall'utente, descritto nell'"Esempio 3" della pagina relativa alle procedure consigliate sui limiti di sicurezza.To apply security policy to traffic in both directions, User Defined Routing is required and is explored in “Example 3” on the Security Boundary Best Practices Page.

Ogni regola viene illustrata in dettaglio nel modo seguente:Each rule is discussed in more detail as follows:

  1. È necessario creare l'istanza della risorsa gruppo di sicurezza di rete per inserire le regole:A Network Security Group resource must be instantiated to hold the rules:

    "resources": [
      {
        "apiVersion": "2015-05-01-preview",
        "type": "Microsoft.Network/networkSecurityGroups",
        "name": "[variables('NSGName')]",
        "location": "[resourceGroup().location]",
        "properties": { }
      }
    ]
    
  2. La prima regola in questo esempio consente il traffico DNS fra tutte le reti interne al server DNS nella subnet back-end.The first rule in this example allows DNS traffic between all internal networks to the DNS server on the backend subnet. Nella regola sono inclusi alcuni parametri importanti:The rule has some important parameters:

    • Questi tag sono identificatori forniti dal sistema che consentono di gestire in modo semplice una categoria più ampia di prefissi di indirizzi; "destinationAddressPrefix": le regole possono usare un tipo speciale di prefisso denominato "Tag predefinito"."destinationAddressPrefix" - Rules can use a special type of address prefix called a "Default Tag", these tags are system-provided identifiers that allow an easy way to address a larger category of address prefixes. Questa regola usa il tag predefinito "Internet" per indicare qualsiasi indirizzo all'esterno della rete virtuale.This rule uses the Default Tag “Internet” to signify any address outside of the VNet. Altre etichette di prefisso sono VirtualNetwork e AzureLoadBalancer.Other prefix labels are VirtualNetwork and AzureLoadBalancer.
    • "Direction" indica la direzione del flusso di traffico a cui verrà applicata questa regola“Direction” signifies in which direction of traffic flow this rule takes effect. dal punto di vista della subnet o della macchina virtuale, a seconda della posizione a cui è associato il gruppo di sicurezza di rete.The direction is from the perspective of the subnet or Virtual Machine (depending on where this NSG is bound). Se Direction è impostato su "Inbound", la regola verrà applicata al traffico in ingresso nella subnet, ma non al traffico in uscita da essa.Thus if Direction is “Inbound” and traffic is entering the subnet, the rule would apply and traffic leaving the subnet would not be affected by this rule.
    • "Priority" consente di impostare l'ordine in base al quale viene valutato un flusso di traffico.“Priority” sets the order in which a traffic flow is evaluated. Più è basso il numero, maggiore sarà la priorità.The lower the number the higher the priority. Quando un flusso di traffico specifico è applicabile a una determinata regola, non vengono elaborate altre regole.When a rule applies to a specific traffic flow, no further rules are processed. Se quindi una regola con priorità 1 consente il traffico e una regola con priorità 2 lo blocca ed entrambe le regole sono applicabili, il passaggio del traffico viene consentito perché viene applicata la regola 1 con priorità più alta e non vengono considerate altre regole.Thus if a rule with priority 1 allows traffic, and a rule with priority 2 denies traffic, and both rules apply to traffic then the traffic would be allowed to flow (since rule 1 had a higher priority it took effect and no further rules were applied).
    • "Access" indica se il traffico a cui si applica la regola viene bloccato ("Deny") o consentito ("Allow").“Access” signifies if traffic affected by this rule is blocked ("Deny") or allowed ("Allow").

      "properties": {
      "securityRules": [
       {
         "name": "enable_dns_rule",
         "properties": {
           "description": "Enable Internal DNS",
           "protocol": "*",
           "sourcePortRange": "*",
           "destinationPortRange": "53",
           "sourceAddressPrefix": "VirtualNetwork",
           "destinationAddressPrefix": "10.0.2.4",
           "access": "Allow",
           "priority": 100,
           "direction": "Inbound"
         }
       },
      
  3. Questa regola consente il flusso del traffico RDP da Internet alla porta RDP su qualsiasi server sulla subnet associata.This rule allows RDP traffic to flow from the internet to the RDP port on any server on the bound subnet.

    {
      "name": "enable_rdp_rule",
      "properties": {
        "description": "Allow RDP",
        "protocol": "Tcp",
        "sourcePortRange": "*",
        "destinationPortRange": "3389",
        "sourceAddressPrefix": "*",
        "destinationAddressPrefix": "*",
        "access": "Allow",
        "priority": 110,
        "direction": "Inbound"
      }
    },
    
  4. Questa regola consente al traffico Internet in ingresso di raggiungere il server Web.This rule allows inbound internet traffic to hit the web server. Il comportamento di routing rimane invariato,This rule does not change the routing behavior. ma il traffico destinato a IIS01 può transitare.The rule only allows traffic destined for IIS01 to pass. Se quindi il traffico proveniente da Internet ha come destinazione il server Web, viene consentito e non vengono elaborate altre regoleThus if traffic from the Internet had the web server as its destination this rule would allow it and stop processing further rules. (nella regola con priorità 140 viene bloccato qualsiasi altro tipo di traffico Internet in ingresso).(In the rule at priority 140 all other inbound internet traffic is blocked). Se si elabora soltanto traffico HTTP, questa regola può essere limitata ulteriormente in modo da consentire esclusivamente la porta di destinazione 80.If you're only processing HTTP traffic, this rule could be further restricted to only allow Destination Port 80.

    {
      "name": "enable_web_rule",
      "properties": {
        "description": "Enable Internet to [variables('VM01Name')]",
        "protocol": "Tcp",
        "sourcePortRange": "*",
        "destinationPortRange": "80",
        "sourceAddressPrefix": "Internet",
        "destinationAddressPrefix": "10.0.1.5",
        "access": "Allow",
        "priority": 120,
        "direction": "Inbound"
        }
      },
    
  5. Questa regola consente il passaggio del traffico dal server IIS01 al server AppVM01 e una regola successiva blocca tutto il resto del traffico dal front-end al back-end.This rule allows traffic to pass from the IIS01 server to the AppVM01 server, a later rule blocks all other Frontend to Backend traffic. Per migliorare la regola, è consigliabile aggiungere la porta, se è nota.To improve this rule, if the port is known that should be added. Ad esempio, se il server IIS ha necessità di raggiungere solo SQL Server in AppVM01, l'impostazione dell'intervallo delle porte di destinazione (DestinationPortRange) deve essere modificata da "" (qualsiasi) a 1433 (porta SQL), in modo da esporre una superficie di attacco più limitata in AppVM01 nel caso l'applicazione Web venisse compromessa.For example, if the IIS server is hitting only SQL Server on AppVM01, the Destination Port Range should be changed from “” (Any) to 1433 (the SQL port) thus allowing a smaller inbound attack surface on AppVM01 should the web application ever be compromised.

    {
      "name": "enable_app_rule",
      "properties": {
        "description": "Enable [variables('VM01Name')] to [variables('VM02Name')]",
        "protocol": "*",
        "sourcePortRange": "*",
        "destinationPortRange": "*",
        "sourceAddressPrefix": "10.0.1.5",
        "destinationAddressPrefix": "10.0.2.5",
        "access": "Allow",
        "priority": 130,
        "direction": "Inbound"
      }
    },
    
  6. Questa regola blocca il traffico da Internet a qualsiasi server della rete.This rule denies traffic from the internet to any servers on the network. Insieme alla regola con priorità 110 e 120, consente esclusivamente il traffico Internet in ingresso diretto al firewall e alle porte RDP sui server e blocca tutto il traffico restante.With the rules at priority 110 and 120, the effect is to allow only inbound internet traffic to the firewall and RDP ports on servers and blocks everything else. Questa regola è di tipo fail-safe per bloccare tutti i flussi imprevisti.This rule is a "fail-safe" rule to block all unexpected flows.

    {
      "name": "deny_internet_rule",
      "properties": {
        "description": "Isolate the [variables('VNetName')] VNet from the Internet",
        "protocol": "*",
        "sourcePortRange": "*",
        "destinationPortRange": "*",
        "sourceAddressPrefix": "Internet",
        "destinationAddressPrefix": "VirtualNetwork",
        "access": "Deny",
        "priority": 140,
        "direction": "Inbound"
      }
    },
    
  7. La regola finale blocca il traffico dalla subnet front-end alla subnet back-end.The final rule denies traffic from the Frontend subnet to the Backend subnet. Poiché si tratta di una regola solo di tipo Inbound, il traffico in direzione opposta è consentito (dal back-end al front-end).Since this rule is an Inbound only rule, reverse traffic is allowed (from the Backend to the Frontend).

    {
      "name": "deny_frontend_rule",
      "properties": {
        "description": "Isolate the [variables('Subnet1Name')] subnet from the [variables('Subnet2Name')] subnet",
        "protocol": "*",
        "sourcePortRange": "*",
        "destinationPortRange": "*",
        "sourceAddressPrefix": "[variables('Subnet1Prefix')]",
        "destinationAddressPrefix": "[variables('Subnet2Prefix')]",
        "access": "Deny",
        "priority": 150,
        "direction": "Inbound"
      }
    }
    

Scenari di trafficoTraffic scenarios

(Consentito) Da Internet al server Web(Allowed) Internet to web server

  1. Un utente su Internet richiede una pagina HTTP dall'indirizzo IP pubblico della scheda di interfaccia di rete associata alla scheda di interfaccia di rete di IIS01An internet user requests an HTTP page from the public IP address of the NIC associated with the IIS01 NIC
  2. L'indirizzo IP pubblico passa il traffico alla rete virtuale verso IIS01 (il server Web)The Public IP address passes traffic to the VNet towards IIS01 (the web server)
  3. La subnet front-end inizia l'elaborazione delle regole in ingresso:Frontend subnet begins inbound rule processing:
    1. Regola gruppo di sicurezza di rete 1 (DNS) non applicabile, passa alla regola successiva.NSG Rule 1 (DNS) doesn’t apply, move to next rule
    2. Regola gruppo di sicurezza di rete 2 (RDP) non applicabile, passa alla regola successiva.NSG Rule 2 (RDP) doesn’t apply, move to next rule
    3. Regola gruppo di sicurezza di rete 3 (da Internet a IIS01) applicabile, il traffico è consentito, l'elaborazione delle regole si arresta.NSG Rule 3 (Internet to IIS01) does apply, traffic is allowed, stop rule processing
  4. Il traffico raggiunge l'indirizzo IP interno del server Web IIS01 (10.0.1.5).Traffic hits internal IP address of the web server IIS01 (10.0.1.5)
  5. IIS01 è in ascolto del traffico Web, riceve la richiesta e ne avvia l'elaborazione.IIS01 is listening for web traffic, receives this request and starts processing the request
  6. IIS01 chiede informazioni a SQL Server in AppVM01.IIS01 asks the SQL Server on AppVM01 for information
  7. Non sono impostate regole in uscita sulla subnet front-end, il traffico è consentito.No outbound rules on Frontend subnet, traffic is allowed
  8. La subnet back-end inizia l'elaborazione delle regole in ingresso:The Backend subnet begins inbound rule processing:
    1. Regola gruppo di sicurezza di rete 1 (DNS) non applicabile, passa alla regola successiva.NSG Rule 1 (DNS) doesn’t apply, move to next rule
    2. Regola gruppo di sicurezza di rete 2 (RDP) non applicabile, passa alla regola successiva.NSG Rule 2 (RDP) doesn’t apply, move to next rule
    3. Regola gruppo di sicurezza di rete 3 (da Internet a firewall), non applicabile, passa alla regola successiva.NSG Rule 3 (Internet to Firewall) doesn’t apply, move to next rule
    4. Regola gruppo di sicurezza di rete 4 (da IIS01 ad AppVM01) applicabile, il traffico è consentito, l'elaborazione delle regole si arresta.NSG Rule 4 (IIS01 to AppVM01) does apply, traffic is allowed, stop rule processing
  9. AppVM01 riceve la query SQL e risponde.AppVM01 receives the SQL Query and responds
  10. Non essendoci regole in uscita sulla subnet back-end, la risposta è consentitaSince there are no outbound rules on the Backend subnet, the response is allowed
  11. La subnet front-end inizia l'elaborazione delle regole in ingresso:Frontend subnet begins inbound rule processing:
    1. Non sono presenti regole del gruppo di sicurezza di rete applicabili al traffico in ingresso dalla subnet back-end alla subnet front-end, quindi nessuna regola del gruppo di sicurezza di rete è applicabile.There is no NSG rule that applies to Inbound traffic from the Backend subnet to the Frontend subnet, so none of the NSG rules apply
    2. La regola di sistema predefinita che consente il traffico tra le subnet consentirebbe questo tipo di traffico, perciò è consentito.The default system rule allowing traffic between subnets would allow this traffic so the traffic is allowed.
  12. Il server IIS riceve la risposta SQL, completa la risposta HTTP e la invia al richiedente.The IIS server receives the SQL response and completes the HTTP response and sends to the requester
  13. Non essendoci regole in uscita sulla subnet front-end, la risposta è consentita e l'utente su Internet riceve la pagina Web richiesta.Since there are no outbound rules on the Frontend subnet, the response is allowed and the Internet User receives the web page requested.

(Consentito) Traffico RDP al server IIS(Allowed) RDP to IIS server

  1. L'amministratore del server su Internet richiede una sessione RDP a IIS01 sull'indirizzo IP pubblico della scheda di interfaccia di rete associata alla scheda di interfaccia di rete di IIS01; questo indirizzo IP pubblico è disponibile tramite il portale o PowerShell.A Server Admin on internet requests an RDP session to IIS01 on the public IP address of the NIC associated with the IIS01 NIC (this public IP address can be found via the Portal or PowerShell)
  2. L'indirizzo IP pubblico passa il traffico alla rete virtuale verso IIS01 (il server Web)The Public IP address passes traffic to the VNet towards IIS01 (the web server)
  3. La subnet front-end inizia l'elaborazione delle regole in ingresso:Frontend subnet begins inbound rule processing:
    1. Regola gruppo di sicurezza di rete 1 (DNS) non applicabile, passa alla regola successiva.NSG Rule 1 (DNS) doesn’t apply, move to next rule
    2. Regola gruppo di sicurezza di rete 2 (RDP) applicabile, il traffico è consentito, l'elaborazione delle regole si arresta.NSG Rule 2 (RDP) does apply, traffic is allowed, stop rule processing
  4. Senza regole in uscita, sono applicabili le regole predefinite e il traffico restituito è consentito.With no outbound rules, default rules apply and return traffic is allowed
  5. La sessione RDP è abilitata.RDP session is enabled
  6. IIS01 richiede il nome utente e la passwordIIS01 prompts for the user name and password

Nota

Per eseguire la connessione tramite RDP ai server back-end in questa istanza, il server IIS viene usato come "jumpbox".To RDP to any back-end servers in this instance, the IIS server is used as a "jump box." Eseguire prima la connessione tramite RDP al server IIS e, quindi, dal server IIS eseguire la connessione tramite RDP al server back-end.First RDP to the IIS server and then from the IIS Server RDP to the back-end server.

(Consentito) Ricerca DNS del server Web sul server DNS(Allowed) Web server DNS look-up on DNS server

  1. Il server Web, IIS01, richiede un feed di dati all'indirizzo www.data.gov, ma deve risolvere l'indirizzo.Web Server, IIS01, needs a data feed at www.data.gov, but needs to resolve the address.
  2. La configurazione di rete per la rete virtuale elenca DNS01 (10.0.2.4 nella subnet back-end) come server DNS primario, IIS01 invia la richiesta DNS a DNS01.The network configuration for the VNet lists DNS01 (10.0.2.4 on the Backend subnet) as the primary DNS server, IIS01 sends the DNS request to DNS01
  3. Non sono impostate regole in uscita sulla subnet front-end, il traffico è consentito.No outbound rules on Frontend subnet, traffic is allowed
  4. La subnet back-end inizia l'elaborazione delle regole in ingresso:Backend subnet begins inbound rule processing:
    • Regola gruppo di sicurezza di rete 1 (DNS) applicabile, il traffico è consentito, l'elaborazione delle regole si arresta.NSG Rule 1 (DNS) does apply, traffic is allowed, stop rule processing
  5. Il server DNS riceve la richiesta.DNS server receives the request
  6. Il server DNS non ha l'indirizzo memorizzato nella cache e invia la richiesta a un server DNS radice su Internet.DNS server doesn’t have the address cached and asks a root DNS server on the internet
  7. Non sono impostate regole in uscita sulla subnet back-end, il traffico è consentito.No outbound rules on Backend subnet, traffic is allowed
  8. Il server DNS Internet risponde perché la sessione è stata avviata internamente, la risposta è consentita.Internet DNS server responds, since this session was initiated internally, the response is allowed
  9. Il server DNS memorizza la risposta nella cache e restituisce a IIS01 la risposta alla richiesta iniziale.DNS server caches the response, and responds to the initial request back to IIS01
  10. Non sono impostate regole in uscita sulla subnet back-end, il traffico è consentito.No outbound rules on Backend subnet, traffic is allowed
  11. La subnet front-end inizia l'elaborazione delle regole in ingresso:Frontend subnet begins inbound rule processing:
    1. Non sono presenti regole del gruppo di sicurezza di rete applicabili al traffico in ingresso dalla subnet back-end alla subnet front-end, quindi nessuna regola del gruppo di sicurezza di rete è applicabile.There is no NSG rule that applies to Inbound traffic from the Backend subnet to the Frontend subnet, so none of the NSG rules apply
    2. La regola di sistema predefinita che consente il traffico tra le subnet consentirebbe questo tipo di traffico, perciò è consentito.The default system rule allowing traffic between subnets would allow this traffic so the traffic is allowed
  12. IIS01 riceve la risposta da DNS01.IIS01 receives the response from DNS01

(Consentito) Il server Web richiede l'accesso a un file in AppVM01(Allowed) Web server access file on AppVM01

  1. IIS01 richiede un file in AppVM01.IIS01 asks for a file on AppVM01
  2. Non sono impostate regole in uscita sulla subnet front-end, il traffico è consentito.No outbound rules on Frontend subnet, traffic is allowed
  3. La subnet back-end inizia l'elaborazione delle regole in ingresso:The Backend subnet begins inbound rule processing:
    1. Regola gruppo di sicurezza di rete 1 (DNS) non applicabile, passa alla regola successiva.NSG Rule 1 (DNS) doesn’t apply, move to next rule
    2. Regola gruppo di sicurezza di rete 2 (RDP) non applicabile, passa alla regola successiva.NSG Rule 2 (RDP) doesn’t apply, move to next rule
    3. Regola gruppo di sicurezza di rete 3 (da Internet a IIS01) non applicabile, passa alla regola successiva.NSG Rule 3 (Internet to IIS01) doesn’t apply, move to next rule
    4. Regola gruppo di sicurezza di rete 4 (da IIS01 ad AppVM01) applicabile, il traffico è consentito, l'elaborazione delle regole si arresta.NSG Rule 4 (IIS01 to AppVM01) does apply, traffic is allowed, stop rule processing
  4. AppVM01 riceve la richiesta e risponde con il file (presupponendo che l'accesso sia autorizzato).AppVM01 receives the request and responds with file (assuming access is authorized)
  5. Non essendoci regole in uscita sulla subnet back-end, la risposta è consentitaSince there are no outbound rules on the Backend subnet, the response is allowed
  6. La subnet front-end inizia l'elaborazione delle regole in ingresso:Frontend subnet begins inbound rule processing:
    1. Non sono presenti regole del gruppo di sicurezza di rete applicabili al traffico in ingresso dalla subnet back-end alla subnet front-end, quindi nessuna regola del gruppo di sicurezza di rete è applicabile.There is no NSG rule that applies to Inbound traffic from the Backend subnet to the Frontend subnet, so none of the NSG rules apply
    2. La regola di sistema predefinita che consente il traffico tra le subnet consentirebbe questo tipo di traffico, perciò è consentito.The default system rule allowing traffic between subnets would allow this traffic so the traffic is allowed.
  7. Il server IIS riceve il file.The IIS server receives the file

(Negato) Traffico RDP al back-end(Denied) RDP to backend

  1. Un utente su Internet tenta di eseguire la connessione tramite RDP al server AppVM01.An internet user tries to RDP to server AppVM01
  2. Non essendoci indirizzi IP pubblici associati alla scheda di interfaccia di rete dei server, il traffico non entra nella rete virtuale e non raggiunge il server.Since there are no Public IP addresses associated with this servers NIC, this traffic would never enter the VNet and wouldn’t reach the server
  3. Se tuttavia per qualunque motivo è stato abilitato un indirizzo IP pubblico, la regola del gruppo di sicurezza di rete 2 (RDP) consentirà questo traffico.However if a Public IP address was enabled for some reason, NSG rule 2 (RDP) would allow this traffic

Nota

Per eseguire la connessione tramite RDP ai server back-end in questa istanza, il server IIS viene usato come "jumpbox".To RDP to any back-end servers in this instance, the IIS server is used as a "jump box." Eseguire prima la connessione tramite RDP al server IIS e, quindi, dal server IIS eseguire la connessione tramite RDP al server back-end.First RDP to the IIS server and then from the IIS Server RDP to the back-end server.

(Negato) Traffico Web al server back-end(Denied) Web to backend server

  1. Un utente su Internet tenta di accedere a un file su AppVM01An internet user tries to access a file on AppVM01
  2. Non essendoci indirizzi IP pubblici associati alla scheda di interfaccia di rete dei server, il traffico non entra nella rete virtuale e non raggiunge il server.Since there are no Public IP addresses associated with this servers NIC, this traffic would never enter the VNet and wouldn’t reach the server
  3. Se per qualunque motivo è stato abilitato un indirizzo IP pubblico, la regola del gruppo di sicurezza di rete 5 (da Internet a rete virtuale) bloccherà questo traffico.If a Public IP address was enabled for some reason, NSG rule 5 (Internet to VNet) would block this traffic

(Negato) Ricerca DNS Web sul server DNS(Denied) Web DNS look-up on DNS server

  1. Un utente su Internet tenta di cercare un record DNS interno su DNS01An internet user tries to look up an internal DNS record on DNS01
  2. Non essendoci indirizzi IP pubblici associati alla scheda di interfaccia di rete dei server, il traffico non entra nella rete virtuale e non raggiunge il server.Since there are no Public IP addresses associated with this servers NIC, this traffic would never enter the VNet and wouldn’t reach the server
  3. Se per qualunque motivo è stato abilitato un indirizzo IP pubblico, la regola del gruppo di sicurezza di rete 5 (da Internet a rete virtuale) bloccherà il traffico. Nota: la regola 1 (DNS) potrebbe non essere applicabile perché l'indirizzo di origine della richieste è Internet e la regola 1 si applica solo alla rete locale virtuale come origine.If a Public IP address was enabled for some reason, NSG rule 5 (Internet to VNet) would block this traffic (Note: that Rule 1 (DNS) would not apply because the requests source address is the internet and Rule 1 only applies to the local VNet as the source)

(Negato) Accesso SQL nel server Web(Denied) SQL access on the web server

  1. Un utente su Internet richiede dati SQL da IIS01An internet user requests SQL data from IIS01
  2. Non essendoci indirizzi IP pubblici associati alla scheda di interfaccia di rete dei server, il traffico non entra nella rete virtuale e non raggiunge il server.Since there are no Public IP addresses associated with this servers NIC, this traffic would never enter the VNet and wouldn’t reach the server
  3. Se per qualunque motivo è stato abilitato un indirizzo IP pubblico, la subnet front-end inizia l'elaborazione delle regole in ingresso:If a Public IP address was enabled for some reason, the Frontend subnet begins inbound rule processing:
    1. Regola gruppo di sicurezza di rete 1 (DNS) non applicabile, passa alla regola successiva.NSG Rule 1 (DNS) doesn’t apply, move to next rule
    2. Regola gruppo di sicurezza di rete 2 (RDP) non applicabile, passa alla regola successiva.NSG Rule 2 (RDP) doesn’t apply, move to next rule
    3. Regola gruppo di sicurezza di rete 3 (da Internet a IIS01) applicabile, il traffico è consentito, l'elaborazione delle regole si arresta.NSG Rule 3 (Internet to IIS01) does apply, traffic is allowed, stop rule processing
  4. Il traffico raggiunge l'indirizzo IP interno di IIS01 (10.0.1.5).Traffic hits internal IP address of the IIS01 (10.0.1.5)
  5. IIS01 non è in ascolto sulla porta 1433, pertanto la richiesta non ottiene risposta.IIS01 isn't listening on port 1433, so no response to the request

ConclusioniConclusion

Questo esempio consente di isolare la subnet back-end dal traffico in ingresso in un modo relativamente semplice e diretto.This example is a relatively simple and straight forward way of isolating the back-end subnet from inbound traffic.

Altri esempi e una panoramica dei limiti di sicurezza della rete sono disponibili qui.More examples and an overview of network security boundaries can be found here.

RiferimentiReferences

Modello di Azure Resource ManagerAzure Resource Manager template

Questo esempio usa un modello di Azure Resource Manager predefinito in un repository GitHub gestito da Microsoft e lo rende disponibile alla community.This example uses a predefined Azure Resource Manager template in a GitHub repository maintained by Microsoft and open to the community. Il modello può essere distribuito immediatamente da GitHub o scaricato e modificato in base alle specifiche esigenze.This template can be deployed straight out of GitHub, or downloaded and modified to fit your needs.

Il modello principale è presente nel file denominato "azuredeploy.json".The main template is in the file named "azuredeploy.json." Questo modello può essere inviato tramite PowerShell o l'interfaccia della riga di comando (con il file "azuredeploy.parameters.json associato") per la distribuzione.This template can be submitted via PowerShell or CLI (with the associated "azuredeploy.parameters.json" file) to deploy this template. Il modo più semplice è usare il pulsante "Deploy to Azure" nella pagina README.md in GitHub.I find the easiest way is to use the "Deploy to Azure" button on the README.md page at GitHub.

Per distribuire il modello che usa questo esempio da GitHub e il portale di Azure, seguire questi passaggi:To deploy the template that builds this example from GitHub and the Azure portal, follow these steps:

  1. Da un browser passare a TemplateFrom a browser, navigate to the Template
  2. Fare clic sul pulsante "Deploy to Azure" oppure su "View" per visualizzare una rappresentazione grafica del modello.Click the "Deploy to Azure" button (or the "Visualize" button to see a graphical representation of this template)
  3. Immettere l'account di archiviazione, il nome utente e la password nel pannello dei parametri, quindi fare clic su OKEnter the Storage Account, User Name, and Password in the Parameters blade, then click OK
  4. Creare un gruppo di risorse per questa distribuzione. È possibile usarne uno esistente, ma è consigliabile creare una nuova istanza per risultati ottimali.Create a Resource Group for this deployment (You can use an existing one, but I recommend a new one for best results)
  5. Se necessario, modificare le impostazioni relative a Sottoscrizione e Località per la rete virtuale.If necessary, change the Subscription and Location settings for your VNet.
  6. Fare clic su Rivedere le note legali, leggere le condizioni e fare clic su Acquista per accettare.Click Review legal terms, read the terms, and click Purchase to agree.
  7. Fare clic su Crea per iniziare la distribuzione di questo modello.Click Create to begin the deployment of this template.
  8. Dopo il corretto completamento della distribuzione, passare al gruppo di risorse creato per questa distribuzione per esaminare le risorse configurate in esso.Once the deployment finishes successfully, navigate to the Resource Group created for this deployment to see the resources configured inside.

Nota

Questo modello consente di eseguire la connessione tramite RDP solo al server IIS01; l'indirizzo IP pubblico per IIS01 è reperibile nel portale.This template enables RDP to the IIS01 server only (find the Public IP for IIS01 on the Portal). Per eseguire la connessione tramite RDP ai server back-end in questa istanza, il server IIS viene usato come "jumpbox".To RDP to any back-end servers in this instance, the IIS server is used as a "jump box." Eseguire prima la connessione tramite RDP al server IIS e, quindi, dal server IIS eseguire la connessione tramite RDP al server back-end.First RDP to the IIS server and then from the IIS Server RDP to the back-end server.

Per rimuovere questa distribuzione, eliminare il gruppo di risorse; verranno eliminate anche tutte le risorse figlio.To remove this deployment, delete the Resource Group and all child resources will also be deleted.

Script di applicazione di esempioSample application scripts

Dopo la corretta esecuzione del modello è possibile configurare il server Web e il server applicazioni con un'applicazione Web di esempio per consentire l'esecuzione di test con questa configurazione della rete perimetrale.Once the template runs successfully, you can set up the web server and app server with a simple web application to allow testing with this DMZ configuration. Per installare un'applicazione di esempio per questo e altri esempi di rete perimetrale, è possibile trovarne una in Script di applicazione di esempioTo install a sample application for this, and other DMZ Examples, one has been provided at the following link: Sample Application Script

Passaggi successiviNext steps

  • Distribuire questo esempioDeploy this example
  • Compilare l'applicazione di esempioBuild the sample application
  • Testare diversi flussi di traffico attraverso la rete perimetraleTest different traffic flows through this DMZ