Logging von VPC-Firewallregeln

Durch das Logging von Regeln in VPC-Firewalls 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. Das Logging von VPC-Firewallregeln ist auch nützlich, wenn Sie ermitteln müssen, wie viele Verbindungen von einer bestimmten Firewallregel betroffen sind.

Sie aktivieren das Logging von VPC-Firewallregeln für jede Firewallregel, deren Verbindungen Sie protokollieren möchten. Das Logging von VPC-Firewallregeln ist für jede Firewallregel unabhängig von der Aktion (allow oder deny) oder der Richtung (eingehend oder ausgehend) der Regel verfügbar.

Das Logging von VPC-Firewallregeln protokolliert den Traffic von und zu VM-Instanzen von Compute Engine. Dies umfasst Google Cloud -Produkte, die auf Compute Engine-VMs basieren, z. B. GKE-Cluster (Google Kubernetes Engine) und Instanzen für flexible App Engine-Umgebungen.

Wenn Sie das Logging für eine Firewallregel aktivieren, erstellt Google Cloud jedes Mal, wenn die Regel Traffic zulässt oder ablehnt, einen als Verbindungseintrag bezeichneten Eintrag. Sie können sich diese Einträge in Cloud Logging ansehen und Logs an ein beliebiges Ziel exportieren, das vom Cloud Logging-Export unterstützt wird.

Jeder Verbindungseintrag enthält die folgenden Angaben: IP-Adressen der Quelle und des Ziels, Protokoll, Ports, Datum und Uhrzeit sowie einen Verweis auf die für den Traffic gültige Firewallregel.

Das VPC-Firewallregel-Logging ist sowohl für VPC-Firewallregeln als auch für hierarchische Firewallrichtlinien verfügbar.

Informationen zum Anzeigen von Logs finden Sie unter Logging von VPC-Firewallregeln verwenden.

Spezifikationen

Für das Logging von VPC-Firewallregeln gelten die folgenden Spezifikationen:

  • Das Logging von VPC-Firewallregeln kann für Folgendes aktiviert werden:

    • Firewallregeln in hierarchischen Firewallrichtlinien, regionalen System-Firewallrichtlinien, globalen Netzwerk-Firewallrichtlinien und regionalen Netzwerk-Firewallrichtlinien, die mit einem regulären VPC-Netzwerk verknüpft sind.

    • VPC-Firewallregeln in einem regulären VPC-Netzwerk.

    • Firewallregeln in regionalen Netzwerk-Firewallrichtlinien, die mit einem RoCE-VPC-Netzwerk verknüpft sind.

  • Das Logging von VPC-Firewallregeln unterstützt Folgendes nicht:

  • Das Logging von VPC-Firewallregeln erfasst nur TCP- und UDP-Verbindungen. Sie können zwar Firewallregeln erstellen, die für andere Protokolle gelten, aber ihre Verbindungen können nicht im Log erfasst werden. Wenn Sie auch andere Protokolle protokollieren möchten, sollten Sie die Paketspiegelung verwenden.

  • Logeinträge werden aus der Perspektive von VMs geschrieben. Logeinträge werden nur erstellt, wenn Logging für eine Firewallregel aktiviert ist und wenn die Regel für Traffic gilt, der an die VM oder von der VM gesendet wird. Einträge werden entsprechend den für Verbindungs-Logging gültigen Beschränkungen auf Best-Effort-Basis erstellt.

  • Beim Logging von VPC-Firewallregeln wird nur dann ein Logeintrag erstellt, wenn eine Verbindung hergestellt wird. Es wird nicht jedes Paket protokolliert. Ein UDP-Verbindungseintrag bleibt aktiv, solange mindestens alle 10 Minuten Pakete ausgetauscht werden. Jedes nachfolgende eingehende oder ausgehende Paket setzt den Inaktiv-Timer zurück und verlängert die Verbindung um weitere 10 Minuten. Daher wird bei einem konstanten Stream von UDP-Traffic nur ein Logeintrag für die gesamte Dauer generiert. Wenn Sie kontinuierlichen Einblick in aktive, langlebige Streams ohne Leerlaufzeiten benötigen, verwenden Sie VPC-Flusslogs.

  • Wenn in einer Firewallregel die Aktion apply_security_profile_group verwendet wird, wird beim Logging von VPC-Firewallregeln für jede neue Verbindung, die zur Überprüfung abgefangen wird, ein Logeintrag generiert. Dieser Logeintrag bestätigt, dass die Firewallregel mit dem Traffic übereinstimmte und ihn erfolgreich zur Deep Packet Inspection an den Firewallendpunkt weitergeleitet hat. Weitere Informationen finden Sie unter Bedrohungslogs und Logs zur URL-Filterung.

  • Die Anzahl der Verbindungen, die durch das Logging von VPC-Firewallregeln pro Zeiteinheit protokolliert werden können:

  • Änderungen an Firewallregeln können in VPC-Audit-Logs eingesehen werden.

