Logging zu Firewallrichtlinien-Regeln verwenden

Durch das Logging der Firewallrichtlinienregeln können Sie die Auswirkungen Ihrer Firewallregeln im Blick behalten, prüfen und analysieren. Sie können beispielsweise feststellen, ob eine Firewallregel, die Traffic abweisen soll, wie vorgesehen funktioniert. Logging ist auch nützlich, wenn Sie ermitteln müssen, wie viele Verbindungen von einer bestimmten Firewallregel betroffen sind.

Hier erfahren Sie, wie Sie das Logging von Firewallrichtlinienregeln für VPC-Firewallregeln (Virtual Private Cloud) aktivieren und deaktivieren. Eine Anleitung zum Logging für Firewallrichtlinienregeln finden Sie unter Hierarchische Firewallrichtlinien und -regeln verwenden.

Sie können auch nachlesen, wie Sie erstellte Logs aufrufen. Weitere Informationen darüber, welche Angaben im Log erfasst werden, sowie Beispiele für Logging und Logformate finden Sie unter Logging von Firewallrichtlinien-Regeln – Übersicht.

Wenn Sie das Logging für eine Firewallregel aktivieren, können Sie über Firewall Insights Informationen und Empfehlungen dazu abrufen. Weitere Informationen finden Sie unter Firewall Insights in der Dokumentation zu Network Intelligence Center.

Berechtigungen

Zum Ändern von Firewallregeln oder Zugriffslogs benötigen IAM-Hauptkonten eine der folgenden Rollen:

Aufgabe Erforderliche Rolle
Firewallregeln erstellen, löschen oder aktualisieren Projektinhaber oder -bearbeiter oder Rolle „Sicherheitsadministrator“ (roles/compute.securityAdmin)
Logs ansehen Projektinhaber, -bearbeiter oder -betrachter oder Rolle „Logbetrachter“ (roles/logging.viewer)
Weitere Informationen zu IAM-Rollen und Berechtigungen für Logging finden Sie in der Anleitung für die Zugriffssteuerung.

Logging von Firewallrichtlinienregeln aktivieren und deaktivieren

Wenn Sie eine Firewallregel erstellen, können Sie das Logging für diese Firewallregel aktivieren. Weitere Informationen finden Sie unter Firewallregeln erstellen.

Führen Sie die folgenden Anweisungen aus, um das Logging von Firewallrichtlinienregeln für eine vorhandene Firewallregel zu aktivieren oder zu deaktivieren. Wenn Sie das Logging aktivieren, können Sie steuern, ob Metadatenfelder enthalten sein sollen. Wenn Sie sie weglassen, können Sie Speicherkosten sparen.

Logging von Firewallrichtlinien-Regeln aktivieren

Console

  1. Rufen Sie in der Google Cloud Console die Seite Firewallrichtlinien auf.

    Zu den Firewall-Richtlinien

  2. Prüfen Sie in der Spalte Logs, ob das Firewall-Logging für jede Firewallregel aktiviert oder deaktiviert ist.

  3. Klicken Sie das Kästchen neben jeder Regel an, die Sie aktualisieren möchten, um das Logging für eine oder mehrere Firewallregeln zu aktivieren.

  4. Klicken Sie in der Aktionsleiste VPC-Firewallregeln auf Logs konfigurieren.

  5. Wählen Sie im Dialogfeld Logs konfigurieren die Option Ein aus.

  6. Wenn Sie die Metadatenfelder weglassen möchten, maximieren Sie Logdetails ansehen und entfernen Sie dann das Häkchen aus dem Kästchen Metadaten einschließen.

  7. Klicken Sie auf Save configuration (Konfiguration speichern).

gcloud

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

Ersetzen Sie dabei Folgendes:

  • RULE_NAME: der Name der Firewallregel.
  • LOGGING_METADATA: ob das Logging von Firewallrichtlinienregeln Metadatenfelder in Firewallregellogs enthält. Sie können dieses Feld nur konfigurieren, wenn Logging aktiviert ist. Der Wert muss exclude-all oder include-all sein. Standardmäßig sind Metadatenfelder enthalten.

