Configura un criterio firewall di rete globale per abilitare il traffico in entrata


Per impostazione predefinita, in una rete Virtual Private Cloud (VPC) personalizzata con più subnet è consentito il traffico in uscita, ma non quello in entrata. Per abilitare il traffico in entrata e consentire alle istanze VM in subnet diverse di comunicare tra loro, puoi creare criterio firewall di rete globale in Cloud Next Generation Firewall sulla rete VPC, che consente il traffico in entrata da un intervallo di indirizzi IP specifico della subnet.

Questo tutorial descrive come configurare un criterio firewall di rete globale per consentire il traffico interno tra le subnet VM in una rete VPC personalizzata.

Obiettivi

Questo tutorial mostra come completare le seguenti attività:

  • Crea una rete VPC personalizzata con due subnet.
  • Crea due istanze VM Linux (una VM client e una VM server) senza indirizzi IP esterni in subnet distinte della rete VPC.
  • Crea un router Cloud e un gateway Cloud NAT come best practice per scaricare pacchetti software.
  • Installare il server Apache sulla VM server.
  • Crea un criterio firewall di rete globale con le seguenti regole:
    • Consenti il traffico in uscita verso qualsiasi destinazione.
    • Attiva il logging del firewall.
    • Utilizza Identity-Aware Proxy (IAP) per consentire la connettività SSH alle VM.
    • Consenti alla VM client di connettersi alla VM server che esegue il server Apache.
  • Testa la connessione.

Il seguente diagramma mostra il flusso del traffico tra le subnet di una rete VPC personalizzata dopo che un criterio firewall di rete globale consente il traffico interno in entrata.

Un criterio firewall di rete globale che consente il traffico in entrata da una subnet in una rete VPC personalizzata.
Un criterio firewall di rete globale che consente il traffico in entrata da una subnet in una rete VPC personalizzata (fai clic per ingrandire).

Prima di iniziare

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Abilita l'API Compute Engine per il tuo progetto.
  7. Assicurati di disporre del ruolo Identity and Access Management Amministratore rete Compute (roles/compute.networkAdmin).
  8. Se preferisci lavorare dalla riga di comando, installa Google Cloud CLI. Per informazioni concettuali e di installazione sullo strumento, consulta la panoramica dell'interfaccia a riga di comando gcloud.

    Nota:se non hai già eseguito Google Cloud CLI, esegui prima gcloud init per inizializzare la directory gcloud CLI.

Creare una rete VPC personalizzata con subnet

In questa sezione, crei una rete VPC in modalità personalizzata con due subnet IPv4.

Console

  1. Nella console Google Cloud, vai alla pagina Reti VPC.

    Vai a Reti VPC

  2. Fai clic su Crea rete VPC.

  3. In Nome, inserisci vpc-fw-rules.

  4. In Descrizione, inserisci VPC network for the firewall rules tutorial.

  5. In Modalità di creazione subnet, seleziona Personalizzata.

  6. Nella sezione Nuova subnet, specifica i seguenti parametri di configurazione per una subnet:

    • Nome: subnet-fw-rules-server
    • Regione: us-central1 (Iowa)
    • Intervallo IPv4: 10.0.0.0/24
    • Accesso privato Google: On
  7. Fai clic su Fine.

  8. Fai clic su Aggiungi subnet e specifica i seguenti parametri di configurazione:

    • Nome: subnet-fw-rules-client
    • Regione: us-central1 (Iowa)
    • Intervallo IPv4: 192.168.10.0/24
    • Accesso privato Google: On
  9. Fai clic su Fine.

  10. Scorri verso il basso e fai clic su Crea.

gcloud

  1. Per creare una rete VPC, esegui questo comando:

    gcloud compute networks create vpc-fw-rules \
      --subnet-mode=custom \
      --description="VPC network for the firewall rules tutorial"
    
  2. (Facoltativo) Nella finestra di dialogo Autorizza Cloud Shell, fai clic su Autorizza.

  3. Per creare una subnet, esegui il comando seguente:

    gcloud compute networks subnets create subnet-fw-rules-server \
      --network=vpc-fw-rules \
      --region=us-central1 \
      --range=10.0.0.0/24 \
      --enable-private-ip-google-access
    
  4. Per creare un'altra subnet, esegui questo comando:

    gcloud compute networks subnets create subnet-fw-rules-client \
      --network=vpc-fw-rules \
      --region=us-central1 \
      --range=192.168.10.0/24 \
      --enable-private-ip-google-access
    

