json="{"targeting":{"kw":["SSH-Tunnel"],"cms":4320041}}"

SSH-Tunnel nutzen - so geht's

Ein SSH-Tunnel baut eine Verbindung zu einem entfernten Server auf - aber über eine Zwischenstation. Wenn beispielsweise die Seite example.com in Ihrem Netzwerk gesperrt ist, greifen Sie auf einen SSH-Server zu, der die Verbindung zu example.com herstellt und zu Ihnen weiterleitet. Über einen Reverse SSH-Tunnel läuft das Ganze umgekehrt. Klingt verwirrend, mit ein wenig Erklärung und Beispielen geht das aber ganz einfach.

Was ist ein SSH Tunnel?

Was genau SSH ist, können Sie hier nachlesen. In Kürze: Mit SSH (Secure Shell) bauen Sie eine verschlüsselte Verbindung zu einem entfernten Rechner (SSH-Server) auf und können dann dort arbeiten - als säßen Sie selbst vor diesem entfernten Rechner. Voraussetzung Nummer 1 für einen SSH-Tunnel ist also ein SSH-Server. Zum Testen können Sie dazu auch Geräte in Ihrem Heimnetz nutzen. Wirklich nützlich wird das Ganze aber erst, wenn Sie einen Server im Internet nutzen können; beispielsweise bieten viele Webspace-Anbieter auch eine SSH-Option. Voraussetzung Nummer 2: Der SSH-Server muss auch so konfiguriert sein, dass SSH-Tunnel zugelassen werden.

Tunnel meint nun, dass Daten von einem dritten Rechner, zum Beispiel eine Webseite, vom SSH-Server angefordert und dann über die SSH-Verbindung an Ihren lokalen Rechner weitergeleitet werden. Angenommen, Ihr Netzwerkadministrator hat die Webseite "example.com" gesperrt. Sie können aber auf Ihren SSH-Server "ssh.meinsshserver.de" zugreifen - und dieser wiederum auch auf "example.com". Dann sagen Sie Ihrem SSH-Server, dass er "example.com" an Ihren lokalen Rechner leiten soll - und Sie können sie dann im Browser ansehen. Das Beste: SSH-Verbindungen sind wie gesagt verschlüsselt, sprich es ist für niemanden ersichtlich, welche Daten, hier also die Webseite von "example.com", Sie sich anschauen.

Bei einem Reverse-Tunnel sieht es ähnlich aus: Angenommen, Sie haben auf Ihrem Rechner einen Server laufen, etwa einen Webserver - oder schlicht das Mediacenter Kodi, das ebenfalls über den Browser erreichbar ist. Nun möchten Sie von einem dritten Rechner darauf zugreifen. Ihr Kodi-Rechner daheim ist aber nicht mit einer eigenen IP-Adresse ausgerüstet, daher können Sie nicht ohne Weiteres darauf zugreifen. Sie können aber sehr wohl Kodis Browser-Ansicht über den SSH-Server an den dritten Rechner leiten.

Etwas genauer: Kodis Weboberfläche ist lokal im Browser zu finden unter "127.0.0.1:8080", oder "localhost:8080". Das "127.0.0.1" meint einfach nur den lokalen Rechner und "8080" den Port, eine Art Hausnummer, unter dem die Weboberfläche zu finden ist. Dieser Port 8080 wird an einen (fast) beliebigen Port des SSH-Server weitergeleitet. Das heißt: Was unter "127.0.0.1:8080" zu sehen ist, ist dann beispielsweise auch unter "ssh.meinsshserver.de:9000" zu sehen. Und da der SSH-Server über das Internet ganz normal erreichbar ist, können Sie letztlich doch noch vom dritten Rechner aus über den SSH-Umweg auf Ihren heimischen zugreifen.

Einfacher wird es durch Beispiele. Und da nicht jeder einen richtig konfigurierten SSH-Server hat, arbeitet unser Beispiel im Heimnetz. Sie bräuchten: Einen Windows- oder Linux-Rechner und ein weiteres Netzwerkgerät mit einem standardmäßig konfigurierten SSH-Server. Das wäre zum Beispiel ein Raspberry Pi, ein NAS, ein anderer Rechner - zur Not einfach eine virtuelle Maschine mit etwa Ubuntu. Im Beispiel kommen folgende Geräte zum Einsatz: "192.168.69" als SSH-Server, "192.168.178.75:8080" als NAS-Weboberfläche für den Tunnel und "127.0.0.1:8080" als Kodi-Oberfläche für den Reverse Tunnel. Der Nutzername beim SSH-Server ist "linaro", der vergebene Port "9000".