Weitere Informationen finden Sie in der SDK-Referenzdokumentation.

Terraform

Sie können die Terraform-Ressource verwenden, um eine Firewallregel mit aktiviertem Logging zu erstellen.

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"]
}

Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.

API

Logging von Firewallrichtlinienregeln für eine vorhandene Firewallregel aktivieren

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

Ersetzen Sie die Platzhalter durch gültige Werte:

  • PROJECT_ID: die ID des Projekts, in dem sich die Firewallregel befindet.
  • RULE_NAME: der Name der Firewallregel.
  • LOGGING_METADATA: ob das Logging von Firewallrichtlinienregeln Metadatenfelder in Firewallregellogs enthält. Sie können dieses Feld nur konfigurieren, wenn Logging aktiviert ist. Der Wert muss exclude-all oder include-all sein. Standardmäßig sind Metadatenfelder enthalten.

Weitere Informationen finden Sie in der Methode firewalls.patch.

Logging von Firewallrichtlinien-Regeln deaktivieren

Console

  1. Rufen Sie in der Google Cloud Console die Seite Firewallrichtlinien auf.

    Zu den Firewall-Richtlinien

  2. Prüfen Sie in der Spalte Logs, ob das Firewall-Logging für jede Firewallregel aktiviert oder deaktiviert ist.

  3. Klicken Sie das Kästchen neben jeder Regel an, die Sie aktualisieren möchten, um das Logging für eine oder mehrere Firewallregeln zu deaktivieren.

  4. Klicken Sie in der Aktionsleiste VPC-Firewallregeln auf Logs konfigurieren.

  5. Wählen Sie im Dialogfeld Logs konfigurieren die Option Aus aus und klicken Sie auf Konfiguration speichern.

gcloud

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

Ersetzen Sie RULE_NAME durch den Namen der Firewallregel.

API

Logging von Firewallrichtlinienregeln für eine vorhandene Firewallregel deaktivieren

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

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID des Projekts, in dem sich die Firewallregel befindet.
  • RULE_NAME: der Name der Firewallregel.

Weitere Informationen finden Sie in der Methode firewalls.patch.

Logs ansehen

Die Firewallregel-Logs werden in dem Projekt erstellt, in dem das Netzwerk mit den VM-Instanzen und Firewallregeln gehostet wird. Bei Verwendung einer freigegebenen VPC werden VM-Instanzen in Dienstprojekten erstellt. Sie nutzen jedoch ein freigegebene VPC-Netzwerk, das sich im Hostprojekt befindet. Firewallregel-Logs werden in diesem Hostprojekt gespeichert.

Informationen zu Firewallregel-Logs finden Sie im Abschnitt „Log-Explorer“ der Google Cloud Console.

Die folgenden Anfragen zeigen, wie Sie nach bestimmten Firewallereignissen suchen können.

Alle Firewalllogs ansehen

Führen Sie entweder Option 1 oder Option 2 aus, um die Firewall-Logs aufzurufen.

Option 1

  1. Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf.

    Zum Log-Explorer

  2. Klicken Sie auf Ressource.

  3. Klicken Sie in der Liste Ressource auswählen auf Subnetzwerk und dann auf Übernehmen.

  4. Klicken Sie auf Logname und wählen Sie in der Liste die Option Firewall aus.

  5. Klicken Sie auf Übernehmen.

Option 2

  1. Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf.

    Zum Log-Explorer

  2. Klicken Sie auf Abfrage.

  3. Wenn das Feld "Abfrageeditor" im Bereich Abfrage nicht angezeigt wird, klicken Sie auf die Schaltfläche Abfrage anzeigen.

  4. Fügen Sie Folgendes in das Feld des Abfrageeditors im Bereich Abfrage ein. Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID.

    resource.type="gce_subnetwork"
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall"
    
  5. Klicken Sie auf Abfrage ausführen.

Logs für bestimmte Subnetze ansehen

Führen Sie Option 1 oder Option 2 aus, um die Firewall-Logs für bestimmte Subnetze aufzurufen.