Per impostazione predefinita, la rete VPC ha due regole IPv4 implicite:

  • Una regola di uscita allow con destinazione 0.0.0.0/0 e priorità più bassa possibile (65535) che consente a qualsiasi istanza di inviare traffico a qualsiasi destinazione, ad eccezione del traffico bloccato da Google Cloud.
  • Un ingresso deny con origine 0.0.0.0/0 e priorità minima possibile (65535) che protegge tutte le istanze bloccando le connessioni in arrivo.

Per ulteriori informazioni, consulta la sezione Regole implicite.

Crea VM client e server

In questa sezione creerai due VM Linux senza indirizzi IP esterni nelle subnet della rete VPC che hai creato nella sezione precedente.

Crea la VM server

Console

Per creare la VM server:

  1. Nella console Google Cloud, vai alla pagina Crea un'istanza.

    Vai a Crea un'istanza

  2. In Nome, inserisci vm-fw-rules-server.

  3. In Regione, seleziona us-central1 (Iowa).

  4. Scorri verso il basso ed espandi Opzioni avanzate, quindi Networking.

  5. Nella sezione Interfacce di rete, specifica i seguenti parametri di configurazione:

    • Rete: vpc-fw-rules
    • Subnet: subnet-fw-rules-server IPv4 (10.0.0.0/24)
    • Indirizzo IPv4 esterno: Nessuno
  6. Fai clic su Fine.

  7. Fai clic su Crea.

gcloud

Per creare la VM server, esegui questo comando:

gcloud compute instances create vm-fw-rules-server \
    --network=vpc-fw-rules \
    --zone=us-central1-a \
    --subnet=subnet-fw-rules-server \
    --stack-type=IPV4_ONLY \
    --no-address

Crea la VM client

Console

Per creare la VM client:

  1. Nella console Google Cloud, vai alla pagina Crea un'istanza.

    Vai a Crea un'istanza

  2. In Nome, inserisci vm-fw-rules-client.

  3. In Regione, seleziona us-central1 (Iowa).

  4. Scorri verso il basso ed espandi Opzioni avanzate, quindi Networking.

  5. Nella sezione Interfacce di rete, specifica i seguenti parametri di configurazione:

    • Rete: vpc-fw-rules
    • Subnet: subnet-fw-rules-client IPv4 (192.168.10.0/24)
    • Indirizzo IPv4 esterno: Nessuno
  6. Fai clic su Fine.

  7. Fai clic su Crea.

gcloud

Per creare la VM client, esegui il comando seguente:

gcloud compute instances create vm-fw-rules-client \
    --network=vpc-fw-rules \
    --zone=us-central1-a \
    --subnet=subnet-fw-rules-client \
    --stack-type=IPV4_ONLY \
    --no-address

Crea un router Cloud e un gateway Cloud NAT

Nella sezione precedente hai creato due VM Linux senza indirizzi IPv4 pubblici. Per consentire a queste VM di accedere alla rete internet pubblica, crea un router cloud e un gateway Cloud NAT.

Console

  1. Nella console Google Cloud, vai alla pagina Cloud NAT.

    Vai a Cloud NAT

  2. Fai clic su Inizia o Crea gateway Cloud NAT.

  3. In Nome gateway, inserisci gateway-fw-rules.

  4. Per Tipo NAT, seleziona Pubblico.

  5. Nella sezione Seleziona router Cloud, specifica i seguenti parametri di configurazione:

    • Rete: vpc-fw-rules
    • Regione: us-central1
    • Router Cloud: Crea un nuovo router.
      1. In Nome, inserisci router-fw-rules.
      2. Fai clic su Crea.
  6. Fai clic su Crea.

gcloud

  1. Per creare un router Cloud, esegui questo comando:

    gcloud compute routers create router-fw-rules \
      --network=vpc-fw-rules \
      --region=us-central1
    
  2. Per creare un gateway Cloud NAT, esegui questo comando:

    gcloud compute routers nats create gateway-fw-rules \
      --router=router-fw-rules \
      --region=us-central1 \
      --auto-allocate-nat-external-ips \
      --nat-all-subnet-ip-ranges
    

Crea un criterio firewall di rete globale

