Was ist ein SSH Tunnel und wie funtioniert er?

ssh tunnel set up

Ein SSH Tunnel ist eine Weiterleitung eines lokalen (Netzwerk) Ports zu einem (anderen oder gleichen) Port auf einem entfernten Rechner. Die Weiterleitung erfolgt über eine SSH Verbindung die zwischen den beiden Rechnern (Client und Gateway) aufgebaut wurde. Die Weiterleitung kann am Gateway enden oder an einen andern Rechner hinter dem Gateway weitergeleitet werden wie in der Abbildung.

ssh tunnel set up

SSH Tunnel von einem Client Laptop über einen Gateway zu einem Emailserver

Die Abbildung stellt den Zugriff eines Clients auf einen entfernten Emailserver dar. Die Verbindung zwischen dem Client und dem Gateway ist gesichert. Diese Sicherung wird durch eine verschlüsselte SSH (Secure Shell) Verbindung bereitgestellt. Die Kommunikation auf dem Weg zwischen Client und Gateway ist für Dritte nicht einsehbar.

Der SSH Tunnel

Die Wichtigkeit oder Notwendigkeit einer sicheren Verbindung ergibt sich oft durch Umweltfaktoren. Beispielsweise befindet sich unsere Nutzerin (Alice) unterwegs in einem Internetcafe. Ihr Email-Anbieter (ihre Uni) ist altmodisch und bietet keine verschlüsselte Verbindung und auch keine verschlüsselte Authentifizierung.

Alice möchte aber nicht, dass ihre Emails auf dem Weg durchs Internet oder gar vom Betreiber des Internetcafe (ein schmieriger Typ :/ ) mitgelesen werden. Dazu macht Alice nun Folgendes: Sie baut von ihrem Laptop (Client) aus eine sichere Verbindung zu einem Server (dem Gateway) in der Uni auf. Auf den meisten Linux oder Unix Systemen läuft bereits nach der Installation des Betriebssystems ein SSH Server. Dieser lauscht auf dem SSH Port 22.

Nun hat Alice eine verschlüsselte Verbindung in die Uni hinein (Tunnel). Den Kollegen in der Uni traut sie mehr, als dem Rest der Welt im Internet. Durch diese Verbindung hindurch, greift sie nun auf den Emailserver (Zielserver) zu (Verbindung durch den Tunnel).

Dadurch hat sie erreicht, dass auf dem Weg zwischen Client und Gateway niemand mitlesen kann.

Bietet der Emailserver selbst SSH an, so kann dieser die Rolle das Gateway übernehmen und die unverschlüsselte Verbindung verläßt nichteinmal den Rechner.

Einsatz heute

Emailserver bieten heute in der Regel Zugriff über SSL oder TLS an. Dies sollte man in jedem Fall auch nutzen. Ein SSH Tunnel würde hier gegebenenfalls den Zugriff auf den Emailserver zusätzlich verschleiern. Verschleiern, da nur zu sehen ist, dass es eine Verbindung zwischen Client und Gateway gibt. Niemand sieht, was dahinter geschieht.

Wie man einen SSH Tunnel mit Linux oder einen SSH Tunnel mit Windows aufbaut, habe ich bereits in andern Artikeln erklärt.