Usa il logging delle regole firewall

Il logging delle regole firewall consente di controllare, verificare e analizzare gli effetti delle tue regole firewall. Ad esempio, puoi determinare se una regola firewall progettato per negare il funzionamento del traffico come previsto. Il logging è utile anche se devi stabilire quante connessioni sono interessate da un determinato firewall personalizzata.

Questa pagina mostra come abilitare e disabilitare il logging per Virtual Private Cloud le regole del firewall. Per istruzioni sul logging per le regole di criterio firewall, consulta l'articolo Utilizzare criteri e regole firewall gerarchici.

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

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

Autorizzazioni

Per modificare le regole firewall o i log di accesso, le entità IAM devono disporre di una delle i seguenti ruoli.

Attività Ruolo richiesto
Creare, eliminare o aggiornare le regole firewall Progetto proprietario o editor oppure Amministratore sicurezza
Visualizza log Progetto proprietario, editor o visualizzatore oppure Visualizzatore log
Consulta Guida al controllo dell'accesso al logging per maggiori dettagli su Logging di ruoli e autorizzazioni IAM.

Abilita e disabilita il logging delle regole firewall

Quando crei una regola firewall, puoi scegliere di attivarle log. Per ulteriori informazioni, consulta Creare un 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 e campi dei metadati. Se le ometti, puoi risparmiare sui costi di archiviazione.

Abilita il logging delle regole firewall

Console

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

    Vai a Criteri firewall

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

  3. Seleziona la casella di controllo per abilitare il logging per una o più regole firewall accanto a ogni regola da aggiornare.

  4. Nella barra delle azioni 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 log, quindi cancella sulla 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: se il logging delle regole firewall include campi di metadati nella regola firewall log. Puoi configurare solo se il logging è abilitato. Il valore deve essere exclude-all o include-all. I campi dei metadati sono inclusi per impostazione predefinita.

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

Terraform

Puoi utilizzare il comando Terraform risorsa 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

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 individuarlo.
  • RULE_NAME: il nome della regola firewall.
  • LOGGING_METADATA: se il logging delle regole firewall include campi di metadati nella regola firewall log. Puoi configurare solo se il logging è abilitato. Il valore deve essere exclude-all o include-all. I campi dei metadati sono inclusi per impostazione predefinita.

Per ulteriori informazioni, consulta firewalls.patch.

Disabilita il logging delle regole firewall

Console

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

    Vai a Criteri firewall

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

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

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

  5. Nella finestra di dialogo Configura 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 del firewall personalizzata.

API

Disabilita 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 individuarlo.
  • RULE_NAME: il nome della regola firewall.

Per ulteriori informazioni, consulta 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 VPC condiviso, Le istanze VM vengono create nei progetti di servizio, usano una rete VPC condivisa che si trova nel progetto host. Regole firewall sono 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 su Applica.

  4. Fai clic su Nome log e 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 query nel riquadro Query, fai clic sull'opzione di attivazione/disattivazione Mostra query.

  4. Incolla quanto segue nel campo dell'editor di query del riquadro Query. Sostituisci PROJECT_ID con il tuo 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 e 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 query nel riquadro Query, fai clic sul Pulsante di attivazione/disattivazione Mostra query.

  4. Incolla quanto segue nel campo dell'editor di query del riquadro Query. Sostituisci PROJECT_ID con il tuo ID progetto e SUBNET_NAME con la tua 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 la quale vuoi visualizzare i log e fai clic su Applica.

  5. Fai clic su Nome log e 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 query nel riquadro Query, fai clic sul Pulsante di attivazione/disattivazione Mostra query.

  4. Incolla quanto segue nel campo dell'editor di query del riquadro Query. Sostituisci PROJECT_ID con il tuo ID progetto e INSTANCE_ID con l'ID della VM che vuoi visualizzare 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 query nel riquadro Query, fai clic sul Pulsante di attivazione/disattivazione Mostra query.

  4. Incolla quanto segue nel campo dell'editor di query del riquadro Query. Sostituisci PROJECT_ID con il tuo 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
    

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 che esporti.

