Utilizzare il logging delle regole firewall

Il logging delle regole firewall consente di controllare, verificare e analizzare gli effetti delle regole firewall. Ad esempio, puoi determinare se una regola firewall progettata per negare il traffico funziona come previsto. Il logging è utile anche se devi determinare quante connessioni sono interessate da una determinata regola firewall.

Questa pagina mostra come attivare e disattivare il logging per le regole firewall Virtual Private Cloud. Per istruzioni sul logging per le regole dei criteri firewall, consulta Utilizzare i criteri e le regole firewall gerarchici.

Questa pagina mostra anche come visualizzare i log generati. Per ulteriori informazioni su cosa viene registrato, esempi di logging e formati dei log, consulta Logging delle regole firewall.

Se attivi il logging per una regola firewall, puoi visualizzare insight e consigli in merito in Firewall Insights. Per ulteriori informazioni, consulta Approfondimenti sul firewall nella documentazione di Network Intelligence Center.

Autorizzazioni

Per modificare le regole firewall o i log di accesso, i principali IAM devono disporre di uno dei seguenti ruoli.

Attività Ruolo richiesto
Creare, eliminare o aggiornare regole firewall Proprietario o Editor del progetto o Amministratore sicurezza
Visualizza log Proprietario, editor o visualizzatore del progetto o Visualizzatore log
Per informazioni dettagliate su ruoli e autorizzazioni IAM per i log, consulta la Guida al controllo dell'accesso per i log.

Attivare e disattivare il logging delle regole firewall

Quando crei una regola firewall, puoi scegliere di attivare il logging delle regole firewall. Per ulteriori informazioni, vedi Creare regole del firewall.

Per attivare o disattivare il logging delle regole firewall per una regola firewall esistente, segui queste istruzioni. Quando attivi il logging, puoi controllare se i campi dei metadati sono inclusi. Se li ometti, puoi risparmiare sui costi di archiviazione.

Attivare il logging delle regole firewall

Console

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

    Vai a Policy del firewall

  2. Nella colonna Log, determina se il logging del firewall è attivo o disattivato per ogni regola del firewall.

  3. Per attivare la registrazione per una o più regole firewall, seleziona la casella di controllo accanto a ogni regola da aggiornare.

  4. Nella barra delle azioni delle regole firewall VPC, fai clic su Configura log.

  5. Nella finestra di dialogo Configura log, seleziona On.

  6. Per omettere i campi dei metadati, espandi Mostra dettagli dei log e poi deseleziona la casella di controllo Includi metadati.

  7. Fai clic su Save configuration (Salva configurazione).

gcloud

gcloud compute firewall-rules update RULE_NAME \
    --enable-logging \
    --logging-metadata=LOGGING_METADATA

Sostituisci quanto segue:

  • RULE_NAME: il nome della regola firewall.
  • LOGGING_METADATA: indica se il logging delle regole firewall include i campi dei metadati nei log delle regole firewall. Puoi configurare questo campo solo se la registrazione è abilitata. Il valore deve essere exclude-all o include-all. Per impostazione predefinita, i campi dei metadati sono inclusi.

Per ulteriori informazioni, consulta la documentazione di riferimento dell'SDK.

Terraform

Puoi utilizzare la risorsa Terraform per creare una regola firewall con il logging abilitato.

resource "google_compute_firewall" "rules" {
  project     = var.project_id # Replace this with your project ID in quotes
  name        = "my-firewall-rule"
  network     = "default"
  description = "Creates firewall rule targeting tagged instances"

  log_config {
    metadata = "INCLUDE_ALL_METADATA"
  }

  allow {
    protocol = "tcp"
    ports    = ["80", "8080", "1000-2000"]
  }
  target_tags = ["web"]
}

Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.

API

Attiva il logging delle regole firewall per una regola firewall esistente.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/RULE_NAME
{
  "name": "RULE_NAME,
  "logConfig": {
    "enable": true,
    "metadata": LOGGING_METADATA
  }
}

Sostituisci i segnaposto con valori validi:

  • PROJECT_ID: l'ID del progetto in cui si trova la regola firewall.
  • RULE_NAME: il nome della regola firewall.
  • LOGGING_METADATA: indica se il logging delle regole firewall include i campi dei metadati nei log delle regole firewall. Puoi configurare questo campo solo se la registrazione è abilitata. Il valore deve essere exclude-all o include-all. Per impostazione predefinita, i campi dei metadati sono inclusi.