Option 1

  1. Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf.

    Zum Log-Explorer

  2. Klicken Sie auf Ressource.

  3. Klicken Sie in der Liste Ressource auswählen auf Subnetzwerk.

  4. Wählen Sie das Subnetzwerk aus, für das Sie Logs aufrufen möchten, und klicken Sie dann auf Übernehmen.

  5. Klicken Sie auf Logname und wählen Sie in der Liste die Option Firewall aus.

  6. Klicken Sie auf Übernehmen.

Option 2

  1. Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf.

    Zum Log-Explorer

  2. Klicken Sie auf Abfrage.

  3. Wenn das Feld "Abfrageeditor" im Bereich Abfrage nicht angezeigt wird, klicken Sie auf Abfrage anzeigen.

  4. Fügen Sie Folgendes in das Feld des Abfrageeditors im Bereich Abfrage ein. Ersetzen Sie PROJECT_ID durch die Projekt-ID und SUBNET_NAME durch das Subnetzwerk.

    resource.type="gce_subnetwork"
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall"
    resource.labels.subnetwork_name="SUBNET_NAME"
    
  5. Klicken Sie auf Abfrage ausführen.

Logs für bestimmte VMs ansehen

So rufen Sie die Firewall-Logs für bestimmte VMs auf:

Option 1

  1. Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf.

    Zum Log-Explorer

  2. Klicken Sie auf Ressource.

  3. Klicken Sie in der Liste Ressource auswählen auf VM-Instanz.

  4. Wählen Sie die Instanz aus, für die Sie Logs aufrufen möchten, und klicken Sie dann auf Übernehmen.

  5. Klicken Sie auf Logname und wählen Sie in der Liste die Option Firewall aus.

  6. Klicken Sie auf Übernehmen.

Option 2

  1. Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf.

    Zum Log-Explorer

  2. Klicken Sie auf Abfrage.

  3. Wenn das Feld "Abfrageeditor" im Bereich Abfrage nicht angezeigt wird, klicken Sie auf Abfrage anzeigen.

  4. Fügen Sie Folgendes in das Feld des Abfrageeditors im Bereich Abfrage ein. Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID und INSTANCE_ID durch die ID der VM, für die Sie Logs aufrufen möchten.

    resource.type="gce_subnetwork"
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall"
    jsonPayload.instance.vm_name="INSTANCE_ID"
    
  5. Klicken Sie auf Abfrage ausführen.

Logs für Verbindungen aus einem bestimmten Land ansehen

So rufen Sie die Firewall-Logs für ein bestimmtes Land auf:

  1. Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf.

    Zum Log-Explorer

  2. Klicken Sie auf Abfrage.

  3. Wenn das Feld "Abfrageeditor" im Bereich Abfrage nicht angezeigt wird, klicken Sie auf Abfrage anzeigen.

  4. Fügen Sie Folgendes in das Feld des Abfrageeditors im Bereich Abfrage ein. Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID und COUNTRY durch den Code ISO 3166-1-alpha-3.

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

Logs exportieren

Informationen zum Exportieren von Firewallregellogs finden Sie unter Senken konfigurieren und verwalten.

Mit den Beispielabfragen können Sie die zu exportierenden Logs einschränken.

