GCP - VPC & Networking

Unterstütze HackTricks

GCP Compute Networking in Kürze

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 Firewall das nächste zu AWS Security Groups und NACLs, aber in diesem Fall sind diese in der VPC und nicht in jeder Instanz definiert.

VPC, Subnetze & Firewalls in GCP

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

Subnetze

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

Firewalls

Standardmäßig hat jedes Netzwerk zwei implizite Firewall-Regeln: allow outbound und deny inbound.

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

  • 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 Sie sehen können, neigen Firewall-Regeln dazu, internen IP-Adressen gegenüber permissiver zu sein. Die Standard-VPC erlaubt allen Verkehr zwischen Compute Instances.

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

Leider gibt es keinen einfachen gcloud-Befehl, um alle Compute Instances mit offenen Ports im Internet auszugeben. Sie müssen die Punkte zwischen Firewall-Regeln, Netzwerk-Tags, Servicekonten und Instanzen verbinden.

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 Ports zu zielen, die vom öffentlichen Internet (0.0.0.0/0) aus zugelassen sind

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

Hierarchische Firewall-Richtlinien

Hierarchische Firewall-Richtlinien ermöglichen es Ihnen, eine konsistente Firewall-Richtlinie in Ihrer Organisation zu erstellen und durchzusetzen. Sie können hierarchische Firewall-Richtlinien auf die gesamte Organisation oder auf einzelne Ordner anwenden. Diese Richtlinien enthalten Regeln, die Verbindungen explizit verweigern oder zulassen können.

Sie erstellen und wenden Firewall-Richtlinien in separaten Schritten an. Sie können Firewall-Richtlinien auf den Organisation- oder Ordnerebenen der Ressourcenhierarchie erstellen und anwenden. Eine Firewall-Richtlinienregel kann Verbindungen blockieren, Verbindungen zulassen oder die Firewall-Regelbewertung an untergeordnete Ordner oder in VPC-Netzwerken definierte VPC-Firewall-Regeln weiterleiten.

Standardmäßig gelten alle hierarchischen Firewall-Richtlinienregeln für alle VMs in allen Projekten unter der Organisation oder dem Ordner, dem die Richtlinie zugeordnet ist. Sie können jedoch einschränken, welche VMs eine bestimmte Regel erhalten, indem Sie Zielnetzwerke oder Zielservicekonten angeben.

Hier können Sie nachlesen, wie Sie eine hierarchische Firewall-Richtlinie erstellen.

Firewall-Regeln Bewertung

  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 dem VPC-Netzwerk der VM-NIC und der Region der VM zugeordnet sind

VPC-Netzwerk-Peering

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

Diese Berechtigungen sind erforderlich:

  • compute.networks.addPeering

  • compute.networks.updatePeering

  • compute.networks.removePeering

  • compute.networks.listPeeringRoutes

Mehr in den Dokumenten.

Referenzen

Unterstütze HackTricks

Last updated