GCP - VPC & Networking

Support HackTricks

GCP Compute Networking in a Nutshell

VPCs enthalten Firewall-Regeln, um eingehenden Verkehr zur VPC zuzulassen. VPCs enthalten auch Subnetze, in denen virtuelle Maschinen verbunden werden. Im Vergleich zu AWS wäre die Firewall das nächste Äquivalent zu AWS Sicherheitsgruppen und NACLs, aber in diesem Fall sind diese in der VPC definiert und nicht in jeder Instanz.

VPC, Subnetze & Firewalls in GCP

Compute-Instanzen sind mit Subnetzen verbunden, die Teil von VPCs sind (Virtual Private Clouds). In GCP gibt es keine Sicherheitsgruppen, es gibt VPC-Firewalls mit Regeln, die auf dieser Netzebene definiert, aber auf jede VM-Instanz angewendet werden.

Subnetze

Eine VPC kann mehrere Subnetze haben. Jedes Subnetz befindet sich in 1 Region.

Firewalls

Standardmäßig hat jedes Netzwerk zwei implizierte Firewall-Regeln: ausgehenden erlauben und eingehenden verweigern.

Wenn ein GCP-Projekt erstellt wird, wird auch eine VPC namens default mit den folgenden Firewall-Regeln erstellt:

  • default-allow-internal: erlaubt allen Verkehr von anderen Instanzen im default-Netzwerk

  • default-allow-ssh: erlaubt 22 von überall

  • default-allow-rdp: erlaubt 3389 von überall

  • default-allow-icmp: erlaubt Ping von überall

Wie du sehen kannst, tendieren Firewall-Regeln dazu, permissiver für interne IP-Adressen zu sein. Die Standard-VPC erlaubt allen Verkehr zwischen Compute-Instanzen.

Weitere Firewall-Regeln können für die Standard-VPC oder für neue VPCs erstellt werden. Firewall-Regeln können über die folgenden Methoden auf Instanzen angewendet werden:

Leider gibt es keinen einfachen gcloud-Befehl, um alle Compute-Instanzen mit offenen Ports im Internet anzuzeigen. Du musst die Verbindungen zwischen Firewall-Regeln, Netzwerk-Tags, Dienstkonten und Instanzen herstellen.

Dieser Prozess wurde mit diesem Python-Skript automatisiert, das Folgendes exportiert:

  • CSV-Datei, die Instanz, öffentliche IP, erlaubtes TCP, erlaubtes UDP zeigt

  • nmap-Scan, um alle Instanzen auf den von der öffentlichen Internet (0.0.0.0/0) erlaubten Eingangsports zu zielen

  • masscan, um den gesamten TCP-Bereich dieser Instanzen zu zielen, die ALLE TCP-Ports vom öffentlichen Internet (0.0.0.0/0) erlauben

Hierarchische Firewall-Richtlinien

Hierarchische Firewall-Richtlinien ermöglichen es dir, eine konsistente Firewall-Richtlinie in deiner Organisation zu erstellen und durchzusetzen. Du kannst hierarchische Firewall-Richtlinien der gesamten Organisation oder einzelnen Ordnern zuweisen. Diese Richtlinien enthalten Regeln, die Verbindungen explizit verweigern oder erlauben können.

Du erstellst und wendest Firewall-Richtlinien in separaten Schritten an. Du kannst Firewall-Richtlinien an den Organisations- oder Ordnerknoten der Ressourcenhierarchie erstellen und anwenden. Eine Firewall-Richtlinienregel kann Verbindungen blockieren, Verbindungen erlauben oder die Bewertung der Firewall-Regel an niedrigere Ordner oder VPC-Firewall-Regeln, die in VPC-Netzwerken definiert sind, verschieben.

Standardmäßig gelten alle Regeln der hierarchischen Firewall-Richtlinie für alle VMs in allen Projekten unter der Organisation oder dem Ordner, mit dem die Richtlinie verknüpft ist. Du kannst jedoch einschränken, welche VMs eine bestimmte Regel erhalten, indem du Zielnetzwerke oder Ziel-Dienstkonten angibst.

Hier kannst du lesen, wie man eine hierarchische Firewall-Richtlinie erstellt.

Bewertung der Firewall-Regeln

  1. Org: Firewall-Richtlinien, die der Organisation zugewiesen sind

  2. Ordner: Firewall-Richtlinien, die dem Ordner zugewiesen sind

  3. VPC: Firewall-Regeln, die der VPC zugewiesen sind

  4. Global: Eine andere Art von Firewall-Regeln, die VPCs zugewiesen werden können

  5. Regional: Firewall-Regeln, die mit dem VPC-Netzwerk der VM's NIC und der Region der VM verbunden sind.

VPC-Netzwerk-Peering

Ermöglicht die Verbindung von zwei Virtual Private Cloud (VPC)-Netzwerken, sodass Ressourcen in jedem Netzwerk miteinander kommunizieren können. Peered VPC-Netzwerke können im selben Projekt, in verschiedenen Projekten derselben Organisation oder in verschiedenen Projekten verschiedener Organisationen sein.

Dies sind die benötigten Berechtigungen:

  • compute.networks.addPeering

  • compute.networks.updatePeering

  • compute.networks.removePeering

  • compute.networks.listPeeringRoutes

Mehr in den Dokumenten.

Referenzen

Support HackTricks

Last updated