In questa sezione crei un criterio firewall di rete globale con quanto segue:

  • Una regola di uscita con 0.0.0.0./0 come destinazione.
  • Logging abilitato. Il logging delle regole del firewall consente di controllare, verificare e analizzare gli effetti delle regole del firewall.

Console

  1. Nella console Google Cloud, vai alla pagina Criteri firewall.

    Vai a Criteri firewall

  2. Fai clic su Crea criterio firewall.

  3. Nella sezione Configura criterio, in Nome criterio, inserisci fw-policy.

  4. Per Ambito di deployment, seleziona Globale e fai clic su Continua.

  5. Per creare regole per il criterio, fai clic su Aggiungi regola nella sezione Aggiungi regole.

    1. In Priority (Priorità), inserisci 65534.
    2. Per Direzione del traffico, seleziona In uscita.
    3. In Log, seleziona On.
    4. Nella sezione Target, per Tipo di target, seleziona Tutte le istanze nella rete.
    5. Nella sezione Destinazione, per Intervalli IP, inserisci 0.0.0.0/0.
    6. Nella sezione Protocollo e porte, seleziona Consenti tutto.
    7. Fai clic su Crea.
  6. Fai clic su Continua.

  7. Per associare una rete VPC al criterio, nella sezione Associa il criterio alle reti VPC, fai clic su Associa.

  8. Seleziona la casella di controllo vpc-fw-rules e fai clic su Associa.

  9. Fai clic su Continua.

  10. Fai clic su Crea.

gcloud

  1. Per creare un criterio firewall, esegui questo comando:

    gcloud compute network-firewall-policies create fw-policy \
        --global
    
  2. Per creare una regola firewall che consenta il traffico verso tutte le destinazioni e abilita i log, esegui questo comando:

    gcloud compute network-firewall-policies rules create 65534 \
        --firewall-policy=fw-policy \
        --direction=EGRESS \
        --action=ALLOW \
        --dest-ip-ranges=0.0.0.0/0 \
        --layer4-configs=all \
        --global-firewall-policy \
        --enable-logging
    
  3. Per associare il criterio firewall alla rete VPC, esegui questo comando:

    gcloud compute network-firewall-policies associations create \
        --firewall-policy=fw-policy \
        --network=vpc-fw-rules \
        --name=pol-association-fw-rules \
        --global-firewall-policy
    

Aggiungere una regola firewall per l'IAP

Nella sezione precedente hai creato VM Linux senza indirizzi IP esterni. In questa sezione, attivi Identity-Aware Proxy (IAP) per consentire l'accesso amministrativo alle istanze VM che non dispongono di indirizzi IP esterni.

Per consentire a IAP di connettersi alle tue istanze VM, crea una regola firewall che:

  • Si applichi a tutte le istanze VM a cui vuoi accedere tramite IAP.
  • Consenta il traffico in entrata dall'intervallo IP 35.235.240.0/20. Questo intervallo contiene tutti gli indirizzi IP che utilizzati da IAP per l'inoltro TCP.
  • Consenta le connessioni a tutte le porte che vuoi rendere accessibili utilizzando l'inoltro TCP di IAP, ad esempio la porta 22 per SSH e la porta 3389 per RDP.

Console

Per consentire l'accesso RDP e SSH a tutte le istanze VM nella rete vpc-fw-rules, procedi nel seguente modo:

  1. Nella console Google Cloud, vai alla pagina Criteri firewall.

    Vai a Criteri firewall

  2. Nella sezione Criteri firewall di rete, fai clic su fw-policy.

  3. Fai clic su Crea regola.

  4. In Priority (Priorità), inserisci 500.

  5. Per Direzione del traffico, seleziona In entrata.

  6. Per Log, seleziona On.

  7. Nella sezione Target, per Tipo di destinazione, seleziona Tutte le istanze nella rete.

  8. Nella sezione Origine, per Intervalli IP, inserisci 35.235.240.0/20.

  9. Nella sezione Protocolli e porte, seleziona Protocolli e porte specificati.

  10. Seleziona la casella di controllo TCP e per Porte inserisci 22 e 3389 separati da una virgola.

  11. Fai clic su Crea.

gcloud

Per consentire l'accesso RDP e SSH a tutte le istanze VM nella rete vpc-fw-rules, esegui il seguente comando:

