In dieser Anleitung wird beschrieben, wie Sie eine globale Firewallrichtlinie so konfigurieren, dass interner Traffic zwischen VM-Subnetzen in einem benutzerdefinierten VPC-Netzwerk zugelassen wird.
Ziele
In diesem Anleitung werden die folgenden Aufgaben erläutert:- Benutzerdefiniertes VPC-Netzwerk mit zwei Subnetzen erstellen
- Erstellen Sie zwei Linux-VM-Instanzen (eine Client-VM und eine Server-VM) ohne externe IP-Adressen in separaten Subnetzen des VPC-Netzwerks.
- Erstellen Sie einen Cloud Router und ein Cloud NAT-Gateway, um Softwarepakete herunterzuladen.
- Installieren Sie den Apache-Server auf der Server-VM.
- Erstellen Sie eine globale Netzwerk-Firewallrichtlinie mit folgenden Regeln:
- Erlauben Sie ausgehenden Traffic zu beliebigen Zielen.
- Aktivieren Sie das Firewall-Logging.
- Verwenden Sie das Identity-Aware Proxy (IAP), um SSH-Verbindungen zu den VMs zu ermöglichen.
- Erlauben Sie der Client-VM, sich mit der Server-VM zu verbinden, auf der der Apache-Server ausgeführt wird.
- Die Verbindung testen
Das folgende Diagramm zeigt den Fluss des Traffics zwischen Subnetzen eines benutzerdefinierten VPC-Netzwerks, nachdem eine globale Netzwerk-Firewallrichtlinie internen eingehenden Traffic zugelassen hat.
Vorbereitung
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure 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.
-
Make sure that billing is enabled for your Google Cloud project.
- Aktivieren Sie die Compute Engine API für Ihr Projekt.
- Sie benötigen die Identitäts- und Zugriffssteuerungsrolle Compute Network Admin (
roles/compute.networkAdmin
). - Wenn Sie lieber mit der Befehlszeile arbeiten möchten, installieren Sie das 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 init
aus, um Ihr gcloud-CLI-Verzeichnis zu initialisieren.
Benutzerdefiniertes VPC-Netzwerk mit Subnetzen erstellen
In diesem Abschnitt erstellen Sie ein VPC-Netzwerk im benutzerdefinierten Modus mit zwei IPv4-Subnetzen.
Console
Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
Klicken Sie auf VPC-Netzwerk erstellen.
Geben Sie für Name
vpc-fw-rules
ein.Geben Sie unter Beschreibung
VPC network for the firewall rules tutorial
ein.Wählen Sie unter Modus für Subnetzerstellung die Option Benutzerdefiniert aus.
Legen Sie im Abschnitt Neues Subnetz folgende Konfigurationsparameter für das Subnetz fest:
- Name:
subnet-fw-rules-server
- Region:
us-central1 (Iowa)
- IPv4-Bereich:
10.0.0.0/24
- Privater Google-Zugriff: Ein
- Name:
Klicken Sie auf Fertig.
Klicken Sie auf Subnetz hinzufügen und geben Sie folgende Konfigurationsparameter an:
- Name:
subnet-fw-rules-client
- Region:
us-central1 (Iowa)
- IPv4-Bereich:
192.168.10.0/24
- Privater Google-Zugriff: Ein
- Name:
Klicken Sie auf Fertig.
Scrollen Sie nach unten und klicken Sie auf Erstellen.
gcloud
Führen Sie den folgenden Befehl aus, um ein VPC-Netzwerk zu erstellen:
gcloud compute networks create vpc-fw-rules \ --subnet-mode=custom \ --description="VPC network for the firewall rules tutorial"
Optional: Klicken Sie im Dialogfeld Cloud Shell autorisieren auf Autorisieren.
Führen Sie folgenden Befehl aus, um ein Subnetz zu erstellen:
gcloud compute networks subnets create subnet-fw-rules-server \ --network=vpc-fw-rules \ --region=us-central1 \ --range=10.0.0.0/24 \ --enable-private-ip-google-access
Führen Sie folgenden Befehl aus, um ein weiteres Subnetz zu erstellen:
gcloud compute networks subnets create subnet-fw-rules-client \ --network=vpc-fw-rules \ --region=us-central1 \ --range=192.168.10.0/24 \ --enable-private-ip-google-access
Standardmäßig hat das VPC-Netzwerk zwei implizierte IPv4-Regeln:
- Eine
allow
-Regel für ausgehenden Traffic mit dem Ziel0.0.0.0/0
und der niedrigsten möglichen Priorität (65535), die es jeder Instanz ermöglicht, Traffic an einen beliebigen Bestimmungsort zu senden (gilt nicht für von Google Cloud blockiertem Traffic). - Ein eingehender
deny
-Traffic mit der Quelle0.0.0.0/0
und der niedrigsten möglichen Priorität (65535), die alle Instanzen schützt, indem auf sie eingehende Verbindungen blockiert werden.
Weitere Informationen finden Sie unter Implizierte Regeln.
Client- und Server-VMs erstellen
In diesem Abschnitt erstellen Sie zwei Linux-VMs ohne externe IP-Adressen in den Subnetzen des VPC-Netzwerks, das Sie im vorherigen Abschnitt erstellt haben.
Server-VM erstellen
Console
So erstellen Sie die Client-VM:
Rufen Sie in der Google Cloud Console die Seite Instanz erstellen auf.
Geben Sie für Name
vm-fw-rules-server
ein.Wählen Sie bei Region die Option
us-central1 (Iowa)
aus.Scrollen Sie nach unten, maximieren Sie Erweiterte Optionen und dann Netzwerk.
Geben Sie im Bereich Netzwerkschnittstellen folgende Konfigurationsparameter an:
- Netz:
vpc-fw-rules
- Subnetzwerk:
subnet-fw-rules-server IPv4 (10.0.0.0/24)
- Externe IPv4-Adresse: –
- Netz:
Klicken Sie auf Fertig.
Klicken Sie auf Erstellen.
gcloud
Führen Sie den folgenden Befehl aus, um die Server-VM zu erstellen:
gcloud compute instances create vm-fw-rules-server \ --network=vpc-fw-rules \ --zone=us-central1-a \ --subnet=subnet-fw-rules-server \ --stack-type=IPV4_ONLY \ --no-address
Client-VM erstellen
Console
So erstellen Sie die Client-VM:
Rufen Sie in der Google Cloud Console die Seite Instanz erstellen auf.
Geben Sie für Name
vm-fw-rules-client
ein.Wählen Sie bei Region die Option
us-central1 (Iowa)
aus.Scrollen Sie nach unten, maximieren Sie Erweiterte Optionen und dann Netzwerk.
Geben Sie im Bereich Netzwerkschnittstellen folgende Konfigurationsparameter an:
- Netz:
vpc-fw-rules
- Subnetzwerk:
subnet-fw-rules-client IPv4 (192.168.10.0/24)
- Externe IPv4-Adresse: –
- Netz:
Klicken Sie auf Fertig.
Klicken Sie auf Erstellen.
gcloud
Führen Sie den folgenden Befehl aus, um die Client-VM zu erstellen:
gcloud compute instances create vm-fw-rules-client \ --network=vpc-fw-rules \ --zone=us-central1-a \ --subnet=subnet-fw-rules-client \ --stack-type=IPV4_ONLY \ --no-address
Cloud Router und Cloud NAT-Gateway erstellen
Im vorherigen Abschnitt haben Sie zwei Linux-VMs ohne öffentliche IPv4-Adressen erstellt. Damit diese VMs auf das öffentliche Internet zugreifen können, müssen Sie einen Cloud Router und ein Cloud NAT-Gateway erstellen.
Console
Wechseln Sie in der Google Cloud Console zur Seite Cloud NAT.
Klicken Sie auf Erste Schritte oder NAT-Gateway erstellen.
Geben Sie als Gatewayname
gateway-fw-rules
ein.Wählen Sie als NAT-Typ Öffentlich aus.
Geben Sie im Bereich Cloud Router wählen folgende Konfigurationsparameter an:
- Netz:
vpc-fw-rules
- Region:
us-central1
- Cloud Router: Neuen Router erstellen
- Geben Sie für Name
router-fw-rules
ein. - Klicken Sie auf Erstellen.
- Geben Sie für Name
- Netz:
Klicken Sie auf Erstellen.
gcloud
Führen Sie den folgenden Befehl aus, um einen Cloud Router zu erstellen:
gcloud compute routers create router-fw-rules \ --network=vpc-fw-rules \ --region=us-central1
Führen Sie folgenden Befehl aus, um ein Cloud NAT-Gateway zu erstellen:
gcloud compute routers nats create gateway-fw-rules \ --router=router-fw-rules \ --region=us-central1 \ --auto-allocate-nat-external-ips \ --nat-all-subnet-ip-ranges
Globale Netzwerk-Firewallrichtlinie erstellen
In diesem Abschnitt erstellen Sie eine globale Netzwerk-Firewallrichtlinie mit folgenden Angaben:
- Eine Regel für ausgehenden Traffic mit
0.0.0.0./0
als Ziel. Logging aktiviert. Durch das Logging der Firewallregeln können Sie die Auswirkungen Ihrer Firewallregeln überwachen, überprüfen und analysieren.
Console
Rufen Sie in der Google Cloud Console die Seite der Firewall-Richtlinien auf.
Klicken Sie auf Firewallrichtlinie erstellen.
Geben Sie im Abschnitt Richtlinie konfigurieren unter Richtlinienname
fw-policy
ein.Wählen Sie unter Bereitstellungsbereich Global aus und klicken Sie auf Weiter.
Wenn Sie Regeln für die Richtlinie erstellen möchten, klicken Sie im Bereich Regeln hinzufügen auf Regel hinzufügen.
- Geben Sie
65534
als Priorität ein. - Wählen Sie unter Traffic-Richtung Ausgehend aus.
- Wählen Sie für Logs Ein aus.
- Wählen Sie im Abschnitt Ziel als Zieltyp Alle Instanzen im Netzwerk aus.
- Geben Sie im Abschnitt Ziel unter IP-Bereiche
0.0.0.0/0
ein. - Wählen Sie im Abschnitt Protokoll und Ports Alle zulassen aus.
- Klicken Sie auf Erstellen.
- Geben Sie
Klicken Sie auf Weiter.
Klicken Sie im Abschnitt Richtlinie mit VPC-Netzwerken verknüpfen auf Verknüpfen, um ein VPC-Netzwerk mit der Richtlinie zu verknüpfen.
Markieren Sie das Kästchen
vpc-fw-rules
und klicken Sie dann auf Verknüpfen.Klicken Sie auf Weiter.
Klicken Sie auf Erstellen.
gcloud
Führen Sie folgenden Befehl aus, um eine Firewallrichtlinie zu erstellen:
gcloud compute network-firewall-policies create fw-policy \ --global
Führen Sie folgenden Befehl aus, um eine Firewallregel zu erstellen, die Traffic an alle Ziele zulässt und Logs aktiviert:
gcloud compute network-firewall-policies rules create 65534 \ --firewall-policy=fw-policy \ --direction=EGRESS \ --action=ALLOW \ --dest-ip-ranges=0.0.0.0/0 \ --layer4-configs=all \ --global-firewall-policy \ --enable-logging
Führen Sie folgenden Befehl aus, um die Firewallrichtlinie mit dem VPC-Netzwerk zu verknüpfen:
gcloud compute network-firewall-policies associations create \ --firewall-policy=fw-policy \ --network=vpc-fw-rules \ --name=pol-association-fw-rules \ --global-firewall-policy
Firewallregel für IAP hinzufügen
Im vorherigen Abschnitt haben Sie Linux-VMs ohne externe IP-Adressen erstellt. In diesem Abschnitt aktivieren Sie Identity-Aware Proxy (IAP), um Administratorzugriff auf VM-Instanzen ohne externe IP-Adressen zuzulassen.
Damit IAP eine Verbindung zu Ihren VM-Instanzen herstellen kann, erstellen Sie eine Firewallregel, die:
- für alle VM-Instanzen gilt, die über IAP zugänglich sein sollen.
- Lässt eingehenden Traffic aus dem IP-Bereich
35.235.240.0/20
zu. Dieser Bereich enthält alle IP-Adressen, die IAP für die TCP-Weiterleitung verwendet. - Lässt Verbindungen zu allen Ports zu, die über die IAP-TCP-Weiterleitung zugänglich sein sollen, z. B. Port
22
für SSH und Port3389
für RDP.
Console
Führen Sie folgenden Befehl aus, um RDP- und SSH-Zugriff auf alle VM-Instanzen im Netzwerk vpc-fw-rules zuzulassen:
Rufen Sie in der Google Cloud Console die Seite der Firewall-Richtlinien auf.
Klicken Sie im Abschnitt Netzwerk-Firewallrichtlinien auf
fw-policy
.Klicken Sie auf Regel erstellen.
Geben Sie
500
als Priorität ein.Wählen Sie für Traffic-Richtung die Option Eingehend aus.
Wählen Sie für Logs Ein aus.
Wählen Sie im Abschnitt Ziel als Zieltyp Alle Instanzen im Netzwerk aus.
Geben Sie im Abschnitt Quelle unter IP-Bereiche
35.235.240.0/20
ein.Wählen Sie im Bereich Protokolle und Ports Angegebene Protokolle und Ports aus.
Markieren Sie das Kästchen TCP und geben Sie unter Ports
22
und3389
durch Kommas getrennt ein.Klicken Sie auf Erstellen.
gcloud
Führen Sie folgenden Befehl aus, um RDP- und SSH-Zugriff auf alle VM-Instanzen im Netzwerk vpc-fw-rules zuzulassen:
gcloud compute network-firewall-policies rules create 500 \ --firewall-policy=fw-policy \ --direction=INGRESS \ --action=ALLOW \ --src-ip-ranges=35.235.240.0/20 \ --global-firewall-policy \ --layer4-configs tcp:22,tcp:3389 \ --enable-logging
Apache-Server installieren
In diesem Abschnitt installieren Sie den Apache-Server auf der Server-VM.
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
Klicken Sie in der Spalte Verbinden der
vm-fw-rules-server
-VM auf SSH.Klicken Sie im Dialogfeld SSH im Browser auf Autorisieren und warten Sie, bis die Verbindung hergestellt wurde.
Führen Sie im Eingabeprompt folgenden Befehl aus, um das
apache2
-Paket zu installieren:sudo apt update && sudo apt -y install apache2
Nach der Installation von Apache startet das Betriebssystem den Apache-Server automatisch.
Führen Sie folgenden Befehl aus, um zu prüfen, ob Apache ausgeführt wird:
sudo systemctl status apache2 --no-pager
Führen Sie folgenden Befehl aus, um die Standardwebseite des Apache-Webservers zu überschreiben:
echo '<!doctype html><html><body><h1>Hello World!</h1></body></html>' | sudo tee /var/www/html/index.html
Schließen Sie das Dialogfeld SSH-in-browser.
Verbindung testen
Nachdem Sie den Apache-Server auf der Server-VM installiert haben, stellen Sie über die interne IP-Adresse der Server-VM eine Verbindung von der Client-VM zur Server-VM her.
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
Kopieren Sie in der Spalte Interne IP-Adresse der
vm-fw-rules-server
-VM die interne IP-Adresse der VM.Klicken Sie in der Spalte Verbinden der
vm-fw-rules-client
-VM auf SSH.Klicken Sie im Dialogfeld SSH im Browser auf Autorisieren und warten Sie, bis die Verbindung hergestellt wurde.
Führen Sie folgenden Befehl aus, um die Verbindung zu prüfen:
curl INTERNAL_IP -m 2
Ersetzen Sie
INTERNAL_IP
durch die IP-Adresse dervm-fw-rules-server
-VM.Die
Connection timed out
-Nachricht wird erwartet, da jede VM eine implizite Firewallregel für eingehenden Traffic erstellt, die jeden Traffic ablehnt. Wenn Sie Traffic zulassen möchten, fügen Sie der Firewallrichtlinie eine Regel für eingehenden Traffic hinzu.Schließen Sie das Dialogfeld SSH-in-browser.
Globale Netzwerk-Firewallrichtlinie aktualisieren, um internen Traffic zuzulassen
In diesem Abschnitt aktualisieren Sie die globale Firewallrichtlinie für das Netzwerk, um internen Traffic aus dem Subnetz der Client-VM zuzulassen.
Console
Rufen Sie in der Google Cloud Console die Seite der Firewall-Richtlinien auf.
Klicken Sie im Abschnitt Netzwerk-Firewallrichtlinien auf
fw-policy
.Klicken Sie auf Regel erstellen.
Geben Sie
501
als Priorität ein.Wählen Sie für Traffic-Richtung die Option Eingehend aus.
Wählen Sie für Logs Ein aus.
Wählen Sie im Abschnitt Ziel als Zieltyp Alle Instanzen im Netzwerk aus.
Geben Sie im Abschnitt Quelle unter IP-Bereiche
192.168.10.0/24
ein.Der IP-Bereich
192.168.10.0/24
ist subnet-fw-rules-client zugewiesen.Wählen Sie im Abschnitt Ziel unter IP-Typ IPv4 aus. Geben Sie unter IP-Bereiche
10.0.0.0/24
an.Denken Sie daran, dass der IP-Bereich
10.0.0.0/24
subnet-fw-rules-server zugewiesen ist.Klicken Sie auf Erstellen.
gcloud
Führen Sie folgenden Befehl aus, um die Firewallrichtlinie zu aktualisieren:
gcloud compute network-firewall-policies rules create 501 \ --firewall-policy=fw-policy \ --direction=INGRESS \ --action=ALLOW \ --src-ip-ranges=192.168.10.0/24 \ --dest-ip-ranges=10.0.0.0/24 \ --layer4-configs=all \ --global-firewall-policy \ --enable-logging
Verbindung testen
Nachdem Sie die Firewallrichtlinie erstellt haben, stellen Sie über die interne IP-Adresse der Server-VM eine Verbindung von der Client-VM zur Server-VM her.
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
Kopieren Sie in der Spalte Interne IP-Adresse der
vm-fw-rules-server
-VM die interne IP-Adresse der VM.Klicken Sie in der Spalte Verbinden der
vm-fw-rules-client
-VM auf SSH.Klicken Sie im Dialogfeld SSH im Browser auf Autorisieren und warten Sie, bis die Verbindung hergestellt wurde.
Führen Sie folgenden Befehl aus, um die Verbindung zu prüfen:
curl INTERNAL_IP -m 2
Ersetzen Sie
INTERNAL_IP
durch die IP-Adresse dervm-fw-rules-server
-VM.Die erwartete Nachricht ist
<!doctype html><html><body><h1>Hello World!</h1></body></html>
.Schließen Sie das Dialogfeld SSH-in-browser.
Informationen zum Anzeigen von Firewall-Logs finden Sie unter Logs ansehen.
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.
In diesem Abschnitt löschen Sie die in dieser Anleitung erstellten Ressourcen.
Firewallrichtlinie löschen
Console
Rufen Sie in der Google Cloud Console die Seite der Firewall-Richtlinien auf.
Klicken Sie im Abschnitt Netzwerk-Firewallrichtlinien auf den Namen
fw-policy
.Klicken Sie auf den Tab Verknüpfungen.
Markieren Sie das Kästchen
vpc-fw-rules
und klicken Sie auf Verknüpfung entfernen.Klicken Sie im Dialogfeld Firewallrichtlinien-Verknüpfung entfernen auf Entfernen.
Klicken Sie neben dem Titel
fw-policy
auf Löschen.Klicken Sie im Dialogfeld Firewallrichtlinie löschen auf Löschen.
Nach dem Löschen einer Richtlinie wird in der Google Cloud Console die Seite Firewall-Richtlinien angezeigt.
gcloud
Entfernen Sie die Verknüpfung zwischen der Firewallrichtlinie und dem VPC-Netzwerk.
gcloud compute network-firewall-policies associations delete \ --name=pol-association-fw-rules \ --firewall-policy=fw-policy \ --global-firewall-policy
Wenn Sie die Verknüpfung zwischen der Firewallrichtlinie und dem VPC-Netzwerk über die Google Cloud Console einrichten, verwenden Sie den gcloud CLI-Befehl nicht, um die Verknüpfung zu entfernen. Wenn Sie sich nicht sicher sind, wie Sie die Verknüpfung erstellt haben oder bei Ausführung des Befehls den
The network firewall policy does not have an association with pol-association-fw-rules.
-Fehler erhalten, verwenden Sie die Google Cloud Console, um die Verknüpfung zu entfernen.Löschen Sie die Firewallrichtlinie.
gcloud compute network-firewall-policies delete fw-policy \ --global
VMs löschen
Console
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
Markieren Sie die Kästchen für die
vm-fw-rules-client
- undvm-fw-rules-server
-VMs an.Klicken Sie auf Löschen.
Klicken Sie im Dialogfeld Möchten Sie 2 Instanzen löschen? auf Löschen.
gcloud
Führen Sie folgenden Befehl aus, um die vm-fw-rules-client
- und vm-fw-rules-server
-VMs zu löschen:
gcloud compute instances delete vm-fw-rules-client vm-fw-rules-server \ --zone=us-central1-a
Wenn Sie dazu aufgefordert werden, drücken Sie zur Bestätigung Y und dann die Eingabetaste.
Cloud NAT-Gateway und Cloud Router löschen
Console
Wechseln Sie in der Google Cloud Console zur Seite Cloud Routers.
Markieren Sie das
router-fw-rules
-Kästchen.Klicken Sie auf Löschen.
Klicken Sie im Dialogfeld router-fw-rules löschen auf Löschen.
Wenn Sie einen Cloud Router löschen, wird auch das zugehörige Cloud NAT-Gateway gelöscht.
gcloud
Führen Sie folgenden Befehl aus, um den Cloud Router router-fw-rules zu löschen:
gcloud compute routers delete router-fw-rules \ --region=us-central1
Wenn Sie dazu aufgefordert werden, drücken Sie zur Bestätigung Y und dann die Eingabetaste.
Wenn Sie einen Cloud Router löschen, wird auch das zugehörige Cloud NAT-Gateway gelöscht.
VPC-Netzwerk und dessen Subnetze löschen
Console
Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
Klicken Sie in der Spalte Name auf
vpc-fw-rules
.Klicken Sie auf VPC-Netzwerk löschen.
Klicken Sie im Dialogfeld Netzwerk löschen auf Löschen.
Wenn Sie eine VPC löschen, werden auch deren Subnetze gelöscht.
gcloud
Führen Sie folgenden Befehl aus, um die Subnetze des VPC-Netzwerks
vpc-fw-rules
zu löschen:gcloud compute networks subnets delete subnet-fw-rules-client subnet-fw-rules-server \ --region=us-central1
Wenn Sie dazu aufgefordert werden, drücken Sie zur Bestätigung Y und dann die Eingabetaste.
Führen Sie folgenden Befehl aus, um das VPC-Netzwerk
vpc-fw-rules
zu löschen:gcloud compute networks delete vpc-fw-rules
Wenn Sie dazu aufgefordert werden, drücken Sie zur Bestätigung Y und dann die Eingabetaste.