Bei der Integration der Netzwerksicherheit wird das Producer-Consumer-Modell verwendet, um Daten zu prüfen und zu überwachen. Dabei wird die In-Band-Integration mit der Technologie zum Abfangen von Paketen verwendet, um Netzwerkgeräte von Drittanbietern in den Netzwerkverkehr einzufügen und Deep Packet Inspection durchzuführen.
In dieser Anleitung wird beschrieben, wie Sie Producer- und Consumer-Ressourcen erstellen und konfigurieren, um die In-Band-Integration einzurichten.
Ziele
In dieser Anleitung erfahren Sie, wie Sie die folgenden Aufgaben in einem Projekt ausführen:
- Erstellen Sie benutzerdefinierte VPC-Netzwerke mit Subnetzen für den Produzenten und den Nutzer im selben Projekt.
- Erstellen und konfigurieren Sie für den Ersteller Ressourcen wie einen internen Passthrough-Network-Load-Balancer, einen Abfangdienst und Abfang-Deployment-Ressourcen.
- Erstellen und konfigurieren Sie für den Consumer Client- und Server-VM-Instanzen, Consumer-Endpunktressourcen und Firewallrichtlinien, um den Client-Server-Traffic abzufangen.
- Testen Sie die Verbindung und prüfen Sie, ob Netzwerkverkehrspakete von den Endpunktressourcen des Nutzers abgefangen und von den Abfangressourcen des Erstellers geprüft werden.
Hinweis
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- Aktivieren Sie die Compute Engine API für Ihr Projekt.
- Aktivieren Sie die Network Security API in dem Google Cloud Projekt, das Sie für die Abrechnung verwenden möchten.
- Sie benötigen die Rolle „Compute Network Admin“ (
roles/compute.networkAdmin) auf Projektebene und die Rolle „Security Profile Admin“ (roles/networksecurity.securityProfileAdmin) auf Organisationsebene. - Wenn Sie lieber mit der Befehlszeile arbeiten möchten, installieren Sie die Google Cloud CLI. Informationen zum Konzept und zur Installation des Tools finden Sie in der gcloud-CLI-Übersicht.
Hinweis:Wenn Sie die Google Cloud CLI noch nicht ausgeführt haben, führen Sie zuerst
gcloud initaus, um Ihr gcloud CLI-Verzeichnis zu initialisieren. Rufen Sie die ID Ihres Projekts ab. Sie benötigen sie, um Ressourcen für Abfang- und Endpunkte zu erstellen.
Wenn Sie die gcloud CLI verwenden, können Sie
PROJECT_IDhier oder später in den entsprechenden Befehlen ersetzen.Rufen Sie die ID Ihrer Organisation ab. Sie benötigen sie, um Ressourcen auf Organisationsebene wie Sicherheitsprofile und Sicherheitsprofilgruppen zu erstellen.
Wenn Sie die gcloud CLI verwenden, können Sie
ORG_IDhier oder später in den jeweiligen Befehlen ersetzen.
Produzentenressourcen erstellen
In diesem Abschnitt erstellen Sie die folgenden Ressourcen für den Produzenten:
- Ein benutzerdefiniertes VPC-Netzwerk mit einem Subnetz.
- Eine nicht verwaltete Instanzgruppe mit einer VM-Instanz, auf der ein GENEVE-Echoserver (Generic Network Virtualization Encapsulation) ausgeführt wird.
- Ein interner Passthrough-Network Load Balancer mit einem Backend-Dienst und einer Weiterleitungsregel.
- Eine Firewallregel, um Google Cloud Systemdiagnosen zuzulassen.
- Eine Abfangbereitstellungsgruppe und eine Abfangbereitstellung.
Ein benutzerdefiniertes VPC-Netzwerk erstellen
In diesem Abschnitt erstellen Sie ein VPC-Netzwerk mit einem Subnetz.
Console
Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
Klicken Sie auf VPC-Netzwerk erstellen.
Geben Sie für Name
producer-networkein.Geben Sie unter Beschreibung
Producer VPC networkein.Führen Sie im Abschnitt Subnetze folgende Schritte aus:
- Wählen Sie unter Modus für Subnetzerstellung die Option Benutzerdefiniert aus.
- Geben Sie im Bereich Neues Subnetz folgende Informationen ein:
- Name:
producer-subnet - Region:
us-west1 - IP-Stack-Typ: IPv4 (Einzel-Stack)
- IPv4-Bereich:
10.10.0.0/16
- Name:
- Klicken Sie auf Fertig.
Klicken Sie auf Erstellen.
Öffnen Sie die Google Cloud CLI und führen Sie den folgenden Befehl aus, um die maximale Übertragungseinheit (Maximum Transmission Unit, MTU) des VPC-Netzwerk zu erhöhen.
gcloud compute networks update producer-network \ --mtu=1768Im Befehl geben Sie eine MTU von 1.768 Byte an. Das ist die Summe aus der Standard-MTU eines VPC-Netzwerks (1.460 Byte) und dem Aufwand für die GENEVE-Datenkapselung für die Netzwerksicherheits-Integration (308 Byte).
gcloud
VPC-Netzwerk erstellen.
gcloud compute networks create producer-network \ --subnet-mode=custom \ --mtu=1768 \ --description="Producer VPC network"Im Befehl geben Sie die maximale Übertragungseinheit (MTU) von 1.768 Byte an. Das ist die Summe der Standard-MTU eines VPC-Netzwerks (1.460 Byte) und des GENEVE-Encapsulation-Overheads für die Netzwerksicherheitsintegration (308 Byte).
Erstellen Sie im VPC-Netzwerk ein Subnetz.
gcloud compute networks subnets create producer-subnet \ --network=producer-network \ --region=us-west1 \ --range=10.10.0.0/16
Nicht verwaltete Instanzgruppe erstellen
In diesem Abschnitt erstellen Sie eine nicht verwaltete Instanzgruppe.
Console
Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.
Klicken Sie auf Instanzgruppe erstellen.
Klicken Sie auf Neue nicht verwaltete Instanzgruppe.
Geben Sie für Name
producer-instance-groupein.Wählen Sie im Abschnitt Standort
us-west1für Region undus-west1-bfür Zone aus.Wählen Sie für Netzwerk die Option
producer-networkaus.Wählen Sie für Subnetzwerk die Option
producer-subnetaus.Klicken Sie auf Erstellen.
gcloud
gcloud compute instance-groups unmanaged create producer-instance-group \
--zone=us-west1-b
Load-Balancer-Komponenten konfigurieren
In diesem Abschnitt erstellen Sie die Komponenten für einen internen Passthrough-Network Load Balancer, einschließlich eines Backend-Dienstes und einer Weiterleitungsregel.
Console
Konfiguration starten
Rufen Sie in der Google Cloud Console die Seite Load Balancing auf.
- Klicken Sie auf Load-Balancer erstellen.
- Wählen Sie unter Typ des Load Balancers die Option Network Load Balancer (TCP/UDP/SSL) aus und klicken Sie auf Weiter.
- Wählen Sie für Proxy oder Passthrough die Option Passthrough-Load Balancer aus und klicken Sie auf Weiter.
- Wählen Sie für Öffentlich oder intern die Option Intern aus und klicken Sie auf Weiter.
- Klicken Sie auf Konfigurieren.
Grundlegende Konfiguration
Geben Sie auf der Seite Internen Passthrough-Network Load Balancer erstellen die folgenden Informationen ein:
- Name des Load-Balancers:
producer-ilb - Region:
us-west1 - Netzwerk:
producer-network
Back-Ends konfigurieren
- Klicken Sie auf Backend-Konfiguration.
- Wählen Sie für Protokoll die Option
UDPaus. - Wählen Sie in der Liste Systemdiagnose die Option Systemdiagnose erstellen aus, geben Sie die folgenden Informationen ein und klicken Sie auf Erstellen.
- Name:
producer-health-check - Bereich: Regional
- Port:
80 - Proxyprotokoll:
NONE
- Name:
- Wählen Sie im Bereich Neues Backend von Backends den IP-Stack-Typ als IPv4 (Single-Stack) aus.
- Wählen Sie unter Instanzgruppe die Instanzgruppe
producer-instance-groupaus und klicken Sie auf Fertig. - Überprüfen Sie, bevor Sie fortfahren, ob sich neben Back-End-Konfiguration ein blaues Häkchen befindet.
Frontend konfigurieren
Führen Sie im Abschnitt Neue Frontend-IP-Adresse und neuer Frontend-Port folgende Schritte aus:
- Geben Sie für Name
producer-ilb-frein. - Wählen Sie für Subnetzwerk die Option
producer-subnetaus. - Wählen Sie unter Ports die Option Einzeln aus und geben Sie unter Portnummer den Wert
6081ein. - Überprüfen Sie, bevor Sie fortfahren, ob sich neben der Frontend-Konfiguration ein blaues Häkchen befindet.
Konfiguration prüfen
- Klicken Sie auf Prüfen und abschließen.
- Prüfen Sie die Konfigurationseinstellungen des Load-Balancers.
- Klicken Sie auf Erstellen.
gcloud
Regionale Systemdiagnose erstellen.
gcloud compute health-checks create tcp producer-health-check \ --region=us-west1 \ --port=80Erstellen Sie den Backend-Dienst.
gcloud compute backend-services create producer-backend-service \ --protocol=UDP \ --region=us-west1 \ --health-checks=producer-health-check \ --health-checks-region=us-west1 \ --load-balancing-scheme=INTERNALErstellen Sie eine Weiterleitungsregel für den Backend-Dienst.
gcloud compute forwarding-rules create producer-ilb-fr \ --backend-service=producer-backend-service \ --region=us-west1 \ --network=producer-network \ --subnet=producer-subnet \ --ip-protocol=UDP \ --load-balancing-scheme=INTERNAL \ --ports=6081
VM-Instanz erstellen und der Instanzgruppe hinzufügen
In diesem Abschnitt erstellen Sie eine VM-Instanz mit einem Startskript, das einen Echo-Server für GENEVE-gekapselte Pakete einrichtet.
Bevor Sie die VM-Instanz erstellen, rufen Sie die IP-Adresse der Weiterleitungsregel des internen Passthrough-Network-Load-Balancers und des Gateways des Subnetzes ab. Sie benötigen die IP-Adressen für das Startskript.
Console
IP-Adresse des internen Passthrough-Network Load Balancers abrufen
Rufen Sie in der Google Cloud Console die Seite Load Balancing auf.
Klicken Sie auf den Load-Balancer
producer-ilb.Notieren Sie sich im Abschnitt Frontend die IP-Adresse der Weiterleitungsregel aus der Spalte IP:Ports.
IP-Adresse des Subnetz-Gateways abrufen
Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
Klicken Sie auf das VPC-Netzwerk
producer-network.Klicken Sie auf den Tab Subnetze.
Notieren Sie sich im Abschnitt Subnetze die Gateway-IP-Adresse aus der Spalte Gateway.
VM-Instanz erstellen
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf:
- Klicken Sie auf Instanz erstellen.
- Geben Sie für Name
producer-instanceein. - Wählen Sie bei Region die Option
us-west1aus. - Wählen Sie bei Zone die Option
us-west1-baus. Klicken Sie auf Netzwerk und konfigurieren Sie die folgenden Felder:
Klicken Sie im Bereich Netzwerkschnittstellen auf
defaultund bearbeiten Sie die Netzwerkschnittstelle.- Netzwerk:
producer-network - Subnetz:
producer-subnet - Externe IPv4-Adresse: Keine
- Netzwerk:
Klicken Sie auf Erweitert und geben Sie das folgende Skript in Startskript ein:
#!/bin/bash # Enable IP forwarding. echo 1 > /proc/sys/net/ipv4/ip_forward # Log incoming packets from the gateway IP and the GENEVE 6081 # port. iptables -t nat -A PREROUTING -p udp -s GATEWAY_IP/32 --dport 6081 -j LOG --log-prefix="[NSI INTERCEPT] " # Apply DNAT (Destination NAT) on incoming packets from the gateway IP # and the GENEVE 6081 port. # Set the destination IP to the gateway IP so the packet is rerouted # back to the sender. iptables -t nat -A PREROUTING -p udp -s GATEWAY_IP/32 --dport 6081 -j DNAT --to-destination GATEWAY_IP # Apply SNAT (Source NAT) on outgoing packets that have the GENEVE 6081 # port and source IP that equals the gateway IP. # Set the source IP to the internal load balancer IP which # effectively swaps the IPs of the original packet. iptables -t nat -A POSTROUTING -p udp -s GATEWAY_IP/32 --dport 6081 -j SNAT --to-source LOAD_BALANCER_IP # Spin up a simple server for health checks on port 80. nohup python3 -u -m http.server 80 &
Ersetzen Sie Folgendes:
GATEWAY_IP: die IP-Adresse des Subnetz-Gateways.LOAD_BALANCER_IP: die IP-Adresse der Weiterleitungsregel des Load-Balancers.
Klicken Sie auf Erstellen.
VM-Instanz der Instanzgruppe hinzufügen
Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.
Klicken Sie auf
producer-instance-group.Klicken Sie auf Bearbeiten.
Wählen Sie im Abschnitt VM-Instanzen aus der Liste VMs auswählen die
producer-instance-VM aus.Klicken Sie auf Speichern.
gcloud
Rufen Sie die IP-Adresse der Weiterleitungsregel des Load-Balancers ab.
ILB_IP=$(gcloud compute forwarding-rules describe producer-ilb-fr \ --region=us-west1 \ --format="get(IPAddress)")Rufen Sie die IP-Adresse des Gateways des Subnetzes ab.
GW_IP=$(gcloud compute networks subnets describe producer-subnet \ --region=us-west1 \ --format="get(gatewayAddress)")Erstellen Sie eine VM-Instanz.
gcloud compute instances create producer-instance \ --image-project=debian-cloud \ --image-family=debian-11 \ --machine-type=e2-micro \ --zone=us-west1-b \ --network-interface="subnet=producer-subnet,no-address" \ --metadata=startup-script='#!/bin/bash # Enable IP forwarding. echo 1 > /proc/sys/net/ipv4/ip_forward # Log incoming packets from the gateway IP and the GENEVE 6081 port. iptables -t nat -A PREROUTING -p udp -s '"$GW_IP"'/32 --dport 6081 -j LOG --log-prefix="[NSI INTERCEPT] " # Apply DNAT (Destination NAT) on incoming packets from the gateway # IP and the GENEVE 6081 port. # Set the destination IP to the gateway IP so the packet is rerouted # back to the sender. iptables -t nat -A PREROUTING -p udp -s '"$GW_IP"'/32 --dport 6081 -j DNAT --to-destination '"$GW_IP"' # Apply SNAT (Source NAT) on outgoing packets that have the GENEVE # 6081 port and source IP that equals the gateway IP. # Set the source IP to the internal load balancer IP which # effectively swaps the IPs of the original packet. iptables -t nat -A POSTROUTING -p udp -s '"$GW_IP"'/32 --dport 6081 -j SNAT --to-source '"$ILB_IP"' # Spin up a simple server for health checks on port 80. nohup python3 -u -m http.server 80 &'Fügen Sie der Instanzgruppe die VM-Instanz hinzu.
gcloud compute instance-groups unmanaged add-instances producer-instance-group \ --instances=producer-instance \ --zone=us-west1-bFügen Sie die Instanzgruppe dem Backend-Dienst hinzu:
gcloud compute backend-services add-backend producer-backend-service \ --region=us-west1 \ --instance-group=producer-instance-group \ --instance-group-zone=us-west1-b
Firewallrichtlinie erstellen und Firewallregeln hinzufügen
In diesem Abschnitt erstellen Sie eine Firewallrichtlinie und fügen Firewallregeln hinzu, um UDP-Verbindungen, Google Cloud Systemdiagnosen und SSH-Verbindungen zur Producer-VM-Instanz über Identity-Aware Proxy (IAP) zuzulassen.
Console
Rufen Sie in der Google Cloud Console die Seite Firewallrichtlinien auf.
Klicken Sie auf Firewallrichtlinie erstellen.
Geben Sie im Feld Name
producer-firewall-policyein.Wählen Sie unter Bereitstellungsbereich die Option Global aus und klicken Sie auf Weiter.
Erstellen Sie die folgenden Regeln für Ihre Richtlinie.
UDP-Verbindung mit GENEVE-Port über die IP-Adresse des VPC-Gateways zulassen
- Klicken Sie auf Firewallregel erstellen und konfigurieren Sie die folgenden Felder:
- Priorität:
100 - Trafficrichtung: Eingehend
- Aktion bei Übereinstimmung: Zulassen
- Quellfilter > IP-Bereiche:
GATEWAY_IP - Protokoll und Ports: Wählen Sie Angegebene Protokolle und Ports aus, klicken Sie das Kästchen UDP an und geben Sie
6081in Ports ein.
- Priorität:
- Klicken Sie auf Erstellen.
Ersetzen Sie
GATEWAY_IPdurch die IP-Adresse des Subnetz-Gateways.Systemdiagnosen Google Cloud zulassen
- Klicken Sie auf Firewallregel erstellen und konfigurieren Sie die folgenden Felder:
- Priorität:
101 - Trafficrichtung: Eingehend
- Aktion bei Übereinstimmung: Zulassen
- IP-Bereiche:
35.191.0.0/16und130.211.0.0/22 - Protokolle und Ports: Wählen Sie Angegebene Protokolle und Ports aus, klicken Sie das Kästchen TCP an und geben Sie
80in Ports ein.
- Priorität:
- Klicken Sie auf Erstellen.
SSH-Verbindung zur Producer-VM-Instanz über Identity-Aware Proxy zulassen
- Klicken Sie auf Firewallregel erstellen und konfigurieren Sie die folgenden Felder:
- Priorität:
102 - Trafficrichtung: Eingehend
- Aktion bei Übereinstimmung: Zulassen
- IP-Bereiche:
35.235.240.0/20 - Protokolle und Ports: Wählen Sie Angegebene Protokolle und Ports aus, klicken Sie das Kästchen TCP an und geben Sie
22in Ports ein.
- Priorität:
- Klicken Sie auf Erstellen.
- Klicken Sie auf Firewallregel erstellen und konfigurieren Sie die folgenden Felder:
Wenn Sie die Richtlinie mit einem Netzwerk verknüpfen möchten, klicken Sie auf Weiter und dann auf Verknüpfen.
Aktivieren Sie das Kästchen
producer-network.Klicken Sie auf Weiter.
Klicken Sie auf Erstellen.
gcloud
Globale Netzwerk-Firewallrichtlinie erstellen
gcloud compute network-firewall-policies create producer-firewall-policy \ --globalVerknüpfen Sie die Firewallrichtlinie mit dem Erstellernetzwerk.
gcloud compute network-firewall-policies associations create \ --name=producer-firewall-policy-assoc \ --firewall-policy=producer-firewall-policy \ --global-firewall-policy \ --network=producer-networkErstellen Sie eine Firewallregel, um eine UDP-Verbindung mit dem GENEVE-Port von der VPC-Gateway-IP-Adresse zuzulassen.
gcloud compute network-firewall-policies rules create 100 \ --firewall-policy=producer-firewall-policy \ --global-firewall-policy \ --action=allow \ --direction=INGRESS \ --layer4-configs=udp:6081 \ --src-ip-ranges=$GW_IP/32Erstellen Sie eine Firewallregel, um Google Cloud -Systemdiagnosen zuzulassen.
gcloud compute network-firewall-policies rules create 101 \ --firewall-policy=producer-firewall-policy \ --global-firewall-policy \ --action=allow \ --direction=INGRESS \ --layer4-configs=tcp:80 \ --src-ip-ranges=35.191.0.0/16,130.211.0.0/22Erstellen Sie eine Firewallregel, um eine SSH-Verbindung zur Producer-VM-Instanz über Identity-Aware Proxy zuzulassen.
gcloud compute network-firewall-policies rules create 102 \ --firewall-policy=producer-firewall-policy \ --global-firewall-policy \ --action=allow \ --direction=INGRESS \ --layer4-configs=tcp:22 \ --src-ip-ranges=35.235.240.0/20
Producer-Abfangressourcen erstellen
In diesem Abschnitt erstellen Sie eine Abfangbereitstellungsgruppe und eine Abfangbereitstellung.
Console
Rufen Sie in der Google Cloud -Console die Seite Bereitstellungsgruppen auf.
Klicken Sie auf Deployment-Gruppe erstellen.
Geben Sie für Name
producer-deployment-groupein.Wählen Sie für Netzwerk die Option
producer-networkaus.Wählen Sie als Zweck die Option NSI in-band aus.
Klicken Sie im Bereich Intercept-Bereitstellungen auf Intercept-Bereitstellung erstellen, geben Sie die folgenden Felder an und klicken Sie auf Erstellen:
- Name:
producer-deployment. - Region:
us-west1. - Zone:
us-west1-b. - Interner Load-Balancer:
producer-ilb.
- Name:
Klicken Sie auf Erstellen.
gcloud
Erstellen Sie eine Abfangbereitstellungsgruppe.
gcloud network-security intercept-deployment-groups create producer-deployment-group \ --location=global \ --network=projects/PROJECT_ID/global/networks/producer-network \ --no-asyncErsetzen Sie
PROJECT_IDdurch die ID Ihres Projekts.Erstellen Sie eine Abfangbereitstellung.
gcloud network-security intercept-deployments create producer-deployment \ --location=us-west1-b \ --forwarding-rule=producer-ilb-fr \ --forwarding-rule-location=us-west1 \ --intercept-deployment-group=projects/PROJECT_ID/locations/global/interceptDeploymentGroups/producer-deployment-group \ --no-asyncErsetzen Sie
PROJECT_IDdurch die ID Ihres Projekts.
Nutzerressourcen erstellen
In diesem Abschnitt erstellen Sie die folgenden Ressourcen für den Consumer:
- Ein benutzerdefiniertes VPC-Netzwerk mit einem Subnetz.
- Ein Server und eine Client-VM.
- Eine Firewallrichtlinie und eine Regel zum Abfangen von Traffic.
- Eine Abfangendpunktgruppe und eine Verknüpfung der Abfangendpunktgruppe.
- Ein Sicherheitsprofil und eine Sicherheitsprofilgruppe.
Ein benutzerdefiniertes VPC-Netzwerk erstellen
In diesem Abschnitt erstellen Sie ein VPC-Netzwerk mit einem Subnetz.
Console
Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
Klicken Sie auf VPC-Netzwerk erstellen.
Geben Sie für Name
consumer-networkein.Geben Sie unter Beschreibung
Consumer VPC networkein.Führen Sie im Abschnitt Subnetze folgende Schritte aus:
- Legen Sie Modus für Subnetzerstellung auf Benutzerdefiniert fest.
- Geben Sie im Bereich Neues Subnetz folgende Informationen ein:
- Name:
consumer-subnet - Region:
us-west1 - IP-Stack-Typ: IPv4 (Einzel-Stack)
- IPv4-Bereich:
10.10.0.0/16
- Name:
- Klicken Sie auf Fertig.
Klicken Sie auf Erstellen.
gcloud
Nutzer-VPC-Netzwerk erstellen.
gcloud compute networks create consumer-network \ --subnet-mode=custom \ --description="Consumer VPC network"Erstellen Sie im VPC-Netzwerk ein Subnetz.
gcloud compute networks subnets create consumer-subnet \ --network=consumer-network \ --region=us-west1 \ --range=10.10.0.0/16
Server- und Client-VMs erstellen
In diesem Abschnitt erstellen Sie einen Server und eine Client-VM.
Console
Server-VM erstellen
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf:
Klicken Sie auf Instanz erstellen.
Legen Sie als Name
consumer-server-vmfest.Legen Sie Region auf
us-west1fest.Legen Sie für Zone den Wert
us-west1-bfest.Legen Sie Maschinentyp auf e2-micro fest.
Klicken Sie auf Netzwerk und konfigurieren Sie die folgenden Felder:
Klicken Sie im Bereich Netzwerkschnittstellen auf
defaultund bearbeiten Sie die Netzwerkschnittstelle:- Netzwerk:
consumer-network - Subnetz:
consumer-subnet - Externe IPv4-Adresse: Keine
- Netzwerk:
Klicken Sie auf Erweitert und geben Sie das folgende Skript in Startskript ein:
echo success > /tmp/connection_test && nohup python3 -u -m http.server --directory /tmp 8000
Klicken Sie auf Erstellen.
Client-VM erstellen
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf:
Klicken Sie auf Instanz erstellen.
Legen Sie als Name
consumer-client-vmfest.Legen Sie Region auf
us-west1fest.Legen Sie für Zone den Wert
us-west1-bfest.Legen Sie Maschinentyp auf e2-micro fest.
Klicken Sie auf Netzwerk und konfigurieren Sie die folgenden Felder:
Klicken Sie im Bereich Netzwerkschnittstellen auf
defaultund bearbeiten Sie die Netzwerkschnittstelle:- Netzwerk:
consumer-network - Subnetz:
consumer-subnet - Externe IPv4-Adresse: Keine
- Netzwerk:
Klicken Sie auf Erstellen.
gcloud
die Server-VM erstellen
gcloud compute instances create consumer-server-vm \ --image-project=debian-cloud \ --image-family=debian-11 \ --machine-type=e2-micro \ --zone=us-west1-b \ --network-interface="subnet=consumer-subnet,no-address" \ --metadata=startup-script="echo success > /tmp/connection_test && nohup python3 -u -m http.server --directory /tmp 8000"die Client-VM erstellen
gcloud compute instances create consumer-client-vm \ --image-project=debian-cloud \ --image-family=debian-11 \ --machine-type=e2-micro \ --zone=us-west1-b \ --network-interface="subnet=consumer-subnet,no-address"
Firewallrichtlinie zum Zulassen von SSH-Zugriff erstellen
In diesem Abschnitt erstellen Sie eine Firewallrichtlinie und fügen eine Firewallregel hinzu, um SSH-Zugriff auf die Consumer-VMs zuzulassen.
Console
Rufen Sie in der Google Cloud Console die Seite Firewallrichtlinien auf.
Klicken Sie auf Firewallrichtlinie erstellen.
Geben Sie im Feld Name
consumer-firewall-policyein.Wählen Sie unter Bereitstellungsbereich die Option Global aus und klicken Sie auf Weiter.
Klicken Sie auf Firewallregel erstellen, konfigurieren Sie die folgenden Felder und klicken Sie auf Erstellen:
- Priorität:
100 - Trafficrichtung: Eingehend
- Aktion bei Übereinstimmung: Zulassen
- Quellfilter > IP-Bereiche:
35.235.240.0/20 - Protokolle und Ports: Wählen Sie Angegebene Protokolle und Ports aus, klicken Sie das Kästchen TCP an und geben Sie
22in Ports ein.
Der IPv4-Bereich
35.235.240.0/20enthält alle IP-Adressen, die Identity-Aware Proxy für die TCP-Weiterleitung verwendet. Weitere Informationen finden Sie unter Projekt für die TCP-Weiterleitung vorbereiten.- Priorität:
Wenn Sie die Richtlinie mit einem Netzwerk verknüpfen möchten, klicken Sie auf Weiter und dann auf Verknüpfen.
Aktivieren Sie das Kästchen
consumer-network.Klicken Sie auf Weiter.
Klicken Sie auf Erstellen.
gcloud
Globale Netzwerk-Firewallrichtlinie erstellen
gcloud compute network-firewall-policies create consumer-firewall-policy \ --globalVerknüpfen Sie die Firewallrichtlinie mit dem Nutzer-Netzwerk.
gcloud compute network-firewall-policies associations create \ --name=consumer-firewall-policy-assoc \ --firewall-policy=consumer-firewall-policy \ --global-firewall-policy \ --network=consumer-networkErstellen Sie eine SSH-Zulassungsregel, um SSH-Verbindungen zur Client-VM-Instanz über Identity-Aware Proxy zu ermöglichen.
gcloud compute network-firewall-policies rules create 101 \ --firewall-policy=consumer-firewall-policy \ --global-firewall-policy \ --action=allow \ --direction=INGRESS \ --layer4-configs=tcp:22 \ --src-ip-ranges=35.235.240.0/20Der IPv4-Bereich
35.235.240.0/20enthält alle IP-Adressen, die Identity-Aware Proxy (IAP) für die TCP-Weiterleitung verwendet. Weitere Informationen finden Sie unter Projekt für die TCP-Weiterleitung vorbereiten.
Nutzerendpunktgruppe erstellen
In diesem Abschnitt erstellen Sie eine Abfangendpunktgruppe und eine Abfangendpunktgruppen-Verknüpfung.
Console
Rufen Sie in der Google Cloud Console die Seite Endpunktgruppen auf.
Klicken Sie auf Endpunktgruppe erstellen.
Geben Sie für Name
consumer-endpoint-groupein.Wählen Sie für Bereitstellungsgruppe im Menü Projekt auswählen die Option Aktuelles Projekt auswählen aus.
Wählen Sie für Intercept-Bereitstellungsgruppe die Option
producer-deployment-groupaus.Klicken Sie auf Weiter.
Klicken Sie auf Endpunktgruppen-Verknüpfung hinzufügen.
Wählen Sie unter Projekt Ihr aktuelles Projekt aus.
Wählen Sie für Netzwerk die Option
consumer-networkaus.Klicken Sie auf Erstellen.
gcloud
Erstellen Sie die Abfangendpunktgruppe.
gcloud network-security intercept-endpoint-groups create consumer-endpoint-group \ --location=global \ --intercept-deployment-group=projects/PROJECT_ID/locations/global/interceptDeploymentGroups/producer-deployment-group \ --no-asyncErsetzen Sie
PROJECT_IDdurch die ID Ihres Projekts.Erstellen Sie die Endpunktgruppen-Verknüpfung für das Abfangen.
gcloud network-security intercept-endpoint-group-associations create consumer-endpoint-group-association \ --location=global \ --intercept-endpoint-group=projects/PROJECT_ID/locations/global/interceptEndpointGroups/consumer-endpoint-group \ --network=consumer-network \ --no-asyncErsetzen Sie
PROJECT_IDdurch die ID Ihres Projekts.
Sicherheitsprofil und Sicherheitsprofilgruppe erstellen
Erstellen Sie eine Sicherheitsprofilgruppe und ein benutzerdefiniertes Sicherheitsprofil, um den Traffic abzufangen.
Console
Sicherheitsprofil erstellen
Rufen Sie in der Google Cloud Console die Seite Sicherheitsprofile auf.
Wählen Sie in der Projektauswahl Ihre Organisation aus.
Klicken Sie auf dem Tab Sicherheitsprofile auf Profil erstellen.
Geben Sie für Name
consumer-security-profileein.Wählen Sie als Zweck des Sicherheitsprofils die Option NSI in-band aus.
Wählen Sie unter Projekt Ihr aktuelles Projekt aus.
Wählen Sie für Intercept-Endpunktgruppe die Option
consumer-endpoint-groupaus.Klicken Sie auf Erstellen.
Sicherheitsprofilgruppe erstellen
Rufen Sie in der Google Cloud Console die Seite Sicherheitsprofilgruppen auf.
Wählen Sie in der Projektauswahl Ihre Organisation aus.
Klicken Sie auf dem Tab Sicherheitsprofilgruppen auf Profilgruppe erstellen.
Geben Sie für Name
consumer-security-profile-groupein.Wählen Sie als Zweck der Sicherheitsprofilgruppe die Option NSI in-band aus.
Wählen Sie für Benutzerdefiniertes Abfangprofil die Option
consumer-security-profileaus.Klicken Sie auf Erstellen.
gcloud
Erstellen Sie ein Abfang-Sicherheitsprofil.
gcloud network-security security-profiles custom-intercept create consumer-security-profile \ --location=global \ --organization=ORG_ID \ --intercept-endpoint-group=projects/PROJECT_ID/locations/global/interceptEndpointGroups/consumer-endpoint-group \ --no-asyncErsetzen Sie Folgendes:
ORG_ID: ID Ihrer Organisation. Sicherheitsprofile sind Ressourcen auf Organisationsebene. Zum Erstellen von Sicherheitsprofilen benötigen Sie die Rolle „Security Profile Admin“ (networksecurity.securityProfileAdmin) auf Organisationsebene.PROJECT_ID: die Projekt-ID.
Erstellen Sie eine Sicherheitsprofilgruppe für das Abfangen.
gcloud network-security security-profile-groups create consumer-security-profile-group \ --location=global \ --organization=ORG_ID \ --custom-intercept-profile=consumer-security-profile \ --billing-project=PROJECT_ID \ --no-asyncErsetzen Sie Folgendes:
ORG_ID: ID Ihrer Organisation. Sicherheitsprofilgruppen sind Ressourcen auf Organisationsebene. Zum Erstellen von Sicherheitsprofilen benötigen Sie die Rolle „Security Profile Admin“ (networksecurity.securityProfileAdmin) auf Organisationsebene.PROJECT_ID: die Projekt-ID.
Firewallrichtlinie zum Abfangen von Traffic erstellen
In diesem Abschnitt erstellen Sie eine Firewallrichtlinie und eine Firewallregel, um Traffic abzufangen.
Console
Rufen Sie in der Google Cloud Console die Seite Firewallrichtlinien auf.
Klicken Sie auf
consumer-firewall-policy.Klicken Sie auf Firewallregel erstellen und konfigurieren Sie die folgenden Felder:
- Priorität:
100 - Trafficrichtung: Eingehend
- Aktion bei Übereinstimmung: Weiter zur L7-Prüfung
- Zweck: NSI in-band
- Sicherheitsprofilgruppe:
consumer-security-profile-group - IP-Bereiche:
10.10.0.0/16 - Protokolle und Ports: Wählen Sie Angegebene Protokolle und Ports aus, klicken Sie das Kästchen TCP an und geben Sie
8000in Ports ein.
- Priorität:
Klicken Sie auf Erstellen.
gcloud
Fügen Sie eine Firewallregel hinzu, um Traffic am TCP-Port 8000 auf der Server-VM abzufangen.
gcloud compute network-firewall-policies rules create 100 \ --firewall-policy=consumer-firewall-policy \ --global-firewall-policy \ --action=apply_security_profile_group \ --security-profile-group=organizations/ORG_ID/locations/global/securityProfileGroups/consumer-security-profile-group \ --direction=INGRESS \ --layer4-configs=tcp:8000 \ --src-ip-ranges=10.10.0.0/16Ersetzen Sie
ORG_IDdurch die ID Ihrer Organisation.
Verbindung testen
In diesem Abschnitt senden Sie etwas Netzwerkverkehr von der Client-VM-Instanz des Nutzers an die Server-VM-Instanz des Nutzers und prüfen dann die Logs der Producer-VM-Instanz, um das Abfangen zu bestätigen.
Führen Sie den folgenden Befehl aus, um über SSH eine Verbindung zur Client-VM-Instanz des Nutzers herzustellen und eine Anfrage an die Server-VM-Instanz des Nutzers zu senden.
gcloud compute ssh consumer-client-vm \ --tunnel-through-iap \ --zone=us-west1-b \ --command="curl -m 3 -s http://consumer-server-vm:8000/connection_test || echo fail"Wenn Sie den vorherigen Befehl ausführen, wird die Meldung
successangezeigt. Sie gibt an, dass Traffic vom Client an den Server gesendet wird.Führen Sie den folgenden Befehl aus, um die Logs der Ersteller-VM-Instanz zu prüfen.
gcloud compute ssh producer-instance \ --tunnel-through-iap \ --zone=us-west1-b \ --command="cat /var/log/syslog | grep 'NSI INTERCEPT'"Es wird eine Meldung ähnlich der folgenden angezeigt:
[NSI INTERCEPT] IN=ens4 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx SRC=10.10.0.1 DST=10.10.0.2 LEN=136 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=45554 DPT=6081 LEN=116. Dies weist darauf hin, dass der Client-Server-Traffic von der Ersteller-VM-Instanz abgefangen wird.
Bereinigen
Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.
Nutzerressourcen löschen
Trennen Sie die Firewallrichtlinie vom Consumer-Netzwerk und löschen Sie die Firewallrichtlinie.
Console
Rufen Sie in der Google Cloud Console die Seite Firewallrichtlinien auf.
Klicken Sie auf die Richtlinie
consumer-firewall-policy.Klicken Sie auf den Tab Verknüpfungen.
Aktivieren Sie das Kästchen für die
consumer-network-Verknüpfung.Klicken Sie auf Verknüpfung entfernen.
Klicken Sie auf Entfernen.
Klicken Sie oben auf der Seite auf Löschen.
Klicken Sie zum Bestätigen noch einmal auf Löschen.
gcloud
Entfernen Sie die Verknüpfung.
gcloud compute network-firewall-policies associations delete \ --name=consumer-firewall-policy-assoc \ --firewall-policy=consumer-firewall-policy \ --global-firewall-policyLöschen Sie die Firewallrichtlinie.
gcloud compute network-firewall-policies delete consumer-firewall-policy \ --global
Löschen Sie die Sicherheitsprofilgruppe.
Console
Rufen Sie in der Google Cloud Console die Seite Sicherheitsprofile auf.
Wählen Sie in der Projektauswahl Ihre Organisation aus.
Wählen Sie auf dem Tab Sicherheitsprofilgruppen die Sicherheitsprofilgruppe
consumer-security-profile-groupaus und klicken Sie auf Löschen.Klicken Sie zum Bestätigen noch einmal auf Löschen.
gcloud
gcloud network-security security-profile-groups delete consumer-security-profile-group \ --location=global \ --organization=ORG_ID \ --billing-project=PROJECT_ID \ --quietErsetzen Sie Folgendes:
ORG_ID: die ID Ihrer OrganisationPROJECT_ID: die Projekt-ID
Löschen Sie das Sicherheitsprofil.
Console
Rufen Sie in der Google Cloud Console die Seite Sicherheitsprofile auf.
Wählen Sie in der Projektauswahl Ihre Organisation aus.
Wählen Sie auf dem Tab Sicherheitsprofile das Sicherheitsprofil
consumer-security-profileaus und klicken Sie auf Löschen.Klicken Sie zum Bestätigen noch einmal auf Löschen.
gcloud
gcloud network-security security-profiles custom-intercept delete consumer-security-profile \ --location=global \ --organization=ORG_ID \ --billing-project=PROJECT_ID \ --quietErsetzen Sie Folgendes:
ORG_ID: die ID Ihrer OrganisationPROJECT_ID: die Projekt-ID
Löschen Sie die Verknüpfung der Abfang-Endpunktgruppe.
Console
Rufen Sie in der Google Cloud Console die Seite Endpunktgruppen auf.
Klicken Sie auf
consumer-endpoint-group.Wählen Sie die Verknüpfung
consumer-networkaus und klicken Sie auf Löschen.Klicken Sie zum Bestätigen noch einmal auf Löschen.
gcloud
gcloud network-security intercept-endpoint-group-associations delete consumer-endpoint-group-association \ --location=global \ --no-asyncLöschen Sie die Abfang-Endpunktgruppe.
Console
Rufen Sie in der Google Cloud Console die Seite Endpunktgruppen auf.
Wählen Sie
consumer-endpoint-groupaus und klicken Sie auf Löschen.Klicken Sie zum Bestätigen noch einmal auf Löschen.
gcloud
gcloud network-security intercept-endpoint-groups delete consumer-endpoint-group \ --location=global \ --no-asyncLöschen Sie die Server- und Client-VMs.
Console
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
Markieren Sie die Kästchen für
consumer-client-vmundconsumer-server-vmund klicken Sie auf Löschen.Klicken Sie zum Bestätigen noch einmal auf Löschen.
gcloud
Löschen Sie die Client-VM.
gcloud compute instances delete consumer-client-vm \ --zone=us-west1-b \ --quietLöschen Sie die Server-VM.
gcloud compute instances delete consumer-server-vm \ --zone=us-west1-b \ --quiet
Löschen Sie das Nutzernetzwerk und das Subnetz.
Console
Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
Klicken Sie auf
consumer-network.Markieren Sie auf dem Tab Subnetze das Kästchen
consumer-subnetund klicken Sie auf Löschen.Klicken Sie zum Bestätigen noch einmal auf Löschen.
Klicken Sie auf VPC-Netzwerk löschen.
Geben Sie im Textfeld
consumer-networkein und klicken Sie auf Löschen.
gcloud
Löschen Sie das Subnetz.
gcloud compute networks subnets delete consumer-subnet \ --region=us-west1 \ --quietLöschen Sie das VPC-Netzwerk.
gcloud compute networks delete consumer-network \ --quiet
Produzentenressourcen löschen
Heben Sie die Verknüpfung der Firewallrichtlinie mit dem Produktionsnetzwerk auf und löschen Sie die Firewallrichtlinie.
Console
Rufen Sie in der Google Cloud Console die Seite Firewallrichtlinien auf.
Klicken Sie auf die Richtlinie
producer-firewall-policy.Klicken Sie auf den Tab Verknüpfungen.
Aktivieren Sie das Kästchen für die
producer-network-Verknüpfung.Klicken Sie auf Verknüpfung entfernen.
Klicken Sie auf Entfernen.
Klicken Sie oben auf der Seite auf Löschen.
Klicken Sie zum Bestätigen noch einmal auf Löschen.
gcloud
Entfernen Sie die Verknüpfung.
gcloud compute network-firewall-policies associations delete \ --name=producer-firewall-policy-assoc \ --firewall-policy=producer-firewall-policy \ --global-firewall-policyLöschen Sie die Firewallrichtlinie.
gcloud compute network-firewall-policies delete producer-firewall-policy \ --global
Löschen Sie die Abfangbereitstellung und die Abfangbereitstellungsgruppe.
Console
Rufen Sie in der Google Cloud -Console die Seite Bereitstellungsgruppen auf.
Klicken Sie auf
producer-deployment-group.producer-deploymentlöschen.- Markieren Sie das Kästchen
producer-deploymentund klicken Sie auf Löschen. - Klicken Sie zum Bestätigen noch einmal auf Löschen.
- Markieren Sie das Kästchen
Klicken Sie oben auf der Seite auf Löschen.
Klicken Sie zum Bestätigen noch einmal auf Löschen.
gcloud
Löschen Sie die Bereitstellung des Intercepts.
gcloud network-security intercept-deployments delete producer-deployment \ --location=us-west1-b \ --no-asyncLöschen Sie die Abfangbereitstellungsgruppe.
gcloud network-security intercept-deployment-groups delete producer-deployment-group \ --location=global \ --no-async
Löschen Sie die Load-Balancer-Ressourcen.
Console
Rufen Sie in der Google Cloud Console die Seite Load Balancing auf.
Aktivieren Sie das Kästchen
producer-ilb.Klicken Sie oben auf der Seite auf Löschen.
Wählen Sie das Kästchen
producer-health-checkaus und klicken Sie auf Load-Balancer und ausgewählte Ressourcen löschen.
gcloud
Löschen Sie die Weiterleitungsregel.
gcloud compute forwarding-rules delete producer-ilb-fr \ --region=us-west1 \ --quietEntfernen Sie den Backend-Dienst.
gcloud compute backend-services delete producer-backend-service \ --region=us-west1 \ --quietLöschen Sie die Systemdiagnose.
gcloud compute health-checks delete producer-health-check \ --region=us-west1 \ --quiet
Löschen Sie die Producer-VM-Instanz.
Console
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
Markieren Sie das Kästchen
producer-instanceund klicken Sie auf Löschen.Klicken Sie zum Bestätigen noch einmal auf Löschen.
gcloud
gcloud compute instances delete producer-instance \ --zone=us-west1-b \ --quietLöschen Sie die Instanzgruppe.
Console
Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.
Aktivieren Sie das Kästchen
producer-instance-group.Klicken Sie auf Löschen.
Klicken Sie im Bestätigungsfenster auf Löschen.
gcloud
gcloud compute instance-groups unmanaged delete producer-instance-group \ --zone=us-west1-b \ --quietLöschen Sie das Produzentennetzwerk und das Subnetz.
Console
Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
Klicken Sie auf
producer-network.Markieren Sie auf dem Tab Subnetze das Kästchen
producer-subnetund klicken Sie auf Löschen.Klicken Sie zum Bestätigen noch einmal auf Löschen.
Klicken Sie auf VPC-Netzwerk löschen.
Geben Sie im Textfeld
producer-networkein und klicken Sie auf Löschen.
gcloud
Löschen Sie das Subnetz.
gcloud compute networks subnets delete producer-subnet \ --region=us-west1 \ --quietLöschen Sie das Netzwerk.
gcloud compute networks delete producer-network \ --quiet
Nächste Schritte
- Übersicht über Abfangbereitstellungsgruppen
- Übersicht über Intercept-Bereitstellungen
- Übersicht über Abfang-Endpunktgruppen und ‑Verknüpfungen
- Sicherheitsprofile
- Sicherheitsprofilgruppen
- Referenzarchitekturen, Diagramme und Best Practices zu Google Cloud kennenlernen. Weitere Informationen zu Cloud Architecture Center