gcloud compute network-firewall-policies rules create 500 \
    --firewall-policy=fw-policy \
    --direction=INGRESS \
    --action=ALLOW \
    --src-ip-ranges=35.235.240.0/20 \
    --global-firewall-policy \
    --layer4-configs tcp:22,tcp:3389 \
    --enable-logging

Installa il server Apache

In questa sezione installerai il server Apache sulla VM server.

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Nella colonna Connetti della VM vm-fw-rules-server, fai clic su SSH.

  3. Nella finestra di dialogo SSH nel browser, fai clic su Autorizza e attendi che venga stabilita la connessione.

  4. Per installare il pacchetto apache2, esegui il seguente comando al prompt dei comandi:

    sudo apt update && sudo apt -y install apache2
    

    Dopo aver installato Apache, il sistema operativo avvia automaticamente il server Apache.

  5. Per verificare che Apache sia in esecuzione, esegui questo comando:

    sudo systemctl status apache2 --no-pager
    
  6. Per sovrascrivere la pagina web predefinita del server web Apache, esegui questo comando:

    echo '<!doctype html><html><body><h1>Hello World!</h1></body></html>' | sudo tee /var/www/html/index.html
    
  7. Chiudi la finestra di dialogo SSH nel browser.

Prova la connessione

Dopo aver installato il server Apache sulla VM server, connettiti alla VM server dalla VM client utilizzando l'indirizzo IP interno della VM server.

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Dalla colonna IP interno della VM vm-fw-rules-server, copia l'indirizzo IP interno della VM.

  3. Nella colonna Connetti della VM vm-fw-rules-client, fai clic su SSH.

  4. Nella finestra di dialogo SSH nel browser, fai clic su Autorizza e attendi che venga stabilita la connessione.

  5. Per verificare la connessione, esegui il seguente comando:

    curl INTERNAL_IP -m 2
    

    Sostituisci INTERNAL_IP con l'indirizzo IP del vm-fw-rules-server

    Il messaggio Connection timed out è previsto perché ogni VM crea una regola firewall di ingresso implicita che nega tutto il traffico. Per consentire il traffico, una regola in entrata al criterio firewall.

  6. Chiudi la finestra di dialogo SSH nel browser.

Aggiorna il criterio firewall di rete globale per consentire il traffico interno

In questa sezione, aggiorni il criterio firewall di rete globale per consentire il traffico interno dalla subnet della VM client.

Console

  1. Nella console Google Cloud, vai alla pagina Criteri firewall.

    Vai a Criteri firewall

  2. Nella sezione Criteri firewall di rete, fai clic su fw-policy.

  3. Fai clic su Crea regola.

  4. In Priority (Priorità), inserisci 501.

  5. In Direzione del traffico, seleziona In entrata.

  6. Per Log, seleziona On.

  7. Nella sezione Target, per Tipo di destinazione, seleziona Tutte le istanze nella rete.

  8. Nella sezione Origine, per Intervalli IP, inserisci 192.168.10.0/24.

    Ricorda che l'intervallo IP 192.168.10.0/24 è assegnato a subnet-fw-rules-client.

  9. Nella sezione Destinazione, per Tipo IP, seleziona IPv4. In Intervalli IP, specifica 10.0.0.0/24.

    Ricorda che l'intervallo IP 10.0.0.0/24 è assegnato a subnet-fw-rules-server.

  10. Fai clic su Crea.

gcloud

Per aggiornare il criterio firewall, esegui questo comando:

gcloud compute network-firewall-policies rules create 501 \
    --firewall-policy=fw-policy \
    --direction=INGRESS \
    --action=ALLOW \
    --src-ip-ranges=192.168.10.0/24 \
    --dest-ip-ranges=10.0.0.0/24 \
    --layer4-configs=all \
    --global-firewall-policy \
    --enable-logging

Testa la connessione

Dopo aver creato il criterio del firewall, connettiti alla VM server dalla VM client utilizzando l'indirizzo IP interno della VM server.

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Dalla colonna IP interno della VM vm-fw-rules-server, copia l'indirizzo IP interno della VM.

  3. Nella colonna Connetti della VM vm-fw-rules-client, fai clic su SSH.

  4. Nella finestra di dialogo SSH nel browser, fai clic su Autorizza e attendi che venga stabilita la connessione.

  5. Per verificare la connessione, esegui il seguente comando:

    curl INTERNAL_IP -m 2
    

    Sostituisci INTERNAL_IP con l'indirizzo IP della VM vm-fw-rules-server.

    Il messaggio previsto è <!doctype html><html><body><h1>Hello World!</h1></body></html>.

  6. Chiudi la finestra di dialogo SSH nel browser.