SSH Tunnel im Terminal nutzen

Unter Linux stehen die Tools standardmäßig bereit, unter Windows 10 ebenfalls. Lesen Sie hier mehr zu SSH unter Windows 10. Unter Windows 7 und Windows 8 müssten Sie für die Kommandozeile nachrüsten. Das geht beispielsweise mit Git for Windows, das einen Linux-ähnlichen Terminal installiert.

Zunächst geht es darum, vom lokalen Rechner aus über den SSH-Server auf die Kodi-Oberfläche auf dem dritten Rechner zuzugreifen. Geben Sie im Terminal folgenden Befehl ein:

ssh linaro@192.168.178.69 -L 9000:192.168.178.75:8080

Zunächst wird eine ganz normale SSH-Verbindung mit dem Nutzer "linaro" zum SSH-Server aufgebaut. Die Option "L" leitet dann den Tunnel ein: Zunächst folgt der lokale Port "9000", dann die Adresse der NAS-Weboberfläche "192.168.178.75:8080". Es folgt die Passwortabfrage. Anschließend können Sie im Browser auf dem lokalen Rechner "127.0.0.1:9000" eingeben und bekommen zu sehen, was auch unter "192.168.75:8080" zu sehen ist. So lange die Geräte alle in einem Netz stehen, können Sie natürlich jede IP-Adresse verwenden. Über das Internet ginge es natürlich nur über die IP-Adresse des SSH-Servers.

SSH Tunnel unter Windows nutzen

Das Terminal ist aber nun einmal nicht der natürliche Weg für Windows-Nutzer - hier macht man das mit PuTTY. Öffnen Sie PuTTY und geben Sie im Startfenster einfach bei "Host Name" die IP-Adresse des SSH-Servers an, hier also "192.168.178.69". Optional können Sie die Sitzung noch mit einem Namen versehen und speichern. Wechseln Sie nun zu "Connection/SSH/Tunnels". Geben Sie hier als "Source Port" den frei gewählten Port "9000" ein und als "Destination" die NAS-Weboberfläche, also "192.168.178.75:8080".

Bauen Sie anschließend die Verbindung über den "Open"-Knopf auf und geben Sie im Browser "127.0.0.1:8080" ein, um die NAS-Weboberfläche aufzurufen. Und nochmal: Die NAS-Weboberfläche wird vom SSH-Server abgeholt und auf Ihren lokalen Rechner weitergeleitet.

Reverse SSH Tunnel nutzen

Im zweiten Beispiel soll nun die lokale Kodi-Weboberfläche vom dritten Rechner über den SSH-Server aufgerufen werden. Der Befehl sieht fast genauso aus:

ssh linaro@192.168.178.69 -R 9000:127.0.0.1:8080

Der erste Teil mit der SSH-Verbindung ändert sich nicht. Dann kommt aber die Option "R" für den Reverse-Tunnel: Wieder wird der gewünschte Port für den SSH-Server auf 9000 gesetzt, anschließend folgt wieder das, was weitergeleitet werden soll, eben die Kodi-Weboberfläche unter "127.0.0.1:8080". Sobald die Verbindung steht, können Sie von dem dritten Rechner aus über "192.169.178.69:9000" auf die Kodi-Weboberfläche zugreifen. Mit PuTTY geht das natürlich auch, da müssen Sie nur unter "Connection/SSH/Tunnels" ein Häkchen bei "Remote" setzen.

Im Grunde genommen ist der SSH-Aufruf in beiden Fällen völlig identisch: Sie bauen eine SSH-Verbindung von Ihrem lokalen Rechner zum SSH-Server auf. Dann wird entweder ein lokaler Tunnel (Option L) aufgebaut oder ein Reverse Tunnel (Option R). Es folgt der Port zum Abruf über den SHH-Server. Den Abschluss bildet das, was Sie eigentlich sehen wollen, hier also NAS- beziehungsweise Kodi-Weboberfläche. Zugegeben, das klingt auf dem Papier dennoch nicht immer ganz trivial, aber wenn Sie es einmal daheim versucht haben, klärt sich das ganz fix.