Connect with us

Wie man

So verwenden Sie SSH-Tunneling, um auf eingeschränkte Server zuzugreifen und sicher zu surfen

So verwenden Sie SSH-Tunneling, um auf eingeschränkte Server zuzugreifen und sicher zu surfen

Ein SSH-Client stellt eine Verbindung zu einem Secure Shell-Server her, mit dem Sie Terminalbefehle ausführen können, als würden Sie vor einem anderen Computer sitzen. Mit einem SSH-Client können Sie jedoch auch einen Port zwischen Ihrem lokalen System und einem Remote-SSH-Server „tunneln“.

Es gibt drei verschiedene Arten von SSH-Tunneln, die alle für unterschiedliche Zwecke verwendet werden. Bei jedem wird ein SSH-Server verwendet, um den Datenverkehr von einem Netzwerkport zu einem anderen umzuleiten. Der Datenverkehr wird über die verschlüsselte SSH-Verbindung gesendet, sodass er während der Übertragung nicht überwacht oder geändert werden kann.

Sie können dies mit dem tun ssh Befehl unter Linux, MacOS und anderen UNIX-ähnlichen Betriebssystemen. Unter Windows, das keinen integrierten ssh-Befehl enthält, empfehlen wir das kostenlose Tool Kitt um eine Verbindung zu SSH-Servern herzustellen. Es unterstützt auch SSH-Tunneling.

Lokale Portweiterleitung: Machen Sie Remote-Ressourcen auf Ihrem lokalen System zugänglich

Mit „Lokale Portweiterleitung“ können Sie auf lokale Netzwerkressourcen zugreifen, die nicht dem Internet ausgesetzt sind. Angenommen, Sie möchten von zu Hause aus auf einen Datenbankserver in Ihrem Büro zugreifen. Aus Sicherheitsgründen ist dieser Datenbankserver nur so konfiguriert, dass er Verbindungen vom lokalen Büronetzwerk akzeptiert. Wenn Sie jedoch im Büro Zugriff auf einen SSH-Server haben und dieser SSH-Server Verbindungen von außerhalb des Büronetzwerks zulässt, können Sie von zu Hause aus eine Verbindung zu diesem SSH-Server herstellen und auf den Datenbankserver zugreifen, als wären Sie im Büro. Dies ist häufig der Fall, da es einfacher ist, einen einzelnen SSH-Server vor Angriffen zu schützen, als verschiedene Netzwerkressourcen zu sichern.

Dazu stellen Sie eine SSH-Verbindung zum SSH-Server her und weisen den Client an, den Datenverkehr von einem bestimmten Port von Ihrem lokalen PC – z. B. Port 1234 – an die Adresse des Datenbankservers und dessen Port im Büronetzwerk weiterzuleiten. Wenn Sie also versuchen, auf den Datenbankserver an Port 1234 Ihres aktuellen PCs, „localhost“, zuzugreifen, wird dieser Datenverkehr automatisch über die SSH-Verbindung „getunnelt“ und an den Datenbankserver gesendet. Der SSH-Server befindet sich in der Mitte und leitet den Datenverkehr hin und her. Sie können eine beliebige Befehlszeile oder ein grafisches Tool verwenden, um auf den Datenbankserver zuzugreifen, als würde er auf Ihrem lokalen PC ausgeführt.

Um die lokale Weiterleitung zu verwenden, stellen Sie normalerweise eine Verbindung zum SSH-Server her, geben Sie jedoch auch die an -L Streit. Die Syntax lautet:

ssh -L local_port:remote_address:remote_port username@server.com

Angenommen, der Datenbankserver in Ihrem Büro befindet sich unter 192.168.1.111 im Büronetzwerk. Sie haben Zugriff auf den SSH-Server des Büros unter ssh.youroffice.com und Ihr Benutzerkonto auf dem SSH-Server ist bob . In diesem Fall würde Ihr Befehl folgendermaßen aussehen:

ssh -L 8888:192.168.1.111:1234 bob@ssh.youroffice.com