Per visualizzare i log del firewall, consulta Visualizzare i log.

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.

In questa sezione elimini le risorse create in questo tutorial.

Elimina il criterio firewall

Console

  1. Nella console Google Cloud, vai alla pagina Criteri firewall.

    Vai a Criteri firewall

  2. Nella sezione Criteri firewall di rete, fai clic sul nome fw-policy.

  3. Fai clic sulla scheda Associazioni.

  4. Seleziona la casella di controllo di vpc-fw-rules e fai clic su Rimuovi associazione.

  5. Nella finestra di dialogo Rimuovi un'associazione dei criteri firewall, fai clic su Rimuovi.

  6. Accanto al titolo fw-policy, fai clic su Elimina.

  7. Nella finestra di dialogo Elimina un criterio firewall, fai clic su Elimina.

    Dopo l'eliminazione di un criterio, nella console Google Cloud viene visualizzata la pagina Criteri firewall.

gcloud

  1. Rimuovi l'associazione tra il criterio firewall e la rete VPC.

    gcloud compute network-firewall-policies associations delete \
      --name=pol-association-fw-rules \
      --firewall-policy=fw-policy \
      --global-firewall-policy
    

    Se configuri l'associazione tra il criterio firewall e la rete VPC tramite la console Google Cloud, non utilizzare il comando gcloud CLI per rimuovere l'associazione. Se non ricordi come hai creato l'associazione o ricevi l'errore The network firewall policy does not have an association with pol-association-fw-rules. quando esegui il comando, utilizza la console Google Cloud per rimuovere l'associazione.

  2. Elimina il criterio firewall.

    gcloud compute network-firewall-policies delete fw-policy \
        --global
    

Elimina le VM

Console

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Seleziona le caselle di controllo delle VM vm-fw-rules-client e vm-fw-rules-server.

  3. Fai clic su Elimina.

  4. Nella finestra di dialogo Eliminare 2 istanze?, fai clic su Elimina.

gcloud

Per eliminare le VM vm-fw-rules-client e vm-fw-rules-server, esegui il seguente comando:

gcloud compute instances delete vm-fw-rules-client vm-fw-rules-server \
    --zone=us-central1-a

Quando richiesto, premi Y per confermare e poi Invio.

Elimina il gateway Cloud NAT e il router Cloud

Console

  1. Nella console Google Cloud, vai alla pagina Router Cloud.

    Vai ai router Cloud

  2. Seleziona la casella di controllo router-fw-rules.

  3. Fai clic su Elimina.

  4. Nella finestra di dialogo Elimina router-fw-rules, fai clic su Elimina.

Quando elimini un router Cloud, viene eliminato anche il gateway Cloud NAT associato.

gcloud

Per eliminare il router cloud router-fw-rules, esegui il seguente comando:

gcloud compute routers delete router-fw-rules \
    --region=us-central1

Quando richiesto, premi Y per confermare e poi Invio.

Quando elimini un router Cloud, viene eliminato anche il gateway Cloud NAT associato.

Elimina la rete VPC e le rispettive subnet

Console

  1. Nella console Google Cloud, vai alla pagina Reti VPC.

    Vai a Reti VPC

  2. Nella colonna Nome, fai clic su vpc-fw-rules.

  3. Fai clic su Elimina rete VPC.

  4. Nella finestra di dialogo Elimina una rete, fai clic su Elimina.

Quando elimini una VPC, vengono eliminate anche le relative sottoreti.

gcloud

  1. Per eliminare le subnet della rete VPC di vpc-fw-rules, esegui questo comando:

    gcloud compute networks subnets delete subnet-fw-rules-client subnet-fw-rules-server \
        --region=us-central1
    

    Quando richiesto, premi Y per confermare e premi Invio.

  2. Per eliminare la rete VPC vpc-fw-rules, esegui il comando seguente:

    gcloud compute networks delete vpc-fw-rules
    

    Quando richiesto, premi Y per confermare, quindi premi Invio.