Tabelle der Interaktionen

  • Im Falle einer VM-zu-VM-Kommunikation können Log-Datensätze entsprechend den jeweiligen Firewallregeln von beiden VMs generiert werden.
  • Die im Log erfasste Verbindung enthält Pakete, die in beide Richtungen übertragen werden, wenn das erste Paket von der Firewall zugelassen wurde.
  • Für jede VM werden eingehende Verbindungen mit den auf der VM konfigurierten Firewallregeln abgeglichen. Ausgehende Verbindungen werden mit der auf der VM konfigurierten Firewallregel für ausgehenden Traffic verglichen.
  • Eine zulässige Verbindung, die eine Firewallregel mit "zulassen und im Log erfassen" erfüllt, wird nur einmal erfasst. Der Log-Eintrag wird nicht alle 5 Sekunden wiederholt, selbst wenn die Verbindung bestehen bleibt.
  • Eine abgelehnte Verbindung, die einer Firewallregel mit "ablehnen und im Log erfassen" entspricht, wiederholt den Log-Eintrag alle 5 Sekunden, solange Pakete in der abgelehnten Verbindung erkannt werden.
  • Wenn Sie das Logging für eine Firewallregel aktivieren, die einer bereits aktiven TCP- oder UDP-Verbindung entspricht, wird kein neuer Logeintrag generiert. Ein Logeintrag wird nur erstellt, wenn die Verbindung mindestens 10 Minuten lang inaktiv bleibt und ein neues Paket über dieselbe Verbindung gesendet wird. Bei kontinuierlichem Traffic mit Leerlaufzeiten von weniger als 10 Minuten wird nur ein Logeintrag für die Verbindung generiert.

Die folgende Tabelle zeigt das Logging-Verhalten der Firewall aus der Perspektive einer einzelnen VM.

Im vorliegenden Szenario gilt für eine VM1 eine Regel R1 für eingehenden Traffic und eine Regel R2 für ausgehenden Traffic. Für beide Regeln gibt es jeweils Pakete, die übereinstimmen. Daraus ergibt sich das folgende Verhalten beim Firewall-Logging:

VM1 mit Regel R1 für eingehenden Traffic (übereinstimmende Pakete) VM1 mit Regel R2 für ausgehenden Traffic (übereinstimmende Pakete) Verbindungsrichtung Aktion Log
Zulassen + Log Zulassen Eingehender Traffic Zulassen Ein Logeintrag:
disposition=allow, rule=R1
Ablehnen
Zulassen + Log
Ablehnen + Log
Zulassen Zulassen Eingehender Traffic Zulassen Kein Logging
Ablehnen
Zulassen + Log
Ablehnen + Log
Ablehnen + Log Eingehender Traffic Ablehnen Ein Logeintrag alle 5 Sekunden:
disposition=deny, rule=R1
Ablehnen Eingehender Traffic Ablehnen Kein Logging
Zulassen Zulassen + Log Ausgehender Traffic Zulassen Ein Logeintrag:
disposition=allow, rule=R2
Ablehnen
Zulassen + Log
Ablehnen + Log
Zulassen Zulassen Ausgehender Traffic Zulassen Kein Logging
Ablehnen
Zulassen + Log
Ablehnen + Log
Ablehnen + Log Ausgehender Traffic Ablehnen Ein Logeintrag alle 5 Sekunden:
disposition=deny, rule=R2
Ablehnen Ausgehender Traffic Ablehnen Kein Logging

Beachten Sie, dass der eingehende und der ausgehende Traffic symmetrisch sind.

Im Folgenden finden Sie eine detaillierte Beschreibung der Semantik der Firewall-Logs:

  • Zulassen + Log (Logging wird für TCP und UDP unterstützt)

    • Wird eine Verbindung in die Richtung initiiert, für die die Regel gilt, wird ein einzelner Log-Datensatz erstellt.
    • Antworttraffic ist aufgrund der Verbindungsverfolgung zulässig. Antworttraffic verursacht unabhängig von den für diese Richtung geltenden Firewallregeln kein Logging.
    • Wenn die Verbindung von der Firewall beendet wird (nach 10 Minuten Inaktivität oder Empfang von TCP RST), kann ein anderes Paket in beide Richtungen Logging auslösen.
    • Das Logging basiert auf 5-Tupeln. TCP-Flags haben keinen Einfluss auf das Logging-Verhalten.
  • Ablehnen + Log (Logging wird für TCP und UDP unterstützt)

    • Pakete werden gelöscht (es wird keine Verbindung initiiert).
    • Jedes Paket, das einem eindeutigen 5-Tupel entspricht, wird als fehlgeschlagener Verbindungsversuch im Log erfasst.
    • Dasselbe 5-Tupel wird alle 5 Sekunden erneut im Log erfasst, wenn weiterhin Pakete empfangen werden.

Nächste Schritte