Nachdem Sie diesen Befehl ausgeführt haben, können Sie über Port 8888 bei localhost auf den Datenbankserver zugreifen. Wenn der Datenbankserver einen Webzugriff anbietet, können Sie http: // localhost: 8888 in Ihren Webbrowser einbinden, um darauf zuzugreifen. Wenn Sie ein Befehlszeilentool hatten, das die Netzwerkadresse einer Datenbank benötigt, verweisen Sie auf localhost: 8888. Der gesamte an Port 8888 auf Ihrem PC gesendete Datenverkehr wird in Ihrem Büronetzwerk auf 192.168.1.111:1234 getunnelt.

Es ist etwas verwirrender, wenn Sie eine Verbindung zu einer Serveranwendung herstellen möchten, die auf demselben System wie der SSH-Server selbst ausgeführt wird. Angenommen, Sie haben einen SSH-Server an Port 22 auf Ihrem Bürocomputer, aber Sie haben auch einen Datenbankserver an Port 1234 auf demselben System unter derselben Adresse. Sie möchten von zu Hause aus auf den Datenbankserver zugreifen, das System akzeptiert jedoch nur SSH-Verbindungen an Port 22 und die Firewall lässt keine anderen externen Verbindungen zu.

In diesem Fall können Sie einen Befehl wie den folgenden ausführen:

ssh -L 8888:localhost:1234 bob@ssh.youroffice.com

Wenn Sie versuchen, über Port 8888 auf Ihrem aktuellen PC auf den Datenbankserver zuzugreifen, wird der Datenverkehr über die SSH-Verbindung gesendet. Wenn es auf dem System ankommt, auf dem der SSH-Server ausgeführt wird, sendet der SSH-Server es an Port 1234 auf „localhost“, dem gleichen PC, auf dem der SSH-Server selbst ausgeführt wird. Der „localhost“ im obigen Befehl bedeutet also „localhost“ aus Sicht des Remote-Servers.

Wählen Sie dazu in der PuTTY-Anwendung unter Windows Verbindung> SSH> Tunnel. Wählen Sie die Option „Lokal“. Geben Sie unter „Quellport“ den lokalen Port ein. Geben Sie unter „Ziel“ die Zieladresse und den Port in der Form remote_address: remote_port ein.

Wenn Sie beispielsweise denselben SSH-Tunnel wie oben einrichten möchten, geben Sie Folgendes ein 8888 als Quellport und localhost:1234 als Ziel. Klicken Sie anschließend auf „Hinzufügen“ und dann auf „Öffnen“, um die SSH-Verbindung zu öffnen. Sie müssen natürlich auch die Adresse und den Port des SSH-Servers selbst im Hauptbildschirm „Sitzung“ eingeben, bevor Sie eine Verbindung herstellen.

Remote Port Forwarding: Machen Sie lokale Ressourcen auf einem Remote-System zugänglich

„Remote-Port-Weiterleitung“ ist das Gegenteil von lokaler Weiterleitung und wird nicht so häufig verwendet. Damit können Sie eine Ressource auf Ihrem lokalen PC auf dem SSH-Server verfügbar machen. Angenommen, Sie betreiben einen Webserver auf dem lokalen PC, vor dem Sie sitzen. Ihr PC befindet sich jedoch hinter einer Firewall, die keinen eingehenden Datenverkehr zur Serversoftware zulässt.

Angenommen, Sie können auf einen Remote-SSH-Server zugreifen, können Sie eine Verbindung zu diesem SSH-Server herstellen und die Remote-Port-Weiterleitung verwenden. Ihr SSH-Client weist den Server an, einen bestimmten Port (z. B. Port 1234) auf dem SSH-Server an eine bestimmte Adresse und einen bestimmten Port auf Ihrem aktuellen PC oder lokalen Netzwerk weiterzuleiten. Wenn jemand auf den Port 1234 auf dem SSH-Server zugreift, wird dieser Datenverkehr automatisch über die SSH-Verbindung „getunnelt“. Jeder, der Zugriff auf den SSH-Server hat, kann auf den auf Ihrem PC ausgeführten Webserver zugreifen. Dies ist effektiv eine Möglichkeit, durch Firewalls zu tunneln.

