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 la registrazione per le regole firewall Virtual Private Cloud. Per istruzioni sul logging per le regole dei criteri firewall, vedi Utilizzo di criteri e 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, vedi Logging delle regole firewall.
Se abiliti il logging per una regola firewall, puoi visualizzare approfondimenti e consigli per la regola 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 devono disporre di uno dei seguenti ruoli.
Attività | Ruolo richiesto |
---|---|
Creare, eliminare o aggiornare regole firewall | Proprietario o Editor del progetto o Amministratore della sicurezza |
Visualizza log | Proprietario, editor o visualizzatore del progetto
o
Visualizzatore log
Per informazioni dettagliate su ruoli e autorizzazioni IAM di Logging, consulta la Guida al controllo dell'accesso di Logging. |
Abilitare e disabilitare il logging delle regole firewall
Quando crei una regola firewall, puoi scegliere di attivare la registrazione delle regole firewall. Per saperne di più, consulta Creare regole firewall.
Per attivare o disattivare il logging delle regole firewall per una regola firewall esistente, segui queste istruzioni. Quando attivi la registrazione, puoi controllare se includere i campi dei metadati. Se li ometti, puoi risparmiare sui costi di archiviazione.
Attivare il logging delle regole firewall
Console
Nella console Google Cloud , vai alla pagina Policy firewall.
Nella colonna Log, determina se il logging del firewall è attivo o disattivato per ogni regola firewall.
Per attivare la registrazione per una o più regole firewall, seleziona la casella di controllo accanto a ogni regola da aggiornare.
Nella barra delle azioni Regole firewall VPC, fai clic su Configura log.
Nella finestra di dialogo Configura log, seleziona On.
Per omettere i campi dei metadati, espandi Mostra dettagli log e poi deseleziona la casella di controllo Includi metadati.
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 essereexclude-all
oinclude-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.
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 essereexclude-all
oinclude-all
. Per impostazione predefinita, i campi dei metadati sono inclusi.
Per saperne di più, consulta il metodo
firewalls.patch
.
Disabilitare il logging delle regole firewall
Console
Nella console Google Cloud , vai alla pagina Policy firewall.
Nella colonna Log, determina se il logging del firewall è attivo o disattivato per ogni regola firewall.
Per disattivare la registrazione per una o più regole firewall, seleziona la casella di controllo accanto a ogni regola da aggiornare.
Nella barra delle azioni Regole firewall VPC, fai clic su Configura log.
Nella finestra di dialogo Configura log, seleziona Off, quindi 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 saperne di più, 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 il VPC condiviso, le istanze VM vengono create nei progetti di servizio, ma utilizzano una rete VPC condivisa che si trova nel progetto host. I log delle regole firewall sono archiviati in questo 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.
Visualizzare tutti i log firewall
Nella console Google Cloud , vai alla pagina Esplora log.
Fai clic su Risorsa.
Nell'elenco Seleziona risorsa, fai clic su Subnet e poi su Applica.
Fai clic su Nome log e poi seleziona firewall dall'elenco.
Fai clic su Applica.
In alternativa:
Nella console Google Cloud , vai alla pagina Esplora log.
Fai clic su Query.
Se non vedi il campo dell'editor di query nel riquadro Query, fai clic sul pulsante di attivazione/disattivazione Mostra query.
Incolla quanto segue nel campo dell'editor di query nel riquadro Query. Sostituisci
PROJECT_ID
con l'ID progetto.resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall"
Fai clic su Esegui query.
Visualizza i log per subnet specifiche
Nella console Google Cloud , vai alla pagina Esplora log.
Fai clic su Risorsa.
Nell'elenco Seleziona risorsa, fai clic su Subnet.
Seleziona la subnet per la quale vuoi visualizzare i log, quindi fai clic su Applica.
Fai clic su Nome log e poi seleziona firewall dall'elenco.
Fai clic su Applica.
In alternativa:
Nella console Google Cloud , vai alla pagina Esplora log.
Fai clic su Query.
Se non vedi il campo dell'editor di query nel riquadro Query, fai clic sul pulsante di attivazione/disattivazione Mostra query.
Incolla quanto segue nel campo dell'editor di query nel riquadro Query. Sostituisci
PROJECT_ID
con l'ID progetto eSUBNET_NAME
con la tua subnet.resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall" resource.labels.subnetwork_name="SUBNET_NAME"
Fai clic su Esegui query.
Visualizzare i log in VM specifiche
Nella console Google Cloud , vai alla pagina Esplora log.
Fai clic su Risorsa.
Nell'elenco Seleziona risorsa, fai clic su Istanza VM.
Seleziona l'istanza per cui vuoi visualizzare i log, quindi fai clic su Applica.
Fai clic su Nome log e poi seleziona firewall dall'elenco.
Fai clic su Applica.
In alternativa:
Nella console Google Cloud , vai alla pagina Esplora log.
Fai clic su Query.
Se non vedi il campo dell'editor di query nel riquadro Query, fai clic sul pulsante di attivazione/disattivazione Mostra query.
Incolla quanto segue nel campo dell'editor di query nel riquadro Query. Sostituisci
PROJECT_ID
con l'ID progetto eINSTANCE_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"
Fai clic su Esegui query.
Visualizzare i log per le connessioni da un paese specifico
Nella console Google Cloud , vai alla pagina Esplora log.
Fai clic su Query.
Se non vedi il campo dell'editor di query nel riquadro Query, fai clic sul pulsante di attivazione/disattivazione Mostra query.
Incolla quanto segue nel campo dell'editor di query nel riquadro Query. Sostituisci
PROJECT_ID
con l'ID progetto eCOUNTRY
con il codice ISO 3166-1 alpha-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
- Nel caso di comunicazione da VM a VM, i record di log potrebbero essere generati da entrambe le VM, a seconda delle rispettive regole firewall.
- La connessione registrata include i pacchetti che scorrono 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 quella VM e le connessioni in uscita vengono confrontate con la regola firewall in uscita configurata su quella VM.
- Una connessione consentita che corrisponde a una regola firewall con "consenti e registrazione" viene registrata una sola 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 "negata e registrazione" ripete la voce di log ogni 5 secondi finché vengono osservati pacchetti in quella connessione negata.
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 una regola in uscita R2 che corrisponde anche ai pacchetti, il comportamento della registrazione firewall è il seguente:
VM1 ha la regola di ingresso R1 (pacchetti corrispondenti) | VM1 ha la regola di uscita R2 (pacchetti corrispondenti) | Direzione della connessione | Azione | Log |
---|---|---|---|---|
Consenti + Registra | Consenti | In entrata | Consenti | Una voce di log: disposition=allow, rule=R1 |
Nega | ||||
Consenti + Registra | ||||
Nega + Log | ||||
Consenti | Consenti | In entrata | Consenti | Nessun logging |
Nega | ||||
Consenti + Registra | ||||
Nega + Log | ||||
Nega + Log | N/D | In entrata | Nega | Una voce di log ogni 5 secondi: disposition=deny, rule=R1 |
Nega | N/D | In entrata | Nega | Nessun logging |
Consenti | Consenti + Registra | In uscita | Consenti | Una voce di log: disposition=allow, rule=R2 |
Nega | ||||
Consenti + Registra | ||||
Nega + Log | ||||
Consenti | Consenti | In uscita | Consenti | Nessun log |
Nega | ||||
Consenti + Registra | ||||
Nega + Log | ||||
N/D | Nega + Log | In uscita | Nega | Una voce di log ogni 5 secondi: disposition=deny, rule=R2 |
N/D | Nega | In uscita | Nega | Nessun logging |
Tieni presente che l'ingresso e l'uscita sono simmetrici.
Di seguito è riportata la descrizione dettagliata della semantica dei log firewall:
Consenti + Log (il logging è supportato per TCP e UDP)
- La connessione avviata nella direzione a cui si applica la regola causa la creazione di un singolo record di log.
- Il traffico di risposta è consentito grazie al monitoraggio della connessione. Il traffico di risposta non causa alcun logging, indipendentemente dalle regole firewall in quella direzione.
- Se la connessione scade dal firewall (inattiva per 10 minuti o TCP RST ricevuto), un altro pacchetto in una delle due direzioni potrebbe attivare la registrazione.
- La registrazione si basa su 5 tuple. I flag TCP non influiscono sul comportamento di logging.
Nega + Log (il logging è supportato per TCP e UDP)
- I pacchetti vengono eliminati (non viene avviata alcuna connessione).
- Ogni pacchetto che corrisponde a una tupla a 5 elementi univoca viene registrato come tentativo di connessione non riuscito.
- La stessa 5-tupla 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 della console Google Cloud , controlla quanto segue:
Possibile causa: autorizzazioni insufficienti
Chiedi al proprietario del progetto di assicurarsi che la tua entità IAM disponga almeno del ruolo Visualizzatore log per il progetto. Per ulteriori informazioni, consulta la sezione relativa alle 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 assicurarsi di cercare 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 condiviso, i log delle regole del firewall vengono archiviati nel progetto host.Se è coinvolto un VPC condiviso, devi disporre 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 log delle regole firewall per queste istanze si trovano nel progetto host.
Voci di log mancanti
Possibile causa: le connessioni potrebbero non corrispondere alla regola firewall che ti aspetti
Verifica che la regola firewall che ti aspetti sia presente nell'elenco delle regole firewall applicabili a 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 dell'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 le 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 che ti aspetti.
Possibile causa: potrebbe essere applicata una regola con priorità più alta con la registrazione delle regole firewall disattivata
Le regole firewall vengono valutate in base alle priorità. Dal punto di vista di un'istanza VM, al traffico si applica una sola regola firewall.Una regola che ritieni essere quella con la priorità più alta applicabile potrebbe non essere effettivamente quella con la priorità più alta applicabile. Potrebbe essere applicata una regola con priorità più alta per cui la registrazione non è abilitata.
Per la risoluzione dei problemi, puoi attivare temporaneamente la registrazione 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 della pagina Dettagli dell'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. Attiva temporaneamente il logging per tutte queste regole firewall personalizzate.
Con il logging abilitato, puoi identificare la regola applicabile. Una volta identificati, assicurati di disattivare la registrazione 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 è attivata la registrazione firewall, potrebbero essere necessari alcuni minuti prima che Google Cloud venga completata la propagazione delle modifiche necessarie per registrare il traffico che corrisponde ai componenti aggiornati della regola.
Passaggi successivi
- Visualizza la documentazione di Logging
- Visualizza la documentazione sull'esportazione di Logging