Beschränkungen

  • Für die Protokollierung der Aktion apply_security_profile_group wird sitzungsbasierte Logik verwendet, die sich von den verbindungsbasierten Logs unterscheidet, die von Standardregeln für allow oder deny erstellt werden. Wenn diese Option aktiviert ist, generiert Cloud NGFW einen einzelnen Logeintrag für die Firewallregel für die erste Sitzung, die der Regel entspricht, auch wenn mehrere Verbindungen als Teil derselben Sitzung identifiziert werden. Dieses Firewall-Log auf hoher Ebene unterscheidet sich von den detaillierten Layer 7-Logs, z. B. URL-Filterungs- oder Bedrohungs-Logs, die weiterhin für jede geprüfte Verbindung generiert werden.

  • Wenn Sie das Logging für eine Firewallregel aktivieren, die mit vorhandenen TCP- oder UDP-Verbindungen übereinstimmt, werden keine Logeinträge für diese aktiven Verbindungen generiert. Die Protokollierung für diese Verbindungen beginnt erst, wenn sie mindestens 10 Minuten lang inaktiv waren.

Logging-Beispiele

Logeinträge werden immer generiert, wenn auf den Traffic eine Firewallregel mit aktiviertem Logging zutrifft. Ein Paketfluss kann insgesamt mehrere Logeinträge generieren. Aus der Perspektive einer bestimmten VM kann jedoch höchstens ein Logeintrag erzeugt werden, wenn für die geltende Firewallregel Logging aktiviert ist.

Die folgenden Beispiele zeigen die Funktionsweise von Firewalllogs.

Beispiel "Ausgehenden Traffic ablehnen"

In diesem Beispiel:

  • Berücksichtigt wird der Traffic zwischen VM-Instanzen im VPC-Netzwerk example-net im Projekt example-proj.
  • Betroffene VM-Instanzen:
    • VM1 in Zone us-west1-a mit IP-Adresse 10.10.0.99 im west-subnet (Region us-west1).
    • VM2 in Zone us-east1-b mit IP-Adresse 10.20.0.99 im east-subnet (Region us-east1).
  • Regel A: Eine Firewallregel "ausgehenden Traffic ablehnen" bezieht sich auf alle Instanzen im Netzwerk, das Ziel 10.20.0.99 (VM2) und den TCP-Port 80.
    • Logging ist für die Regel aktiviert.
  • Regel B: Eine Firewallregel "eingehenden Traffic zulassen" bezieht sich auf alle Instanzen im Netzwerk, die Quelle 10.10.0.99 (VM1) und den TCP-Port 80.
    • Logging ist für die Regel ebenfalls aktiviert.

