Sicherer Zugriff auf ferne Instanzen mit einem Bastionshost
Für dieses Lernprogramm können Kosten anfallen. Mit dem Kostenschätzer können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung generieren.
Dieses Tutorial führt Sie durch die Bereitstellung eines Bastion-Hosts, um sicher auf Remote-Instanzen innerhalb einer Virtual Private Cloud (VPC) zuzugreifen. Ein Bastion-Host ist eine Instanz, die mit einer öffentlichen IP-Adresse bereitgestellt wird und auf die über SSH zugegriffen werden kann. Nach der Einrichtung fungiert der Bastion-Host als Jump-Server und ermöglicht eine sichere Verbindung zu Instanzen, die ohne öffentliche IP-Adresse bereitgestellt werden.
Um die Gefährdung von Servern innerhalb der VPC zu verringern, erstellen und verwenden Sie einen Bastion-Host. Verwaltungstasks auf den einzelnen Servern werden mithilfe von SSH und durch den Bastion-Host als Proxy-Funktion durchgeführt. Der Zugriff auf die Server und der reguläre Internetzugriff von den Servern aus, zum Beispiel für die Softwareinstallation, werden nur mit einer besonderen Wartungssicherheitsgruppe zugelassen, die diesen Servern zugeordnet ist.
Ziele
- Vorgehensweise zur Einrichtung eines Bastion-Hosts und von Sicherheitsgruppen mit Regeln kennenlernen
- Sichere Verwaltung von Servern über den Bastion-Host

