Le regole firewall Virtual Private Cloud (VPC) generano voci di log quando si applicano al traffico. Mentre un flusso di pacchetti può generare più voci di log, una regola firewall VPC genera al massimo una voce di log per connessione da un'istanza di macchina virtuale (VM). I seguenti esempi mostrano come funziona la registrazione delle regole firewall VPC in diversi scenari.
Esempio di rifiuto in uscita
Questo esempio mostra la registrazione per una regola firewall VPC di negazione dell'uscita che blocca il traffico tra due istanze VM nella stessa rete VPC.
In questo esempio, il traffico scorre tra le istanze VM nella rete VPC example-net nel progetto example-proj.
Le due istanze VM sono:
- VM1 nella zona
us-west1-acon indirizzo IP10.10.0.99inwest-subnet(regioneus-west1). - VM2 nella zona
us-east1-bcon indirizzo IP10.20.0.99ineast-subnet(regioneus-east1).
- VM1 nella zona
Regola A: una regola firewall di negazione del traffico in uscita ha come target tutte le istanze della rete, come destinazione
10.20.0.99(VM2) e si applica alla porta TCP80. Il logging è abilitato per questa regola.Regola B: una regola firewall di autorizzazione in entrata ha come target tutte le istanze della rete, come origine
10.10.0.99(VM1) e si applica alla porta TCP80. Il logging è abilitato anche per questa regola.
Per creare le regole firewall VPC, utilizza i seguenti comandi gcloud:
Regola A: regola di negazione in uscita per la porta TCP
80, applicabile a tutte le istanze, destinazione10.20.0.99:gcloud compute firewall-rules create rule-a \ --network example-net \ --action deny \ --direction EGRESS \ --rules tcp:80 \ --destination-ranges 10.20.0.99/32 \ --priority 10 \ --enable-loggingRegola B: regola di autorizzazione in entrata per la porta TCP
80, applicabile a tutte le istanze, origine10.10.0.99:gcloud compute firewall-rules create rule-b \ --network example-net \ --action allow \ --direction INGRESS \ --rules tcp:80 \ --source-ranges 10.10.0.99/32 \ --priority 10 \ --enable-logging
In uno scenario in cui VM1 tenta di connettersi a VM2 sulla porta TCP 80,
si verifica quanto segue:
- Una voce di log per la regola A dal punto di vista di VM1 viene generata mentre VM1
tenta di connettersi a
10.20.0.99(VM2). - Poiché la regola A blocca il traffico, la regola B non viene presa in considerazione, quindi non esiste alcuna voce di log per la regola B dal punto di vista di VM2.
VM1 segnala il seguente record di log delle regole firewall VPC:
| Campo | Valori |
|---|---|
connection |
src_ip=10.10.0.99 src_port=[EPHEMERAL_PORT] dest_ip=10.20.0.99 dest_port=80 protocol=6 |
disposition |
RIFIUTATO |
rule_details |
reference = "network:example-net/firewall:rule-a" priority = 10 action = DENY destination_range = 10.20.0.99/32 ip_port_info = tcp:80 direction = egress |
instance |
project_id="example-proj" instance_name=VM1 region=us-west1 zone=us-west1-a |
vpc |
project_id="example-proj" vpc_name=example-net subnetwork_name=west-subnet |
remote_instance |
project_id="example-proj" instance_name=VM2 region=us-east1 zone=us-east1-b |
remote_vpc |
project_id="example-proj" vpc_name=example-net subnetwork_name=east-subnet |
remote_location |
Nessuna informazione. Questo campo viene utilizzato solo se la destinazione si trova al di fuori della tua rete VPC. |
Esempio di autorizzazione in uscita e in entrata
Questo esempio mostra la registrazione per una regola firewall VPC di autorizzazione in uscita e una regola firewall VPC di autorizzazione in entrata che insieme consentono il traffico tra due istanze VM nella stessa rete VPC.
In questo esempio, il traffico scorre tra le istanze VM nella rete VPC example-net nel progetto example-proj.
Le due istanze VM sono:
- VM1 nella zona
us-west1-acon indirizzo IP10.10.0.99inwest-subnet(regioneus-west1). - VM2 nella zona
us-east1-bcon indirizzo IP10.20.0.99ineast-subnet(regioneus-east1).
- VM1 nella zona
Regola A: una regola firewall di autorizzazione in uscita ha come target tutte le istanze nella rete, come destinazione
10.20.0.99(VM2) e si applica alla porta TCP80. Il logging è abilitato per questa regola.Regola B: una regola firewall di autorizzazione in entrata ha come target tutte le istanze della rete, come origine
10.10.0.99(VM1) e si applica alla porta TCP80. Il logging è abilitato anche per questa regola.
Per creare le regole firewall VPC, utilizza i seguenti comandi gcloud:
Regola A: regola di autorizzazione in uscita per la porta TCP
80, applicabile a tutte le istanze, destinazione10.20.0.99(VM2):gcloud compute firewall-rules create rule-a \ --network example-net \ --action allow \ --direction EGRESS \ --rules tcp:80 \ --destination-ranges 10.20.0.99/32 \ --priority 10 \ --enable-loggingRegola B: regola di autorizzazione in entrata per la porta TCP
80, applicabile a tutte le istanze, origine10.10.0.99(VM1):gcloud compute firewall-rules create rule-b \ --network example-net \ --action allow \ --direction INGRESS \ --rules tcp:80 \ --source-ranges 10.10.0.99/32 \ --priority 10 \ --enable-logging
In uno scenario in cui VM1 tenta di connettersi a VM2 sulla porta TCP 80,
si verifica quanto segue:
- Viene generata una voce di log per la regola A dal punto di vista della VM1 mentre VM1
si connette a
10.20.0.99(VM2). - Una voce di log per la regola B dal punto di vista della VM2 viene generata mentre la VM2 consente
le connessioni in entrata da
10.10.0.99(VM1).
VM1 segnala il seguente record di log delle regole firewall VPC:
| Campo | Valori |
|---|---|
connection |
src_ip=10.10.0.99 src_port=[EPHEMERAL_PORT] dest_ip=10.20.0.99 dest_port=80 protocol=6 |
disposition |
ALLOWED |
rule_details |
reference = "network:example-net/firewall:rule-a" priority = 10 action = ALLOW destination_range = 10.20.0.99/32 ip_port_info = tcp:80 direction = egress |
instance |
project_id="example-proj" instance_name=VM1 region=us-west1 zone=us-west1-a |
vpc |
project_id="example-proj" vpc_name=example-net subnetwork_name=west-subnet |
remote_instance |
project_id="example-proj" instance_name=VM2 region=us-east1 zone=us-east1-b |
remote_vpc |
project_id="example-proj" vpc_name=example-net subnetwork_name=east-subnet |
remote_location |
Nessuna informazione. Questo campo viene utilizzato solo se la destinazione si trova al di fuori della tua rete VPC. |
VM2 segnala il seguente record di log della regola firewall VPC:
| Campo | Valori |
|---|---|
connection |
src_ip=10.10.0.99 src_port=[EPHEMERAL_PORT] dest_ip=10.20.0.99 dest_port=80 protocol=6 |
disposition |
ALLOWED |
rule_details |
reference = "network:example-net/firewall:rule-b" priority = 10 action = ALLOW source_range = 10.10.0.99/32 ip_port_info = tcp:80 direction = ingress |
instance |
project_id="example-proj" instance_name=VM2 region=us-east1 zone=us-east1-b |
vpc |
project_id="example-proj" vpc_name=example-net subnetwork_name=east-subnet |
remote_instance |
project_id="example-proj" instance_name=VM1 region=us-west1 zone=us-west1-a |
remote_vpc |
project_id="example-proj" vpc_name=example-net subnetwork_name=west-subnet |
remote_location |
Nessuna informazione. Questo campo viene utilizzato solo se la destinazione si trova al di fuori della tua rete VPC. |
Esempio di traffico in entrata da internet
Questo esempio mostra la registrazione per una regola firewall in entrata che consente il traffico da internet a un'istanza VM. Mostra anche come il comportamento del firewall stateful influisce su una regola di negazione dell'uscita.
In questo esempio, il traffico scorre da una risorsa esterna a un'istanza VM
all'interno della rete VPC example-net. La rete si trova
nel progetto example-proj.
- Il sistema su internet ha l'indirizzo IP
203.0.113.114. - La VM1 nella zona
us-west1-aha l'indirizzo IP10.10.0.99inwest-subnet(regioneus-west1). - Regola C: una regola firewall di autorizzazione in entrata ha come target tutte le istanze della rete, come origine qualsiasi indirizzo IP (
0.0.0.0/0) e si applica alla porta TCP80. Il logging è abilitato per questa regola. - Regola D: una regola firewall di negazione in uscita ha come target tutte le istanze della rete, una destinazione di qualsiasi indirizzo IP (
0.0.0.0/0) e si applica a tutti i protocolli. Il logging è abilitato per questa regola.
Per creare le regole firewall VPC, utilizza i seguenti comandi gcloud:
Regola C: regola di autorizzazione in entrata per la porta TCP
80, applicabile a tutte le istanze, qualsiasi origine:gcloud compute firewall-rules create rule-c \ --network example-net \ --action allow \ --direction INGRESS \ --rules tcp:80 \ --source-ranges 0.0.0.0/0 \ --priority 10 \ --enable-loggingRegola D: regola di negazione del traffico in uscita per tutti i protocolli, applicabile a tutte le istanze, qualsiasi destinazione:
gcloud compute firewall-rules create rule-d \ --network example-net \ --action deny \ --direction EGRESS \ --rules all \ --destination-ranges 0.0.0.0/0 \ --priority 10 \ --enable-logging
In uno scenario in cui il sistema con indirizzo IP 203.0.113.114 tenta di
connettersi a VM1 sulla porta TCP 80, si verifica quanto segue:
- VM1 genera una voce di log per la regola C mentre accetta il traffico da
203.0.113.114. - Nonostante la regola D, VM1 può rispondere alla richiesta in entrata perché le regole firewall sono stateful.Google Cloud Se la richiesta in entrata è consentita, nessuna regola in uscita può bloccare le risposte stabilite.
- Poiché la regola D non si applica, il sistema non la prende in considerazione, quindi non esiste una voce di log per la regola D.
VM1 segnala il seguente record di log delle regole firewall VPC:
| Campo | Valori |
|---|---|
connection |
src_ip=203.0.113.114 src_port=[EPHEMERAL_PORT] dest_ip=10.10.0.99 dest_port=80 protocol=6 |
disposition |
ALLOWED |
rule_details |
reference = "network:my-vpc/firewall:rule-c" priority = 10 action = ALLOW source_range = 0.0.0.0/0 ip_port_info = tcp:80 direction = ingress |
instance |
project_id="example-proj" instance_name=VM1 region=us-west1 zone=us-west1-a |
vpc |
project_id="example-proj" vpc_name=example-net subnetwork_name=west-subnet |
remote_location |
continente paese regione città |
Passaggi successivi
- Panoramica della registrazione delle regole firewall VPC.
- Gestisci il logging delle regole firewall VPC.
- Panoramica di Cloud Logging.