Die folgenden gcloud-Befehle können zum Erstellen der Firewallregeln verwendet werden:

  • Regel A: Firewallregel "ausgehenden Traffic ablehnen" für TCP-Port 80, anwendbar auf alle Instanzen, Ziel 10.20.0.99:

    gcloud compute firewall-rules create rule-a \
        --network example-net \
        --action deny \
        --direction EGRESS \
        --rules tcp:80 \
        --destination-ranges 10.20.0.99/32 \
        --priority 10 \
        --enable-logging
    
  • Regel B: Firewallregel „eingehenden Traffic zulassen“ für den TCP-Port 80, anwendbar auf alle Instanzen, Quelle 10.10.0.99:

    gcloud compute firewall-rules create rule-b \
        --network example-net \
        --action allow \
        --direction INGRESS \
        --rules tcp:80 \
        --source-ranges 10.10.0.99/32 \
        --priority 10 \
        --enable-logging
    
VM1-zu-VM2-Verbindung.
VM1-zu-VM2-Verbindung (zum Vergrößern klicken).

Szenario: VM1 versucht, am TCP-Port 80 eine Verbindung zu VM2 herzustellen. Die folgenden Firewallregeln werden protokolliert:

  • Für Regel A wird ein Logeintrag aus der Perspektive von VM1 generiert, wenn VM1 versucht, eine Verbindung zu 10.20.0.99 (VM2) herzustellen.
  • Da Regel A den Traffic blockiert, wird Regel B nicht berücksichtigt. Daher gibt es aus Sicht von VM2 keinen Logeintrag für Regel B.

Der folgende Firewall-Logeintrag wird gemeldet.

Feld Werte
Verbindung src_ip=10.10.0.99
src_port=[EPHEMERAL_PORT]
dest_ip=10.20.0.99
dest_port=80
protocol=6
disposition DENIED
rule_details reference = "network:example-net/firewall:rule-a"
priority = 10
action = DENY
destination_range = 10.20.0.99/32
ip_port_info = tcp:80
direction = egress
instance project_id="example-proj"
instance_name=VM1
region=us-west1
zone=us-west1-a
vpc project_id="example-proj"
vpc_name=example-net
subnetwork_name=west-subnet
remote_instance project_id="example-proj"
instance_name=VM2
region=us-east1
zone=us-east1-b
remote_vpc project_id="example-proj"
vpc_name=example-net
subnetwork_name=east-subnet
remote_location Keine Informationen: Dieses Feld wird nur verwendet, wenn sich das Ziel außerhalb Ihres VPC-Netzwerks befindet.

Beispiel "ausgehenden Traffic zulassen, eingehenden Traffic zulassen"

In diesem Beispiel:

  • Berücksichtigt wird der Traffic zwischen VM-Instanzen im VPC-Netzwerk example-net im Projekt example-proj.
  • Betroffene VM-Instanzen:
    • VM1 in Zone us-west1-a mit IP-Adresse 10.10.0.99 im west-subnet (Region us-west1).
    • VM2 in Zone us-east1-b mit IP-Adresse 10.20.0.99 im east-subnet (Region us-east1).
  • Regel A: Eine Firewallregel "ausgehenden Traffic zulassen" bezieht sich auf alle Instanzen im Netzwerk, das Ziel 10.20.0.99 (VM2) und den TCP-Port 80.
    • Logging ist für die Regel aktiviert.
  • Regel B: Eine Firewallregel "eingehenden Traffic zulassen" bezieht sich auf alle Instanzen im Netzwerk, die Quelle 10.10.0.99 (VM1) und den TCP-Port 80.
    • Logging ist für die Regel ebenfalls aktiviert.

Die folgenden gcloud-Befehle können zum Erstellen der beiden Firewallregeln verwendet werden:

  • Regel A: Firewallregel "ausgehenden Traffic zulassen" für den TCP-Port 80, anwendbar auf alle Instanzen, Ziel 10.20.0.99 (VM2):

    gcloud compute firewall-rules create rule-a \
        --network example-net \
        --action allow \
        --direction EGRESS \
        --rules tcp:80 \
        --destination-ranges 10.20.0.99/32 \
        --priority 10 \
        --enable-logging