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


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

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

Obiettivi

Questo tutorial ti mostra come completare le attività seguenti:

  • 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 separate della rete VPC.
  • Crea un router Cloud e un gateway Cloud NAT come best practice per scaricare i 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.
    • Abilita 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.
  • Prova 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. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  3. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  4. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  5. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

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

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

Crea una rete VPC personalizzata con subnet

In questa sezione creerai 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 questo comando:

    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 prevede due regole IPv4 implicite:

  • Una regola in 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 Ingress deny con origine 0.0.0.0/0 e priorità più bassa possibile (65535) che protegge tutte le istanze bloccando le connessioni in entrata che vi sono connesse.

Per ulteriori informazioni, consulta la sezione Regole implicite.

Creazione di VM client e server

In questa sezione creerai due VM Linux senza indirizzi IP esterni nelle subnet della rete VPC creata 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 espandi 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 espandi 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 questo comando:

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, devi creare 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 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 creerai un criterio firewall di rete globale con quanto segue:

  • Una regola in 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, per Nome criterio, inserisci fw-policy.

  4. In Ambito del deployment, seleziona Globale e fai clic su Continua.

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

    1. In Priority (Priorità), inserisci 65534.
    2. In Direzione del traffico, seleziona In uscita.
    3. Per Log, seleziona On.
    4. Nella sezione Destinazione, per Tipo di destinazione, seleziona Tutte le istanze nella rete.
    5. Nella sezione Destination (Destinazione), inserisci 0.0.0.0/0 per Intervalli IP.
    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 criterio a 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 consenta 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
    

Aggiungi una regola firewall per IAP

Nella sezione precedente hai creato VM Linux senza indirizzi IP esterni. In questa sezione, potrai abilitare Identity-Aware Proxy (IAP) per consentire l'accesso amministrativo alle istanze VM che non hanno 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.
  • consente il traffico in entrata dall'intervallo IP 35.235.240.0/20. Questo intervallo contiene tutti gli indirizzi IP che IAP utilizza 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 come segue:

  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 Destinazione, 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 della rete vpc-fw-rules, esegui questo 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, al prompt dei comandi esegui questo comando:

    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.

Testa 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. Copia l'indirizzo IP interno della VM dalla colonna IP interno della VM vm-fw-rules-server.

  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 questo comando:

    curl INTERNAL_IP -m 2
    

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

    Il messaggio Connection timed out è previsto perché ogni VM crea una regola firewall in entrata implicita che nega tutto il traffico. Per consentire il traffico, aggiungi 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. Per Direzione del traffico, seleziona In entrata.

  6. Per Log, seleziona On.

  7. Nella sezione Destinazione, 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 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. Copia l'indirizzo IP interno della VM dalla colonna IP interno della VM vm-fw-rules-server.

  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 questo 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, vedi 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 vpc-fw-rules e fai clic su Rimuovi associazione.

  5. Nella finestra di dialogo Rimuovi l'associazione di un criterio 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.

    Una volta eliminato 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 Vuoi eliminare 2 istanze?, fai clic su Elimina.

gcloud

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

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

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

Elimina il gateway Cloud NAT e il router Cloud

Console

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

    Vai a 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 questo comando:

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

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

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

Elimina la rete VPC e le relative 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 un VPC, vengono eliminate anche le relative subnet.

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 questo comando:

    gcloud compute networks delete vpc-fw-rules
    

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