Tabella delle interazioni

  • In caso di comunicazione da VM a VM, potrebbero essere generati record di log da entrambe le VM, a seconda delle rispettive regole firewall.
  • La connessione registrata include pacchetti che passano in entrambi i modi se l'indirizzo è stato consentito dal firewall.
  • Per una determinata VM, le connessioni in entrata vengono confrontate con le regole firewall configurate su cui vengono confrontate le VM e le connessioni in uscita una regola firewall in uscita configurata sulla VM in questione.
  • Una connessione consentita che corrisponde a una regola firewall con "allow e logging" viene registrato una sola volta. La voce di log non viene ripetuta ogni 5 secondi, anche se la connessione dura a lungo.
  • Una connessione negata corrispondente a una regola firewall con "negata e logging" ripete la voce di log ogni 5 secondi finché ci sono pacchetti osservato in questa connessione negata.

Questa tabella mostra il comportamento di logging del firewall dal punto di vista di un con una singola VM.

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

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

Tieni presente che il traffico in entrata e in uscita è simmetrico.

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

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

    • Connessione avviata nella direzione in cui viene applicata la regola un singolo record di log.
    • Il traffico di risposta è consentito a causa del monitoraggio della connessione. Il traffico delle risposte non causare la registrazione di log, indipendentemente dalle regole firewall .
    • Se la connessione scade dal firewall (inattiva per 10 minuti o TCP RST ricevuto), un altro pacchetto in entrambe le direzioni può il logging dei trigger.
    • Il logging si basa su cinque tuple. I flag TCP non influiscono sul comportamento di logging.
  • Nega + Registra (il logging è supportato solo per TCP e UDP)

    • I pacchetti vengono eliminati (non viene avviata alcuna connessione).
    • Ogni pacchetto che corrisponde a una 5 tupla 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.

Risoluzione dei problemi

Impossibile visualizzare i log

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

Possibile causa: autorizzazioni insufficienti

Chiedi al proprietario del progetto di verificare che l'entità IAM disponga almeno dei Log Visualizzatore per progetto. Per ulteriori informazioni, fai riferimento alle autorizzazioni.
Possibile causa: reti legacy non supportate
Non puoi utilizzare il logging delle regole firewall in una rete legacy. Solo Sono supportate le reti VPC.
Possibile causa: assicurati di cercare nel progetto corretto
Poiché i log delle regole firewall vengono archiviati insieme al progetto che contiene network, è importante verificare che tu stia cercando i log progetto. Con un VPC condiviso, le istanze VM vengono create nei progetti di servizio, ma usano una rete VPC condivisa situata nel progetto host. Per gli scenari di VPC condiviso, i log delle regole firewall vengono archiviati nel progetto host.

Se è coinvolto un VPC condiviso, avrai bisogno delle autorizzazioni appropriate del progetto host per visualizzare i log delle regole firewall. Anche se la VM si trovano in progetti di servizio, i log delle regole firewall nel progetto host.

Voci di log mancanti

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

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

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

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

Possibile causa: una regola di priorità più alta con il logging delle regole firewall potrebbero essere applicate le opzioni disattivate

Le regole firewall vengono valutate in base al loro priorità. Da di un'istanza VM, solo una regola firewall si applica al traffico.

Una regola che ritieni essere la regola applicabile con la massima priorità potrebbe non essere la regola applicabile con priorità massima. Una regola di priorità più alta potrebbero essere applicati i log non abilitati.

Per risolvere i problemi, puoi attivare temporaneamente il logging per tutti i possibili firewall di regole applicabili a una VM. Utilizza la console Google Cloud per visualizzare i dettagli di alla VM pertinente, poi fai clic sul pulsante Visualizza dettagli nella sezione interfacce nella pagina dei dettagli dell'istanza VM. Ispeziona applicabile le regole firewall nella sezione Dettagli firewall e route delle Dettagli interfaccia di rete e identifica le regole personalizzate nell'elenco. Abilita temporaneamente il logging per tutte le regole firewall personalizzate.

Con il logging abilitato, puoi identificare la regola applicabile. Una volta identificati, disattivare il logging per tutte le regole che effettivamente non ne hanno bisogno.

Metadati mancanti per alcune voci di log

Possibile causa: ritardo nella propagazione della configurazione

Se aggiorni una regola firewall in cui è abilitato il logging dei firewall, potrebbero essere necessari pochi minuti prima che Google Cloud finisca di propagare le modifiche necessarie per registrare il traffico che corrisponde ai componenti aggiornati della regola.
.

Passaggi successivi