Verwenden Sie die, um die Fernweiterleitung zu verwenden ssh Befehl mit dem -R Streit. Die Syntax ist weitgehend dieselbe wie bei der lokalen Weiterleitung:

ssh -R remote_port:local_address:local_port username@server.com

Angenommen, Sie möchten eine Serveranwendung, die an Port 1234 auf Ihrem lokalen PC lauscht, an Port 8888 auf dem Remote-SSH-Server verfügbar machen. Die Adresse des SSH-Servers lautet ssh.youroffice.com und Ihr Benutzername auf dem SSH-Server ist. Sie würden den folgenden Befehl ausführen:

ssh -R 8888:localhost:1234 bob@ssh.youroffice.com

Jemand könnte dann eine Verbindung zum SSH-Server an Port 8888 herstellen, und diese Verbindung wird zu der Serveranwendung getunnelt, die an Port 1234 auf dem lokalen PC ausgeführt wird, von dem aus Sie die Verbindung hergestellt haben.

Wählen Sie dazu in PuTTY unter Windows Verbindung> SSH> Tunnel. Wählen Sie die Option „Remote“. Geben Sie unter „Quellport“ den Remote-Port ein. Geben Sie unter „Ziel“ die Zieladresse und den Port in der Form local_address: local_port ein.

Wenn Sie beispielsweise das obige Beispiel einrichten möchten, geben Sie Folgendes ein 8888 als Quellport und localhost:1234 als Ziel. Klicken Sie anschließend auf „Hinzufügen“ und dann auf „Öffnen“, um die SSH-Verbindung zu öffnen. Sie müssen natürlich auch die Adresse und den Port des SSH-Servers selbst im Hauptbildschirm „Sitzung“ eingeben, bevor Sie eine Verbindung herstellen.

Die Benutzer könnten dann eine Verbindung zu Port 8888 auf dem SSH-Server herstellen und ihr Datenverkehr würde zu Port 1234 auf Ihrem lokalen System getunnelt.

Standardmäßig überwacht der Remote-SSH-Server nur Verbindungen von demselben Host. Mit anderen Worten, nur Personen auf demselben System wie der SSH-Server selbst können eine Verbindung herstellen. Dies ist aus Sicherheitsgründen. Sie müssen die Option „GatewayPorts“ in aktivieren sshd_config auf dem Remote-SSH-Server, wenn Sie dieses Verhalten überschreiben möchten.

Dynamische Portweiterleitung: Verwenden Sie Ihren SSH-Server als Proxy

Es gibt auch eine „dynamische Portweiterleitung“, die ähnlich wie ein Proxy oder VPN funktioniert. Der SSH-Client erstellt einen SOCKS-Proxy, für den Sie Anwendungen konfigurieren können. Der gesamte über den Proxy gesendete Datenverkehr wird über den SSH-Server gesendet. Dies ähnelt der lokalen Weiterleitung: Der lokale Datenverkehr wird an einen bestimmten Port Ihres PCs gesendet und über die SSH-Verbindung an einen Remotestandort gesendet.

Angenommen, Sie verwenden ein öffentliches Wi-Fi-Netzwerk. Sie möchten sicher surfen, ohne beschnüffelt zu werden. Wenn Sie zu Hause Zugriff auf einen SSH-Server haben, können Sie eine Verbindung zu diesem Server herstellen und die dynamische Portweiterleitung verwenden. Der SSH-Client erstellt einen SOCKS-Proxy auf Ihrem PC. Der gesamte an diesen Proxy gesendete Datenverkehr wird über die SSH-Serververbindung gesendet. Niemand, der das öffentliche Wi-Fi-Netzwerk überwacht, kann Ihr Surfen überwachen oder die Websites zensieren, auf die Sie zugreifen können. Aus der Sicht aller Websites, die Sie besuchen, ist es, als würden Sie zu Hause vor Ihrem PC sitzen. Dies bedeutet auch, dass Sie diesen Trick verwenden können, um auf Websites nur in den USA außerhalb der USA zuzugreifen – vorausgesetzt, Sie haben natürlich Zugriff auf einen SSH-Server in den USA.

