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.
Prima di iniziare
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Abilita l'API Compute Engine per il tuo progetto.
- Assicurati di disporre del ruolo Identity and Access Management Amministratore rete Compute (
roles/compute.networkAdmin
). - 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
Nella console Google Cloud, vai alla pagina Reti VPC.
Fai clic su Crea rete VPC.
In Nome, inserisci
vpc-fw-rules
.In Descrizione, inserisci
VPC network for the firewall rules tutorial
.In Modalità di creazione subnet, seleziona Personalizzata.
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
- Nome:
Fai clic su Fine.
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
- Nome:
Fai clic su Fine.
Scorri verso il basso e fai clic su Crea.
gcloud
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"
(Facoltativo) Nella finestra di dialogo Autorizza Cloud Shell, fai clic su Autorizza.
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
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 destinazione0.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 origine0.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:
Nella console Google Cloud, vai alla pagina Crea un'istanza.
In Nome, inserisci
vm-fw-rules-server
.In Regione, seleziona
us-central1 (Iowa)
.Scorri verso il basso ed espandi Opzioni avanzate, quindi Networking.
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
- Rete:
Fai clic su Fine.
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:
Nella console Google Cloud, vai alla pagina Crea un'istanza.
In Nome, inserisci
vm-fw-rules-client
.In Regione, seleziona
us-central1 (Iowa)
.Scorri verso il basso ed espandi Opzioni avanzate, quindi Networking.
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
- Rete:
Fai clic su Fine.
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
Nella console Google Cloud, vai alla pagina Cloud NAT.
Fai clic su Inizia o Crea gateway Cloud NAT.
In Nome gateway, inserisci
gateway-fw-rules
.Per Tipo NAT, seleziona Pubblico.
Nella sezione Seleziona router Cloud, specifica i seguenti parametri di configurazione:
- Rete:
vpc-fw-rules
- Regione:
us-central1
- Router Cloud: Crea un nuovo router.
- In Nome, inserisci
router-fw-rules
. - Fai clic su Crea.
- In Nome, inserisci
- Rete:
Fai clic su Crea.
gcloud
Per creare un router Cloud, esegui questo comando:
gcloud compute routers create router-fw-rules \ --network=vpc-fw-rules \ --region=us-central1
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
Nella console Google Cloud, vai alla pagina Criteri firewall.
Fai clic su Crea criterio firewall.
Nella sezione Configura criterio, in Nome criterio, inserisci
fw-policy
.Per Ambito di deployment, seleziona Globale e fai clic su Continua.
Per creare regole per il criterio, fai clic su Aggiungi regola nella sezione Aggiungi regole.
- In Priority (Priorità), inserisci
65534
. - Per Direzione del traffico, seleziona In uscita.
- In Log, seleziona On.
- Nella sezione Target, per Tipo di target, seleziona Tutte le istanze nella rete.
- Nella sezione Destinazione, per Intervalli IP, inserisci
0.0.0.0/0
. - Nella sezione Protocollo e porte, seleziona Consenti tutto.
- Fai clic su Crea.
- In Priority (Priorità), inserisci
Fai clic su Continua.
Per associare una rete VPC al criterio, nella sezione Associa il criterio alle reti VPC, fai clic su Associa.
Seleziona la casella di controllo
vpc-fw-rules
e fai clic su Associa.Fai clic su Continua.
Fai clic su Crea.
gcloud
Per creare un criterio firewall, esegui questo comando:
gcloud compute network-firewall-policies create fw-policy \ --global
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
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 porta3389
per RDP.
Console
Per consentire l'accesso RDP e SSH a tutte le istanze VM nella rete vpc-fw-rules, procedi nel seguente modo:
Nella console Google Cloud, vai alla pagina Criteri firewall.
Nella sezione Criteri firewall di rete, fai clic su
fw-policy
.Fai clic su Crea regola.
In Priority (Priorità), inserisci
500
.Per Direzione del traffico, seleziona In entrata.
Per Log, seleziona On.
Nella sezione Target, per Tipo di destinazione, seleziona Tutte le istanze nella rete.
Nella sezione Origine, per Intervalli IP, inserisci
35.235.240.0/20
.Nella sezione Protocolli e porte, seleziona Protocolli e porte specificati.
Seleziona la casella di controllo TCP e per Porte inserisci
22
e3389
separati da una virgola.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.
Nella console Google Cloud, vai alla pagina Istanze VM.
Nella colonna Connetti della VM
vm-fw-rules-server
, fai clic su SSH.Nella finestra di dialogo SSH nel browser, fai clic su Autorizza e attendi che venga stabilita la connessione.
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.
Per verificare che Apache sia in esecuzione, esegui questo comando:
sudo systemctl status apache2 --no-pager
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
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.
Nella console Google Cloud, vai alla pagina Istanze VM.
Dalla colonna IP interno della VM
vm-fw-rules-server
, copia l'indirizzo IP interno della VM.Nella colonna Connetti della VM
vm-fw-rules-client
, fai clic su SSH.Nella finestra di dialogo SSH nel browser, fai clic su Autorizza e attendi che venga stabilita la connessione.
Per verificare la connessione, esegui il seguente comando:
curl INTERNAL_IP -m 2
Sostituisci
INTERNAL_IP
con l'indirizzo IP delvm-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.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
Nella console Google Cloud, vai alla pagina Criteri firewall.
Nella sezione Criteri firewall di rete, fai clic su
fw-policy
.Fai clic su Crea regola.
In Priority (Priorità), inserisci
501
.In Direzione del traffico, seleziona In entrata.
Per Log, seleziona On.
Nella sezione Target, per Tipo di destinazione, seleziona Tutte le istanze nella rete.
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.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.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.
Nella console Google Cloud, vai alla pagina Istanze VM.
Dalla colonna IP interno della VM
vm-fw-rules-server
, copia l'indirizzo IP interno della VM.Nella colonna Connetti della VM
vm-fw-rules-client
, fai clic su SSH.Nella finestra di dialogo SSH nel browser, fai clic su Autorizza e attendi che venga stabilita la connessione.
Per verificare la connessione, esegui il seguente comando:
curl INTERNAL_IP -m 2
Sostituisci
INTERNAL_IP
con l'indirizzo IP della VMvm-fw-rules-server
.Il messaggio previsto è
<!doctype html><html><body><h1>Hello World!</h1></body></html>
.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
Nella console Google Cloud, vai alla pagina Criteri firewall.
Nella sezione Criteri firewall di rete, fai clic sul nome
fw-policy
.Fai clic sulla scheda Associazioni.
Seleziona la casella di controllo di
vpc-fw-rules
e fai clic su Rimuovi associazione.Nella finestra di dialogo Rimuovi un'associazione dei criteri firewall, fai clic su Rimuovi.
Accanto al titolo
fw-policy
, fai clic su Elimina.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
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.Elimina il criterio firewall.
gcloud compute network-firewall-policies delete fw-policy \ --global
Elimina le VM
Console
Nella console Google Cloud, vai alla pagina Istanze VM.
Seleziona le caselle di controllo delle VM
vm-fw-rules-client
evm-fw-rules-server
.Fai clic su Elimina.
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
Nella console Google Cloud, vai alla pagina Router Cloud.
Seleziona la casella di controllo
router-fw-rules
.Fai clic su Elimina.
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
Nella console Google Cloud, vai alla pagina Reti VPC.
Nella colonna Nome, fai clic su
vpc-fw-rules
.Fai clic su Elimina rete VPC.
Nella finestra di dialogo Elimina una rete, fai clic su Elimina.
Quando elimini una VPC, vengono eliminate anche le relative sottoreti.
gcloud
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.
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.