Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Usa 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 firewall Virtual Private Cloud. Per istruzioni sul logging per le regole dei criteri firewall, consulta Utilizzare le regole e i criteri firewall gerarchici.

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

Se abiliti il logging in una regola firewall, puoi visualizzare insight e suggerimenti da Firewall Insights. Per ulteriori informazioni, consulta Firewall Insights nella documentazione di Network Intelligence Center.

Autorizzazioni

Per modificare le regole firewall o i log di accesso, le entità IAM richiedono uno dei seguenti ruoli.

Attività Ruolo obbligatorio
Creare, eliminare o aggiornare le regole firewall Proprietario o editor del progetto oppure Amministratore sicurezza
Visualizza i log Proprietario, editor o visualizzatore del progetto oppure Visualizzatore log.
Consulta la Guida al controllo dell'accesso di Logging per maggiori dettagli sui ruoli e sulle autorizzazioni IAM di logging.

Abilita e disabilita il logging delle regole firewall

Quando crei una regola firewall, puoi scegliere di attivare il logging delle regole firewall. Per ulteriori informazioni, consulta la pagina relativa alla creazione di regole firewall.

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

Abilita il logging delle regole firewall

Console

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

    Vai a Firewall

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

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

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

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

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

  7. Fai clic su 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: se il logging delle regole firewall include campi di metadati in log delle regole firewall. Puoi configurare questo campo solo se il logging è abilitato. Il valore deve essere exclude-all o include-all. Per impostazione predefinita, sono inclusi i campi di metadati.

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

API

Abilita 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: se il logging delle regole firewall include campi di metadati in log delle regole firewall. Puoi configurare questo campo solo se il logging è abilitato. Il valore deve essere exclude-all o include-all. Per impostazione predefinita, sono inclusi i campi di metadati.

Per ulteriori informazioni, consulta il metodo firewalls.patch.

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, vedi Comandi Terraform di base.

Disabilita logging delle regole firewall

Console

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

    Vai a Firewall

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

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

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

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

gcloud

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

Sostituisci RULE_NAME con il nome della regola 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 che contiene le istanze VM e le regole firewall. Con VPC condiviso, 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 del 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, quindi fai clic su Applica.

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

  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 Editor delle query nel riquadro Query, fai clic sull'opzione di attivazione/disattivazione Mostra query.

  4. Incolla quanto segue nel campo Editor query nel riquadro Query. Sostituisci PROJECT_ID con l'ID 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 subnet per cui vuoi visualizzare i log, quindi fai clic su Applica.

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

  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 Editor delle query nel riquadro Query, fai clic sull'opzione di attivazione/disattivazione Mostra query.

  4. Incolla quanto segue nel campo Editor query nel riquadro Query. Sostituisci PROJECT_ID con l'ID progetto e SUBNET_NAME con la subnet.

    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.

Visualizza 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, quindi fai clic su Applica.

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

  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 Editor delle query nel riquadro Query, fai clic sull'opzione di attivazione/disattivazione Mostra query.

  4. Incolla quanto segue nel campo Editor query nel riquadro Query. Sostituisci PROJECT_ID con l'ID 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.

Visualizza i log per le 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 Editor delle query nel riquadro Query, fai clic sull'opzione di attivazione/disattivazione Mostra query.

  4. Incolla quanto segue nel campo Editor query nel riquadro Query. Sostituisci PROJECT_ID con l'ID 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
    

Esportazione dei log

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

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

Tabella delle interazioni

  • Nel caso della comunicazione da VM a VM, i record dei log potrebbero essere generati da entrambe le VM, a seconda delle rispettive regole firewall.
  • La connessione registrata include pacchetti che passano in entrambe le direzioni se il pacchetto iniziale è stato consentito dal firewall.
  • Per una determinata VM, le connessioni in entrata vengono confrontate con le regole firewall configurate su quelle VM e le connessioni in uscita vengono confrontate con le regole firewall in uscita configurate su quella VM.
  • Una connessione consentita che corrisponde a una regola firewall con "consenti e registra" viene registrata una sola volta. La voce di log non viene ripetuta ogni 5 secondi, anche se la connessione dura.
  • Una connessione rifiutata che corrisponde a una regola firewall con "negato e logging" ripete la voce di log ogni 5 secondi, a condizione che nella connessione siano presenti pacchetti osservati.

Questa tabella mostra il comportamento di logging 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 la regola in uscita R2 che corrisponde anche ai pacchetti, il comportamento del logging del firewall è il seguente:

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

Tieni presente che i dati in entrata e in uscita sono simmetrici.

Ecco la descrizione dettagliata della semantica dei log del firewall:

  • Consenti + Log (la registrazione è supportata solo per TCP e UDP)

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

    • I pacchetti vengono ignorati (non viene avviata alcuna connessione).
    • Ogni pacchetto corrispondente a una 5-tuple univoca viene registrato come tentativo di connessione non riuscito.
    • La stessa 5 tuple viene registrata di nuovo ogni 5 secondi se continua a ricevere pacchetti.

Risolvere i problemi

Impossibile visualizzare i log

Se non puoi visualizzare i log delle regole firewall nella sezione Esplora log della console Google Cloud, verifica quanto segue:

Possibile causa: autorizzazioni insufficienti

Chiedi al proprietario del progetto di assicurarsi che l'entità IAM abbia almeno il ruolo Visualizzatore log per il progetto. Per scoprire di più, 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 con il progetto che contiene la rete, è importante che tu stia cercando i log nel progetto corretto. Con il VPC condiviso, le istanze VM vengono create nei progetti di servizio, ma utilizzano una rete VPC condivisa che si trova nel progetto host. Per gli scenari VPC condivisi, i log delle regole firewall vengono archiviati nel progetto host.

Se è coinvolto un VPC condiviso, avrai bisogno delle autorizzazioni appropriate per il progetto host per visualizzare i log delle regole firewall. Anche se le istanze VM si trovano nei progetti di servizio, i relativi log delle regole firewall 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 nella pagina Dettagli istanza VM. Esamina le regole del firewall applicabili nella sezione Dettagli firewall e route della pagina Dettagli interfaccia di rete della VM.

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

Puoi utilizzare tcpdump sulla VM per determinare se le connessioni che invia o riceve hanno indirizzi, porte e protocolli che corrispondono al firewall previsto.

Possibile causa: potrebbe essere applicata una regola con priorità più elevata che disattiva il logging delle regole firewall.

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

Una regola che ritieni possa essere la priorità più alta potrebbe non essere in realtà quella con la priorità più alta. Potrebbe essere applicata una regola con priorità più elevata per cui non è abilitato il logging.

Per risolvere il problema, puoi abilitare temporaneamente il logging per tutte le regole firewall possibili 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 nella pagina Dettagli istanza VM. Esamina le regole del firewall applicabili nella sezione Dettagli firewall e route della pagina Dettagli interfaccia di rete della VM e identifica le regole personalizzate in tale elenco. Abilita temporaneamente il logging per tutte quelle regole firewall personalizzate.

Con il logging abilitato, puoi identificare la regola applicabile. Una volta identificate, assicurati di disabilitare il logging per tutte le regole che non ne hanno effettivamente bisogno.

Metadati mancanti per alcune voci di log

Possibile causa: ritardo nella propagazione della configurazione

Se aggiorni una regola firewall per 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 corrispondente ai componenti aggiornati della regola.

Passaggi successivi