In meinem letzten Blog über die Einrichtung von AWS Secure Shell (SSH) mit EC2 und CloudFormation haben wir die Erstellung einer EC2-Instanz mit einem KeyPair automatisiert. Mit dem KeyPair können wir eine Verbindung zur Instanz herstellen und Zugang zum Terminal erhalten. In diesem Blog werden wir SSH verwenden, um einen SSH-Tunnel zum virtuellen Netzwerk in AWS einzurichten. Mit SSH-Tunneln können wir auf Server in AWS zugreifen, die über keine öffentliche Netzwerkverbindung verfügen.
Architektur
Wir werden eine EC2-Instanz in einem privaten Subnetz mit NAT-Konnektivität erstellen. Die private Instanz wird eine einfache Webseite auf Port 80 hosten. Die private Instanz kann sich mit einem Basishost im öffentlichen Subnetz verbinden. Das öffentliche Subnetz ist über SSH mit RSA-Schlüsseln erreichbar. Wir werden uns über SSH mit dem Bastion-Host verbinden und einen Tunnel zur privaten Instanz einrichten, so dass die Webseite nur von unserem lokalen Computer aus erreichbar ist.
SSH und Tunnels
Um eine lokale SSH-Portweiterleitung von localhost:8080 auf den privaten Host einzurichten, geben Sie ip-10-0-1-92.eu-west-1.compute.internal:80 ein:
$ ssh -N -L8080:ip-10-0-1-92.eu-west-1.compute.internal:80 -i bastion.pem ec2-user@ec2-34-254-194-35.eu-west-1.compute.amazonaws.com
Verbinden mit der privaten Instanz
Wenn ein SSH-Tunnel erstellt wurde, öffnen Sie einen Browser und öffnen Sie http://localhost:8080. Der Browser verbindet sich mit dem lokalen Computer, und alle Daten an Port 8080 werden vom SSH-Server an die private Instanz weitergeleitet. Der Tunnel ist bidirektional, was bedeutet, dass die private Instanz mit einer Webseite antworten kann, die vom Webbrowser gerendert wird. Die Verbindung ist verschlüsselt und alle Daten werden verschlüsselt über den Tunnel an Ihren lokalen Computer gesendet.
Beispiel
Das Beispielprojekt zeigt, wie Sie ein Projekt zur Einrichtung eines öffentlichen und eines privaten Netzwerks konfigurieren. Außerdem gibt es einen Bastion-Host, der als NAT-Router für das private Netzwerk fungiert. Der Bastion-Host kann zur Verwaltung der privaten Instanz verwendet werden. Das Beispiel lässt sich mit
Fazit
In diesem Blog haben wir gesehen, wie Sie einen SSH-Tunnel zu einer privaten Instanz in AWS einrichten, auf der ein einfacher Webserver und eine Webseite laufen. Durch die Verwendung von SSH mit lokaler Portweiterleitung ist die gesamte Kommunikation zwischen Ihrem Computer und der privaten Instanz privat und verschlüsselt. Ein Bastion-Host mit Portweiterleitung kann mit anderen Diensten wie dem Elasticsearch-Dienst verwendet werden, der in einem privaten Subnetz läuft. Wenn Kibana auf Port 443 (SSL) läuft, können Sie den Verkehr zu localhost an Kibana weiterleiten, das im privaten Subnetz läuft. Auf diese Weise können Sie auf den Dienst auf sichere Weise zugreifen.
Verfasst von
Dennis Vriend
Unsere Ideen
Weitere Blogs
Contact