- Nach dem Einrichten der erforderlichen Infrastruktur (Subnetze, Sicherheitsgruppen mit Regeln, virtuelle Serverinstanzen) in der Cloud stellt der Administrator DevOps mithilfe des privaten SSH-Schlüssels eine Verbindung (SSH) zum Bastion-Host her.
- Der Administrator weist einer Wartungssicherheitsgruppe die geeigneten Regeln für ausgehenden Datenverkehr zu.
- Der Administrator stellt eine sichere Verbindung (SSH) zur privaten IP-Adresse der Instanz über den Bastion-Host her, um erforderliche Software, zum Beispiel einen Web-Server, zu installieren oder zu aktualisieren.
- Der Internetbenutzer sendet eine HTTP/HTTPS-Anforderung an den Web-Server.
Vorbereitende Schritte
- Überprüfen Sie die Benutzerberechtigungen. Ihr Benutzerkonto muss über ausreichende Berechtigungen zum Erstellen von Verwalten von VPC-Ressourcen verfügen. Weitere Informationen bietet die Liste der erforderlichen Berechtigungen für VPC.
- Sie benötigen einen SSH-Schlüssel für die Herstellung einer Verbindung zu den virtuellen Servern. Wenn Sie noch keinen SSH-Schlüssel besitzen, befolgen Sie die Anweisungen zum Erstellen eines Schlüssels für VPC.
- Das Lernprogramm geht davon aus, dass Sie den Bastion-Host in einer vorhandenen virtuellen privaten Cloud hinzufügen. Wenn Sie keine VPC in Ihrem Konto haben, erstellen Sie eine VPC, bevor Sie mit den nächsten Schritten fortfahren.
Bastion-Host erstellen
In diesem Abschnitt erstellen und konfigurieren Sie einen Bastion-Host zusammen mit einer Sicherheitsgruppe in einem separaten Teilnetz.
Teilnetz erstellen
-
Klicken Sie auf Teilnetze unter Netz im linken Teilfenster und anschließend auf Erstellen.
- Wählen Sie unter Standort eine Region, eine Region und eine Zone aus.
- Geben Sie vpc-secure-bastion-subnet als Namen ein und wählen Sie dann die virtuelle private Cloud aus, die Sie erstellt haben.
- Wählen Sie dieselbe Ressourcengruppe wie für Ihre VPC.
- Lassen Sie das Adresspräfix unverändert und wählen Sie die Gesamtanzahl der IP-Adressen auf 256 aus.
-
Schalten Sie das öffentliche Gateway in Angehängt (Attached) um.
Hängen Sie ein öffentliches Gateway an das Teilnetz an, damit alle zugeordneten Ressourcen mit dem öffentlichen Internet kommunizieren können.
-
Klicken Sie auf Teilnetz erstellen, um es bereitzustellen.
Bastion-Sicherheitsgruppe erstellen und konfigurieren
Lassen Sie uns eine Sicherheitsgruppe erstellen und Regeln für eingehende Verbindungen zu Ihrer Bastion VSI (Virtual Server Instance) konfigurieren.
-
Wählen Sie Sicherheitsgruppen unter Netz aus und klicken Sie anschließend auf Erstellen.
-
Geben Sie vpc-secure-bastion-sg als Namen ein und wählen Sie die zuvor erstellte VPC aus.
-
Wählen Sie dieselbe Ressourcengruppe wie für Ihre VPC.
-
Erstellen Sie jetzt die folgenden Regeln für eingehenden Datenverkehr, indem Sie im Abschnitt für eingehenden Datenverkehr auf Hinzufügen klicken. Diese Regeln ermöglichen den SSH-Zugriff und Pingprüfungen (ICMP). Die Werte sind in der folgenden Tabelle aufgeführt.
Bastion: Regeln für eingehenden Datenverkehr Protokoll Port/Wert Quellentyp TCP Portbereich: 22-22 Any ICMP Typ: 8, Code: Leer lassen Any Zur weiteren Erhöhung der Sicherheit kann der eingehende Datenverkehr auf das Unternehmensnetz oder ein typisches Basisnetz eingeschränkt werden. Durch die Ausführung von
curl ipecho.net/plain ; echo
könnten Sie die externe IP-Adresse Ihres Netzes abrufen und stattdessen verwenden. -
Klicken Sie zum Erstellen der Sicherheitsgruppe auf Sicherheitsgruppe erstellen.
Bastion-Instanz erstellen
Nach der Einrichtung des Teilnetzes und der Sicherheitsgruppe können Sie als Nächstes die virtuelle Bastion-Serverinstanz erstellen.
- Wählen Sie unter Teilnetze im linken Teilfenster den Eintrag vpc-secure-bastion-subnet aus.
- Klicken Sie auf Zugeordnete Ressourcen und unter Zugeordnete Instanzen auf Erstellen, um einen neuen virtuellen Server mit dem Namen vpc-secure-bastion-vsi unter derselben Ressourcengruppe wie Ihr Teilnetz bereitzustellen.
- Wählen Sie einen Ort aus und stellen Sie sicher, dass Sie später denselben Ort erneut verwenden.
- Klicken Sie unter Bild auf Bild ändern. Wählen Sie im Suchfeld Ubuntu Linux als Betriebssystem aus. Sie können eine beliebige Version des Image wählen.
- Klicken Sie auf Profil ändern, wählen Sie Berechnen als Kategorie aus und wählen Sie cx2-2x4 (2 vCPUs und 4 GB RAM) als Profil aus.
- Erstellen Sie eine neue SSH-Schlüssel, klicken Sie auf Neuer Schlüssel
- Geben Sie vpc-ssh-key als Schlüsselnamen ein.
- Wählen Sie dieselbe Ressourcengruppe wie für Ihren VSI.
- Belassen Sie die Region unverändert.
- Kopieren Sie den Inhalt Ihres vorhandenen lokalen SSH-Schlüssels und fügen Sie ihn unter Öffentlicher Schlüssel ein.
- Klicken Sie auf SSH-Schlüssel hinzufügen.
- Blättern Sie, um die VPC unter Netzbetrieb auszuwählen
- Stellen Sie sicher, dass Virtuelle Netzschnittstelle ausgewählt und vpc-secure-bastion-subnet als Teilnetz aufgelistet ist. Klicken Sie auf das Bearbeitungssymbol für dieses Teilnetz.
- Überprüfen Sie zunächst unter Details zu Netzanschluss und virtueller Netzschnittstelle, ob vpc-secure-bastion-subnet ausgewählt ist. Klicken Sie auf Weiter (Next).
- Inaktivieren Sie für Netz im Abschnitt Sicherheitsgruppen die Standardsicherheitsgruppe und markieren Sie vpc-secure-bastion-sg. Klicken Sie Weiter.
- Lassen Sie im Dialog IP-Konfiguration alles unverändert und klicken Sie auf Weiter.
- Überprüfen Sie zuletzt alles und klicken Sie auf Speichern, um den Vorgang abzuschließen.
- Klicken Sie auf "Virtuellen Server erstellen ".
- Sobald die Instanz betriebsbereit ist und aktiv ist, klicken Sie auf vpc-secure-bastion-vsi und reservieren eine variable IP-Adresse, indem Sie auf das Symbol Bearbeiten unter Netzschnittstellen klicken und dann unter variable IP-Adresse die Option Neue variable IP-Adresse reservieren auswählen. Klicken Sie zum Abschluss auf Speichern.
Bastion testen
Wenn die variable IP-Adresse Ihres Bastion-Hosts aktiv ist, versuchen Sie, mit ssh eine Verbindung zu dieser Adresse herzustellen:
ssh -i ~/.ssh/<PRIVATE_KEY> root@<BASTION_FLOATING_IP_ADDRESS>
Sicherheitsgruppe mit Wartungszugriffsregeln konfigurieren
Wenn der Zugriff auf den Bastion-Host funktioniert, fahren Sie fort und erstellen Sie die Sicherheitsgruppe für Verwaltungstasks, wie zum Beispiel das Installieren und Aktualisieren der Software.
-
Wählen Sie Sicherheitsgruppen unter Netz aus und klicken Sie anschließend auf Erstellen.
-
Geben Sie vpc-secure-maintenance-sg als Namen ein und wählen Sie die zuvor erstellte VPC aus.
-
Wählen Sie dieselbe Ressourcengruppe wie für Ihre VPC.
-
Als Nächstes fügen Sie die Regel für eingehenden Datenverkehr hinzu, die in der folgenden Tabelle gezeigt wird. Sie ermöglicht den SSH-Zugriff über den Bastion-Host.
Wartung: Regeln für eingehenden Datenverkehr Protokoll Port/Wert Quellentyp Quelle TCP Ports 22-22 Sicherheitsgruppe vpc-secure-bastion-sg -
Fügen Sie als Nächstes die Regel Ausgehend hinzu, die in der nachstehenden Tabelle aufgeführt ist. Sie ermöglicht den SSH-Zugriff über den Bastion-Host.
Wartung: Regeln für ausgehenden Datenverkehr Protokoll Port/Wert Zieltyp TCP Ports 80-80 Any TCP Ports 443-443 Any TCP Ports 53-53 Any UDP Ports 53-53 Any DNS-Serveranforderungen werden an Port 53 adressiert. DNS verwendet TCP für den Zonentransfer und UDP für Namensabfragen, die entweder regulär (primär) oder umgekehrt (reverse) erfolgen. HTTP-Anforderungen werden an Port 80 und 443 gerichtet.
-
Klicken Sie zum Erstellen der Sicherheitsgruppe auf Sicherheitsgruppe erstellen.
-
Navigieren Sie zu Sicherheitsgruppen und wählen Sie vpc-secure-bastion-sg aus.
-
Bearbeiten Sie schließlich die Sicherheitsgruppe und fügen Sie die folgende Regel für ausgehenden Datenverkehr hinzu.
Bastion: Regeln für ausgehenden Datenverkehr Protokoll Zieltyp Ziel Port/Wert TCP Sicherheitsgruppe vpc-secure-maintenance-sg Ports 22-22
Bastion-Host für den Zugriff auf andere Instanzen in der VPC verwenden
In diesem Abschnitt werden Sie ein Teilnetz mit einer virtuellen Serverinstanz und einer Sicherheitsgruppe erstellen.
Wenn Ihre VPC bereits Virtual Server-Instanzen enthält, zu denen Sie eine Verbindung herstellen wollen, können Sie die nächsten drei Abschnitte überspringen und bei Virtual Server-Instanz(en) zur Wartungssicherheitsgruppe hinzufügen beginnen.
Teilnetz erstellen
Gehen Sie wie folgt vor, um ein neues Teilnetz zu erstellen:
- Klicken Sie auf Teilnetze unter Netz im linken Teilfenster und anschließend auf Erstellen.
- Geben Sie vpc-secure-private-subnet als Namen ein und wählen Sie dann die VPC aus, die Sie erstellt haben.
- Wählen Sie dieselbe Ressourcengruppe wie für Ihre VPC.
- Wählen Sie einen Standort aus.
- Lassen Sie das Adresspräfix unverändert und wählen Sie die Gesamtanzahl der IP-Adressen auf 256 aus.
- Schalten Sie das öffentliche Gateway in Angehängt (Attached) um.
- Klicken Sie auf Teilnetz erstellen, um es bereitzustellen.
Sicherheitsgruppe erstellen
Gehen Sie wie folgt vor, um eine neue Sicherheitsgruppe zu erstellen:
- Klicken Sie auf Sicherheitsgruppen unter 'Netz' und anschließend auf Erstellen.
- Geben Sie vpc-secure-private-sg als Namen ein und wählen Sie die VPC aus, die Sie zuvor erstellt haben.
- Klicken Sie auf Sicherheitsgruppe erstellen.
Virtuelle Serverinstanz erstellen
Gehen Sie wie folgt vor, um eine Virtual Server-Instanz im neu erstellten Teilnetz zu erstellen:
- Klicken Sie auf das Teilnetz vpc-secure-private-subnet, das zuvor unter Teilnetze erstellt wurde.
- Klicken Sie auf Zugeordnete Ressourcen und unter Zugeordnete Instanzen auf Erstellen.
- Gehen Sie zum Konfigurieren der Instanz wie folgt vor:
- Geben Sie als eindeutigen Namen vpc-secure-private-vsi ein und verwenden Sie dieselbe Ressourcengruppe wie zuvor.
- Wählen Sie dieselbe Position, die auch vom virtuellen Bastion-Server verwendet wird.
- Wählen Sie Öffentlich als Typ des virtuellen Servers aus.
- Klicken Sie unter Bild auf Bild ändern. Wählen Sie im Suchfeld Ubuntu Linux als Betriebssystem aus. Sie können eine beliebige Version des Image wählen.
- Klicken Sie auf Profil ändern, wählen Sie Berechnen als Kategorie aus und wählen Sie cx2-2x4 (2 vCPUs und 4 GB RAM) als Profil aus.
- Wählen Sie in SSH-Schlüssel den SSH-Schlüssel aus, den Sie zuvor für den Bastion-Host erstellt haben.
- Wählen Sie weiter unten die von Ihnen erstellte VPC aus. Klicken Sie ähnlich wie oben auf das Bearbeitungssymbol für vpc-secure-private-subnet unter Details zu Netzanschluss und virtueller Netzschnittstelle.
- Überprüfen Sie als Nächstes, ob vpc-secure-private-subnet ausgewählt ist. Klicken Sie auf Weiter.
- Inaktivieren Sie für Netz im Abschnitt Sicherheitsgruppen die Standardsicherheitsgruppe und markieren Sie vpc-secure-private-sg. Klicken Sie Weiter.
- Lassen Sie im Dialog IP-Konfiguration alles unverändert und klicken Sie auf Weiter.
- Überprüfen Sie zuletzt alles und klicken Sie auf Speichern, um den Vorgang abzuschließen.
- Klicken Sie auf "Virtuellen Server erstellen ".
Virtual Server-Instanz(en) zur Wartungssicherheitsgruppe hinzufügen
Für Verwaltungstätigkeiten auf den Servern müssen Sie die jeweiligen virtuellen Server der Wartungssicherheitsgruppe zuordnen. Im Folgenden richten Sie die Wartung ein, melden sich beim privaten Server an, aktualisieren die Softwarepaketinformationen und heben die Zuordnung der Sicherheitsgruppe wieder auf.
Aktivieren Sie die Wartungssicherheitsgruppe für den Server.
- Navigieren Sie zu Sicherheitsgruppen und wählen Sie die Sicherheitsgruppe vpc-secure-maintenance-sg aus.
- Klicken Sie auf die Registerkarte Zugeordnete Ressourcen und wählen Sie im Filter Virtuelle Serverschnittstelle aus.
- Klicken Sie auf Virtuelle Serverschnittstellen bearbeiten, um eine Liste der VSIs anzuzeigen. Erweitern Sie die Liste und überprüfen Sie die Auswahl neben der Spalte Schnittstellen für vpc-secure-private-vsi.
- Klicken Sie auf Speichern, um die Änderungen anzuwenden.
Verbindung zur Instanz herstellen
Zum Herstellen einer SSH-Verbindung zu einer Instanz über die private IP-Adresse verwenden Sie den Bastion-Host als Jump-Host.
-
Wählen Sie im linken Menü Virtuelle Serverinstanzen im Abschnitt "Berechnen" aus. Notieren Sie die reservierte IP-Adresse (private IP-Adresse) für vpc-secure-private-vsi.
-
Verwenden Sie den Befehl ssh mit
-J
, um sich mit der Bastion-Adresse dynamische IP, die Sie zuvor verwendet haben, und der Server-Adresse Private IP, die Sie gerade nachgeschlagen haben, beim Server anzumelden.ssh -J root@<BASTION_FLOATING_IP_ADDRESS> root@<PRIVATE_IP_ADDRESS>
Das Flag
-J
wird in OpenSSH Version 7.3+ unterstützt. In älteren Versionen ist-J
nicht verfügbar. In diesem Fall besteht die sicherste und einfachste Methode darin, den STDIO-Weiterleitungsmodus (-W
) des SSH-Befehls zu verwenden, um die Verbindung per Zurückweisung ('bounce') durch einen Bastion-Host weiterzuleiten. Beispiel:ssh -o ProxyCommand="ssh -W %h:%p root@<BASTION_FLOATING_IP_ADDRESS" root@<PRIVATE_IP_ADDRESS>
Software installieren und Verwaltungstasks durchführen
Sobald die Verbindung hergestellt ist, können Sie Software auf dem virtuellen Server installieren oder Wartungsaufgaben ausführen.
- Aktualisieren Sie zuerst die Softwarepaketinformationen:
apt-get update
- Installieren Sie die gewünschte Software, zum Beispiel Nginx, MySQL oder IBM Db2.
Trennen Sie zum Schluss die Verbindung zum Server mit dem Befehl exit
.
Um HTTP/HTTPS-Anforderungen vom Internetbenutzer zuzulassen, weisen Sie der VSI eine variable IP-Adresse zu und öffnen Sie die erforderlichen Ports (80 für HTTP und 443 für HTTPS) über die Regeln für eingehenden Datenverkehr in der Sicherheitsgruppe der privaten VSI.
Wartungssicherheitsgruppe inaktivieren
Wenn Sie die Installation von Software oder Ihre Wartungsarbeiten abgeschlossen haben, sollten Sie die virtuellen Server aus der Wartungssicherheitsgruppe entfernen, um sie isoliert zu halten.
- Navigieren Sie zu Sicherheitsgruppen und wählen Sie die Sicherheitsgruppe vpc-secure-maintenance-sg aus.
- Klicken Sie auf Zugeordnete Ressourcen und anschließend auf Virtuelle Serverschnittstellen bearbeiten.
- Erweitern Sie die virtuellen Serverinstanzen und deaktivieren Sie die Auswahl neben der Spalte "Schnittstellen" für vpc-secure-private-vsi.
- Klicken Sie auf Speichern, um die Änderungen anzuwenden.
Sie können den Befehl ssh
von oben mit der Option 'jump host' wiederholen. Es sollte jetzt fehlschlagen.
Ressourcen entfernen
- Wechseln Sie zu Virtual Server-Instanzen. Stoppen und Löschen Sie Ihre Instanzen, indem Sie auf das entsprechende Aktionsmenü klicken.
- Sobald die VSIs entfernt wurden, wechseln Sie zu Teilnetze und löschen Ihre Teilnetze.
- Wechseln Sie nach dem Löschen der Teilnetze zur Registerkarte VPCs und löschen Sie Ihre VPC.
Wenn Sie die Konsole verwenden, müssen Sie Ihre Browseransicht möglicherweise aktualisieren, damit aktualisierte Statusinformationen nach dem Löschen einer Ressource angezeigt werden.