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:
VPC-Firewallregeln in Legacy-Netzwerken.
Implizierte Regeln zum Ablehnen von eingehendem Traffic und zum Zulassen von ausgehendem Traffic eines regulären VPC-Netzwerk.
Implizierte Regeln zum Zulassen von eingehendem und ausgehendem Traffic eines RoCE-VPC-Netzwerk.
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_groupverwendet 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:
Basierend auf dem Maschinentyp für reguläre VPC-Netzwerke.
Hängt von der Überwachungs- oder Logging-Aktion der Firewallregel für RoCE-VPC-Netzwerke ab.
Änderungen an Firewallregeln können in VPC-Audit-Logs eingesehen werden.
Beschränkungen
Für die Protokollierung der Aktion
apply_security_profile_groupwird sitzungsbasierte Logik verwendet, die sich von den verbindungsbasierten Logs unterscheidet, die von Standardregeln fürallowoderdenyerstellt 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-netim Projektexample-proj. - Betroffene VM-Instanzen:
- VM1 in Zone
us-west1-amit IP-Adresse10.10.0.99imwest-subnet(Regionus-west1). - VM2 in Zone
us-east1-bmit IP-Adresse10.20.0.99imeast-subnet(Regionus-east1).
- VM1 in Zone
- Regel A: Eine Firewallregel "ausgehenden Traffic ablehnen" bezieht sich auf alle Instanzen im Netzwerk, das Ziel
10.20.0.99(VM2) und den TCP-Port80.- 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-Port80.- 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, Ziel10.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-loggingRegel B: Firewallregel „eingehenden Traffic zulassen“ für den TCP-Port
80, anwendbar auf alle Instanzen, Quelle10.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
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-netim Projektexample-proj. - Betroffene VM-Instanzen:
- VM1 in Zone
us-west1-amit IP-Adresse10.10.0.99imwest-subnet(Regionus-west1). - VM2 in Zone
us-east1-bmit IP-Adresse10.20.0.99imeast-subnet(Regionus-east1).
- VM1 in Zone
- Regel A: Eine Firewallregel "ausgehenden Traffic zulassen" bezieht sich auf alle Instanzen im Netzwerk, das Ziel
10.20.0.99(VM2) und den TCP-Port80.- 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-Port80.- 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, Ziel10.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