Per ulteriori informazioni, consulta il metodo firewalls.patch.

Disattivare il logging delle regole firewall

Console

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

    Vai a Policy del firewall

  2. Nella colonna Log, determina se il logging del firewall è attivo o disattivato per ogni regola del firewall.

  3. Per disattivare il logging per una o più regole firewall, seleziona la casella di controllo accanto a ogni regola da aggiornare.

  4. Nella barra delle azioni delle regole firewall VPC, fai clic su Configura log.

  5. Nella finestra di dialogo Configura log, seleziona Off e poi fai clic su Salva configurazione.

gcloud

gcloud compute firewall-rules update RULE_NAME \
    --no-enable-logging

Sostituisci RULE_NAME con il nome della regola del firewall.

API

Disattiva il logging delle regole firewall per una regola firewall esistente.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/RULE_NAME
{
  "name": "RULE_NAME,
  "logConfig": {
    "enable": false
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui si trova la regola firewall.
  • RULE_NAME: il nome della regola firewall.

Per ulteriori informazioni, consulta il metodo firewalls.patch.

Visualizza i log

I log delle regole firewall vengono creati nel progetto che ospita la rete contenente le istanze VM e le regole firewall. Con la rete VPC condivisa, le istanze VM vengono create nei progetti di servizio, ma utilizzano una rete VPC condivisa nel progetto host. I log delle regole firewall vengono archiviati nel progetto host.

Per visualizzare i log delle regole firewall, utilizza la sezione Esplora log della console Google Cloud.

Le seguenti query mostrano come cercare eventi firewall specifici.

Visualizza tutti i log firewall

  1. Nella console Google Cloud, vai alla pagina Esplora log.

    Vai a Esplora log

  2. Fai clic su Risorsa.

  3. Nell'elenco Seleziona risorsa, fai clic su Subnet e poi su Applica.

  4. Fai clic su Nome log e nell'elenco seleziona firewall.

  5. Fai clic su Applica.

In alternativa:

  1. Nella console Google Cloud, vai alla pagina Esplora log.

    Vai a Esplora log

  2. Fai clic su Query.

  3. Se non vedi il campo dell'editor di query nel riquadro Query, fai clic sul pulsante di attivazione/disattivazione Mostra query.

  4. Incolla quanto segue nel campo dell'editor di query nel riquadro Query. Sostituisci PROJECT_ID con l'ID del tuo progetto.

    resource.type="gce_subnetwork"
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall"
    
  5. Fai clic su Esegui query.

Visualizza i log per subnet specifiche

  1. Nella console Google Cloud, vai alla pagina Esplora log.

    Vai a Esplora log

  2. Fai clic su Risorsa.

  3. Nell'elenco Seleziona risorsa, fai clic su Subnet.

  4. Seleziona la sottorete per la quale vuoi visualizzare i log e poi fai clic su Applica.

  5. Fai clic su Nome log e nell'elenco seleziona firewall.

  6. Fai clic su Applica.

In alternativa:

  1. Nella console Google Cloud, vai alla pagina Esplora log.

    Vai a Esplora log

  2. Fai clic su Query.

  3. Se non vedi il campo dell'editor di query nel riquadro Query, fai clic sul pulsante di attivazione/disattivazione Mostra query.

  4. Incolla quanto segue nel campo dell'editor di query nel riquadro Query. Sostituisci PROJECT_ID con l'ID del tuo progetto e SUBNET_NAME con la tua sottorete.

    resource.type="gce_subnetwork"
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall"
    resource.labels.subnetwork_name="SUBNET_NAME"
    
  5. Fai clic su Esegui query.

Visualizzare i log in VM specifiche

  1. Nella console Google Cloud, vai alla pagina Esplora log.

    Vai a Esplora log

  2. Fai clic su Risorsa.

  3. Nell'elenco Seleziona risorsa, fai clic su Istanza VM.

  4. Seleziona l'istanza per cui vuoi visualizzare i log e poi fai clic su Applica.

  5. Fai clic su Nome log e nell'elenco seleziona firewall.

  6. Fai clic su Applica.

In alternativa:

  1. Nella console Google Cloud, vai alla pagina Esplora log.

    Vai a Esplora log

  2. Fai clic su Query.

  3. Se non vedi il campo dell'editor di query nel riquadro Query, fai clic sul pulsante di attivazione/disattivazione Mostra query.

  4. Incolla quanto segue nel campo dell'editor di query nel riquadro Query. Sostituisci PROJECT_ID con l'ID del tuo progetto e INSTANCE_ID con l'ID della VM per cui vuoi visualizzare i log.

    resource.type="gce_subnetwork"
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall"
    jsonPayload.instance.vm_name="INSTANCE_ID"
    
  5. Fai clic su Esegui query.

Visualizzare i log delle connessioni da un paese specifico

  1. Nella console Google Cloud, vai alla pagina Esplora log.

    Vai a Esplora log

  2. Fai clic su Query.

  3. Se non vedi il campo dell'editor di query nel riquadro Query, fai clic sul pulsante di attivazione/disattivazione Mostra query.

  4. Incolla quanto segue nel campo dell'editor di query nel riquadro Query. Sostituisci PROJECT_ID con l'ID del tuo progetto e COUNTRY con il codice ISO 3166-1alpha-3.

    resource.type="gce_subnetwork"
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall"
    jsonPayload.remote_location.country=COUNTRY
    

Esporta log

Per esportare i log delle regole firewall, consulta Configurare e gestire i sink.

Puoi utilizzare le query di esempio per restringere i log esportati.

Tabella delle interazioni

  • Nel caso di comunicazione tra VM, i record dei log potrebbero essere generati da entrambe le VM, a seconda delle rispettive regole del firewall.
  • La connessione registrata include i pacchetti che fluiscono in entrambe le direzioni se il pacchetto iniziale è stato consentito dal firewall.
  • Per una determinata VM, le connessioni in entrata vengono associate alle regole del firewall configurate su quella VM e le connessioni in uscita vengono associate alla regola del firewall in uscita configurata su quella VM.
  • Una connessione consentita che corrisponde a una regola del firewall con "consenti e registrazione" viene registrata solo una volta. La voce di log non viene ripetuta ogni 5 secondi anche se la connessione persiste.
  • Una connessione negata che corrisponde a una regola firewall con "denied and logging" ripete la voce di log ogni 5 secondi finché vengono rilevati pacchetti nella connessione negata.

Questa tabella mostra il comportamento della registrazione del firewall dal punto di vista di una singola VM.

In uno scenario in cui una VM1 ha una regola in entrata R1 che corrisponde ai pacchetti e una regola in uscita R2 che corrisponde anche ai pacchetti, il comportamento della registrazione del firewall è il seguente:

La VM1 ha la regola di ingresso R1 (pacchetti corrispondenti) La VM1 ha la regola in uscita R2 (pacchetti corrispondenti) Direzione di connessione Azione Log
Consenti + Log Consenti In entrata Consenti Una voce di log:
disposition=allow, rule=R1
Rifiuta
Consenti + Log
Nega + Log
Consenti Consenti In entrata Consenti Nessun logging
Rifiuta
Consenti + Log
Nega + Log
Nega + Log N/D In entrata Rifiuta Una voce di log ogni 5 secondi:
disposition=deny, rule=R1
Rifiuta N/D In entrata Rifiuta Nessun logging
Consenti Consenti + Log In uscita Consenti Una voce di log:
disposition=allow, rule=R2
Rifiuta
Consenti + Log
Nega + Log
Consenti Consenti In uscita Consenti Nessun log
Rifiuta
Consenti + Log
Nega + Log
N/D Nega + Log In uscita Rifiuta Una voce di log ogni 5 secondi:
disposition=deny, rule=R2
N/D Rifiuta In uscita Rifiuta Nessun logging

Tieni presente che l'ingresso e l'uscita sono simmetrici.

Questa è la descrizione dettagliata della semantica dei log del firewall:

  • Consenti + Log (il logging è supportato solo per TCP e UDP)

    • La connessione avviata nella direzione a cui si applica la regola provoca la creazione di un singolo record di log.
    • Il traffico di risposta è consentito a causa del monitoraggio delle connessioni. Il traffico di risposta non genera alcun logging, indipendentemente dalle regole firewall in quella direzione.
    • Se la connessione scade dal firewall (inattiva per 10 minuti o se viene ricevuto un pacchetto TCP RST), un altro pacchetto in entrambe le direzioni potrebbe attivare il logging.
    • Il logging si basa su tuple di 5 elementi. I flag TCP non influiscono sul comportamento di registrazione.
  • Rifiuta + Log (il logging è supportato solo per TCP e UDP)

    • I pacchetti vengono ignorati (non viene avviata alcuna connessione).
    • Ogni pacchetto che corrisponde a una tupla di 5 elementi univoca viene registrato come tentativo di connessione non riuscito.
    • Lo stesso quintuple viene registrato di nuovo ogni 5 secondi se continua a ricevere pacchetti.

Risoluzione dei problemi

Impossibile visualizzare i log

Se non riesci a visualizzare i log delle regole firewall nella sezione Esplora log della console Google Cloud, controlla quanto segue:

Possibile causa: autorizzazioni insufficienti

Chiedi al proprietario del progetto di assicurarsi che il tuo entità IAM abbia almeno il ruolo Visualizzatore log per il progetto. Per ulteriori informazioni, consulta le autorizzazioni.
Possibile causa: reti legacy non supportate
Non puoi utilizzare il logging delle regole firewall in una rete legacy. Sono supportate solo le reti VPC.
Possibile causa: assicurati di cercare nel progetto corretto
Poiché i log delle regole firewall vengono archiviati nel progetto che contiene la rete, è importante assicurarsi di cercare i log nel progetto corretto. Con la Rete VPC condivisa, le istanze VM vengono create nei progetti di servizio, ma utilizzano una rete VPC condivisa situata nel progetto host. Per gli scenari VPC condivisa, i log delle regole del firewall vengono archiviati nel progetto host.

Se è coinvolta una VPC condivisa, per visualizzare i log delle regole firewall sono necessarie le autorizzazioni appropriate per il progetto host. Anche se le istanze VM si trovano in progetti di servizio, i log delle regole del firewall relativi si trovano nel progetto host.

Voci di log mancanti

Possibile causa: le connessioni potrebbero non corrispondere alla regola del firewall prevista

Verifica che la regola firewall prevista sia nell'elenco delle regole firewall applicabili per un'istanza. Utilizza la console Google Cloud per visualizzare i dettagli dell'istanza pertinente, quindi fai clic sul pulsante Visualizza dettagli nella sezione Interfacce di rete della pagina Dettagli istanza VM. Controlla le regole firewall applicabili nella sezione Dettagli firewall e route della pagina Dettagli interfaccia di rete della VM.

Per assicurarti di creare correttamente le regole firewall, consulta Regole firewall VPC.

Puoi utilizzare tcpdump sulla VM per determinare se le connessioni inviate o ricevute hanno indirizzi, porte e protocolli corrispondenti al firewall previsto.

Possibile causa: potrebbe essere applicata una regola con priorità più alta con la registrazione delle regole firewall disabilitata

Le regole firewall vengono valutate in base alle loro priorità. Dal punto di vista di un'istanza VM, al traffico viene applicata una sola regola firewall.

Una regola che ritieni sia la regola applicabile con la priorità più alta potrebbe non essere effettivamente la regola applicabile con la priorità più alta. Potrebbe essere applicata una regola con priorità più alta per la quale non è stato attivato il logging.

Per la risoluzione dei problemi, puoi attivare temporaneamente il logging per tutte le possibili regole firewall applicabili a una VM. Utilizza la console Google Cloud per visualizzare i dettagli della VM pertinente, quindi fai clic sul pulsante Visualizza dettagli nella sezione Interfacce di rete della pagina Dettagli istanza VM. Controlla le regole firewall applicabili nella sezione Dettagli firewall e route della pagina Dettagli interfaccia di rete della VM e identifica le regole personalizzate nell'elenco. Abilita temporaneamente il logging per tutte queste regole firewall personalizzate.

Con il logging abilitato, puoi identificare la regola applicabile. Una volta identificate, assicurati di disattivare il logging per tutte le regole che non lo richiedono effettivamente.

Metadati mancanti per alcune voci di log

Possibile causa: ritardo nella propagazione della configurazione

Se aggiorni una regola firewall in cui è abilitato il logging del firewall, potrebbero essere necessari alcuni minuti prima che Google Cloud completi la propagazione delle modifiche necessarie per registrare il traffico che corrisponde ai componenti aggiornati della regola.

Passaggi successivi