Als weiteres Beispiel möchten Sie möglicherweise auf eine Medienserveranwendung zugreifen, die Sie in Ihrem Heimnetzwerk haben. Aus Sicherheitsgründen ist möglicherweise nur ein SSH-Server dem Internet ausgesetzt. Sie erlauben keine eingehenden Verbindungen aus dem Internet zu Ihrer Medienserveranwendung. Sie können die dynamische Portweiterleitung einrichten, einen Webbrowser für die Verwendung des SOCKS-Proxys konfigurieren und dann über den Webbrowser auf Server zugreifen, die in Ihrem Heimnetzwerk ausgeführt werden, als würden Sie zu Hause vor Ihrem SSH-System sitzen. Wenn sich Ihr Medienserver beispielsweise an Port 192.168.1.123 in Ihrem Heimnetzwerk befindet, können Sie die Adresse einstecken 192.168.1.123 in jede Anwendung, die den SOCKS-Proxy verwendet, und Sie würden auf den Medienserver zugreifen, als wären Sie in Ihrem Heimnetzwerk.

Führen Sie den Befehl ssh mit dem Befehl ssh aus, um die dynamische Weiterleitung zu verwenden -D Argument, wie so:

ssh -D local_port username@server.com

Angenommen, Sie haben Zugriff auf einen SSH-Server unter ssh.yourhome.com und Ihr Benutzername auf dem SSH-Server ist bob . Sie möchten die dynamische Weiterleitung verwenden, um einen SOCKS-Proxy an Port 8888 auf dem aktuellen PC zu öffnen. Sie würden den folgenden Befehl ausführen:

ssh -D 8888 bob@ssh.yourhome.com

Sie können dann einen Webbrowser oder eine andere Anwendung so konfigurieren, dass Ihre lokale IP-Adresse (127.0.01) und Port 8888 verwendet werden. Der gesamte Datenverkehr dieser Anwendung wird durch den Tunnel umgeleitet.

Wählen Sie dazu in PuTTY unter Windows Verbindung> SSH> Tunnel. Wählen Sie die Option „Dynamisch“. Geben Sie unter „Quellport“ den lokalen Port ein.

Wenn Sie beispielsweise einen SOCKS-Proxy an Port 8888 erstellen möchten, geben Sie Folgendes ein 8888 als Quellport. Klicken Sie anschließend auf „Hinzufügen“ und dann auf „Öffnen“, um die SSH-Verbindung zu öffnen. Sie müssen natürlich auch die Adresse und den Port des SSH-Servers selbst im Hauptbildschirm „Sitzung“ eingeben, bevor Sie eine Verbindung herstellen.

Sie können dann eine Anwendung für den Zugriff auf den SOCKS-Proxy auf Ihrem lokalen PC konfigurieren (dh die IP-Adresse 127.0.0.1, die auf Ihren lokalen PC verweist) und den richtigen Port angeben.

Beispielsweise können Sie Firefox für die Verwendung des SOCKS-Proxys konfigurieren. Dies ist besonders nützlich, da Firefox eigene Proxy-Einstellungen haben kann und keine systemweiten Proxy-Einstellungen verwenden muss. Firefox sendet seinen Datenverkehr über den SSH-Tunnel, während andere Anwendungen Ihre Internetverbindung normal verwenden.

Wenn Sie dies in Firefox tun, wählen Sie „Manuelle Proxy-Konfiguration“, geben Sie „127.0.0.1“ in das Feld „SOCKS-Host“ ein und geben Sie den dynamischen Port in das Feld „Port“ ein. Lassen Sie die Felder HTTP-Proxy, SSL-Proxy und FTP-Proxy leer.

Der Tunnel bleibt aktiv und geöffnet, solange die SSH-Sitzungsverbindung geöffnet ist. Wenn Sie Ihre SSH-Sitzung beenden und die Verbindung zu einem Server trennen, wird der Tunnel ebenfalls geschlossen. Verbinden Sie sich einfach erneut mit dem entsprechenden Befehl (oder den entsprechenden Optionen in PuTTY), um den Tunnel erneut zu öffnen.

Continue Reading
Click to comment

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Tendencia