de.phhsnews.com


de.phhsnews.com / So verwenden Sie SSH-Tunneling, um auf eingeschränkte Server zuzugreifen und sicher zu navigieren

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


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 sitzen Computer. 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-Tunneling, die alle für verschiedene Zwecke verwendet werden. Jedes beinhaltet die Verwendung eines SSH-Servers, um Verkehr von einem Netzwerk-Port zu einem anderen umzuleiten. Der Datenverkehr wird über die verschlüsselte SSH-Verbindung gesendet, so dass er während der Übertragung nicht überwacht oder geändert werden kann.

Sie können dies mit dem Befehlsshausführen, der auf Linux, macOS und anderen UNIX-ähnlichen Systemen enthalten ist Betriebssysteme. Unter Windows, das keinen integrierten SSH-Befehl enthält, empfehlen wir das kostenlose Tool PuTTY, um eine Verbindung zu SSH-Servern herzustellen. Es unterstützt auch SSH-Tunneling.

Lokale Portweiterleitung: Machen Sie Remote-Ressourcen auf Ihrem lokalen System verfügbar

"Lokale Portweiterleitung" ermöglicht Ihnen den Zugriff auf lokale Netzwerkressourcen, die nicht mit dem Internet verbunden 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 Zugriff auf einen SSH-Server im Büro haben und der SSH-Server Verbindungen von außerhalb des Büronetzwerks zulässt, können Sie sich von zu Hause aus mit diesem SSH-Server verbinden 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 gegen Angriffe zu sichern, als eine Vielzahl unterschiedlicher Netzwerkressourcen zu sichern.

Dazu richten Sie eine SSH-Verbindung mit dem SSH-Server ein und weisen den Client an, Datenverkehr weiterzuleiten B. von Port 1234 an die Adresse des Servers der Datenbank und dessen Port im Büronetzwerk. Wenn Sie also versuchen, über Ihren aktuellen PC, "localhost", auf den Datenbankserver unter Port 1234 zuzugreifen, wird der Datenverkehr automatisch über die SSH-Verbindung "getunnelt" und an den Datenbankserver gesendet. Der SSH-Server sitzt in der Mitte und leitet den Datenverkehr hin und her. Sie können eine beliebige Befehlszeile oder ein grafisches Werkzeug verwenden, um auf den Datenbankserver zuzugreifen, als ob er auf Ihrem lokalen PC ausgeführt würde.

Um die lokale Weiterleitung zu verwenden, stellen Sie normalerweise eine Verbindung zum SSH-Server her, aber auch-LArgument. Die Syntax lautet:

ssh -L lokaler_Port: Remote-Adresse: Remote-Port Benutzername @ 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 unterssh.youroffice.comund Ihr Benutzerkonto auf dem SSH-Server istbob. In diesem Fall würde Ihr Befehl wie folgt aussehen:

ssh -L 8888: 192.168.1.111: 1234 [email protected]

Nachdem Sie diesen Befehl ausgeführt haben, können Sie auf den Datenbankserver unter zugreifen Port 8888 bei localhost. Wenn der Datenbankserver Webzugriff anbietet, können Sie also // localhost: 8888 in Ihren Webbrowser einstecken, um darauf zuzugreifen. Wenn Sie über ein Befehlszeilenprogramm verfügen, das die Netzwerkadresse einer Datenbank benötigt, verweisen Sie auf localhost: 8888. Der gesamte an den Port 8888 auf Ihrem PC gesendete Datenverkehr wird in Ihrem Büronetzwerk zu 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 ausgeführt wird . Angenommen, Sie haben einen SSH-Server auf Port 22 auf Ihrem Bürocomputer, aber Sie haben auch einen Datenbankserver, der auf dem gleichen System unter derselben Adresse unter Port 1234 ausgeführt wird. Sie möchten von zu Hause aus auf den Datenbankserver zugreifen, aber das System akzeptiert nur SSH-Verbindungen an Port 22 und seine Firewall lässt keine anderen externen Verbindungen zu.

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

ssh -L 8888: localhost: 1234 [email protected]

Wenn Sie auf Ihrem aktuellen PC versuchen, auf den Datenbankserver auf Port 8888 zuzugreifen, wird der Datenverkehr über die SSH-Verbindung gesendet. Wenn es auf dem System eintrifft, auf dem der SSH-Server läuft, sendet der SSH-Server es an Port 1234 auf "localhost", das ist derselbe PC, auf dem der SSH-Server selbst läuft. Der "localhost" im obigen Befehl bedeutet also "localhost" aus der Perspektive des entfernten Servers.

Um dies in der PuTTY-Anwendung unter Windows zu tun, wählen Sie Verbindung> SSH> Tunnel. Wählen Sie die Option "Lokal". Geben Sie für "Quellport" den lokalen Port ein. Geben Sie für "Destination" die Zieladresse und den Port in der Form remote_address: remote_port ein.

Wenn Sie beispielsweise den gleichen SSH-Tunnel wie oben einrichten möchten, geben Sie als8888ein Quellport undlocalhost: 1234als Ziel. Klicken Sie anschließend auf "Hinzufügen" und dann auf "Öffnen", um die SSH-Verbindung zu öffnen. Sie müssen auch die Adresse und den Port des SSH-Servers selbst auf dem Hauptbildschirm "Sitzung" eingeben, bevor Sie eine Verbindung herstellen.

Remote-Port-Weiterleitung: Lokale Ressourcen auf einem Remote-System zugänglich machen

"Remote-Port-Weiterleitung "Ist das Gegenteil der lokalen Weiterleitung und wird nicht so häufig verwendet. Es ermöglicht Ihnen, eine Ressource auf Ihrem lokalen PC auf dem SSH-Server verfügbar zu machen. Angenommen, Sie führen einen Webserver auf dem lokalen PC aus, vor dem Sie sitzen. Ihr PC befindet sich jedoch hinter einer Firewall, die keinen eingehenden Datenverkehr zur Serversoftware zulässt.

Wenn Sie auf einen Remote-SSH-Server zugreifen können, können Sie eine Verbindung mit diesem SSH-Server herstellen und die Remote-Portweiterleitung 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 Port auf Ihrem aktuellen PC oder lokalen Netzwerk weiterzuleiten. Wenn jemand auf den Port 1234 auf dem SSH-Server zugreift, wird dieser Verkehr automatisch über die SSH-Verbindung "getunnelt". Jeder, der Zugriff auf den SSH-Server hat, kann auf den Webserver zugreifen, der auf Ihrem PC läuft. Dies ist effektiv eine Möglichkeit, durch Firewalls zu tunneln.

Um die Fernweiterleitung zu verwenden, verwenden Sie den Befehlsshmit dem Argument-R. Die Syntax ist weitgehend die gleiche wie bei der lokalen Weiterleitung:

ssh -R Remote-Port: lokale_Adresse: local_port [email protected]

Nehmen wir an, Sie möchten eine Server-Anwendung an Port 1234 auf Ihrem lokalen PC abhören, die am Port verfügbar ist 8888 auf dem Remote-SSH-Server. Die Adresse des SSH-Servers lautetssh.youroffice.comund Ihr Benutzername auf dem SSH-Server lautet bob . Sie würden den folgenden Befehl ausführen:

ssh -R 8888: localhost: 1234 [email protected]

Jemand könnte dann eine Verbindung zum SSH-Server an Port 8888 herstellen und diese Verbindung würde mit der Serveranwendung getunnelt werden Unter Port 1234 am lokalen PC haben Sie die Verbindung hergestellt.

Um dies in PuTTY unter Windows zu tun, wählen Sie Verbindung> SSH> Tunnel. Wählen Sie die Option "Remote". Geben Sie für "Quellport" den Remote-Port ein. Geben Sie für "Destination" die Zieladresse und den Port in der Form local_address: local_port ein.

Wenn Sie beispielsweise das obige Beispiel einrichten möchten, geben Sie als Quellport8888einlocalhost: 1234als Ziel. Klicken Sie anschließend auf "Hinzufügen" und dann auf "Öffnen", um die SSH-Verbindung zu öffnen. Sie müssen auch die Adresse und den Port des SSH-Servers selbst auf dem Hauptbildschirm "Sitzung" eingeben, bevor Sie die Verbindung herstellen.

Personen können dann eine Verbindung zum Port 8888 auf dem SSH-Server herstellen, und ihr Verkehr wird zum Port getunnelt 1234 auf Ihrem lokalen System.

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

Dynamische Portweiterleitung: Verwenden Sie Ihren SSH-Server als Proxy

VERWANDT: Was ist das? Unterschied zwischen einem VPN und einem Proxy?

Es gibt auch "dynamic port forwarding", das ähnlich wie ein Proxy oder VPN funktioniert. Der SSH-Client erstellt einen SOCKS-Proxy, mit dem Sie Anwendungen konfigurieren können. Der gesamte über den Proxy gesendete Datenverkehr würde über den SSH-Server gesendet werden. Dies ähnelt der lokalen Weiterleitung - es wird lokaler Datenverkehr an einen bestimmten Port auf Ihrem PC gesendet und über die SSH-Verbindung an einen Remote-Standort gesendet.

VERBINDUNG: Warum die Verwendung eines öffentlichen WLAN-Netzwerks gefährlich sein kann, selbst wenn Sie auf verschlüsselte Websites zugreifen

Nehmen wir beispielsweise an, Sie verwenden ein öffentliches WLAN-Netzwerk. Sie möchten sicher surfen, ohne aufgeschnappt zu werden. Wenn Sie zu Hause Zugriff auf einen SSH-Server haben, können Sie sich mit ihm verbinden und die dynamische Portweiterleitung verwenden. Der SSH-Client erstellt auf Ihrem PC einen SOCKS-Proxy. Der gesamte an diesen Proxy gesendete Datenverkehr wird über die SSH-Serververbindung gesendet. Niemand, der das öffentliche Wi-Fi-Netzwerk überwacht, kann Ihr Browsing überwachen oder die Websites zensieren, auf die Sie zugreifen können. Aus der Perspektive von Websites, die Sie besuchen, wird es sein, als ob Sie zu Hause vor Ihrem PC sitzen würden. Dies bedeutet auch, dass Sie diesen Trick verwenden können, um außerhalb von USA auf US-amerikanische Websites zuzugreifen - vorausgesetzt, Sie haben natürlich Zugriff auf einen SSH-Server in den USA.

Als ein weiteres Beispiel möchten Sie möglicherweise auf ein Medium zugreifen Server-Anwendung, die Sie in Ihrem Heimnetzwerk haben. Aus Sicherheitsgründen ist möglicherweise nur ein SSH-Server im Internet verfügbar. Sie erlauben keine eingehenden Verbindungen aus dem Internet zu Ihrer Medienserveranwendung. Sie können eine 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 ob Sie zu Hause vor Ihrem SSH-System säßen. Wenn sich Ihr Medienserver beispielsweise an Port 192.168.1.123 in Ihrem Heimnetzwerk befindet, können Sie die Adresse192.168.1.123über den SOCKS-Proxy in eine beliebige Anwendung stecken und so auf den Medienserver zugreifen Sie waren in Ihrem Heimnetzwerk.

Um die dynamische Weiterleitung zu verwenden, führen Sie den Befehl ssh mit dem-D-Argument aus:

ssh -D lokaler_Datenträger [email protected]

Für Beispiel: Sie haben Zugriff auf einen SSH-Server unterssh.yourhome.comund Ihr Benutzername auf dem SSH-Server lautetbob. Sie möchten die dynamische Weiterleitung verwenden, um einen SOCKS-Proxy über Port 8888 auf dem aktuellen PC zu öffnen. Sie würden den folgenden Befehl ausführen:

ssh -D 8888 [email protected]

Sie könnten dann einen Webbrowser oder eine andere Anwendung konfigurieren, um Ihre lokale IP-Adresse (127.0.01) und Port 8888 zu verwenden. Der gesamte Datenverkehr von dieser Anwendung würde über den Tunnel umgeleitet werden.

Wählen Sie dazu in PuTTY unter Windows "Verbindung> SSH> Tunnel". Wählen Sie die Option "Dynamisch". Geben Sie für "Quellport" den lokalen Port ein.

Wenn Sie beispielsweise einen SOCKS-Proxy an Port 8888 erstellen möchten, geben Sie als Quellport8888ein. 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 auf dem Hauptbildschirm "Sitzung" eingeben, bevor Sie die Verbindung herstellen.

Sie können dann eine Anwendung so konfigurieren, dass sie auf den SOCKS-Proxy auf Ihrem lokalen PC zugreift. IP-Adresse 127.0.0.1, die auf Ihren lokalen PC verweist) und den richtigen Port angeben.

RELATED: So konfigurieren Sie einen Proxy-Server in Firefox

Sie können Firefox beispielsweise so konfigurieren, dass der SOCKS-Proxy verwendet wird . Dies ist besonders nützlich, da Firefox eigene Proxy-Einstellungen haben kann und keine systemweiten Proxy-Einstellungen verwenden muss. Firefox sendet seinen Datenverkehr durch den SSH-Tunnel, während andere Anwendungen Ihre Internetverbindung normal nutzen.

Wählen Sie dazu in Firefox "Manuelle Proxy-Konfiguration", geben Sie "127.0.0.1" in das SOCKS-Host-Feld ein und geben Sie ein der dynamische Port in die "Port" Box. Lassen Sie die Felder HTTP-Proxy, SSL-Proxy und FTP-Proxy leer.

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


Was ist

Was ist "Systemless Root" auf Android, und warum ist es besser?

Root-Zugriff auf Android-Geräte ist kein neues Konzept, aber die Art, wie es gemacht wird, hat sich mit Android geändert 6.0 Marshmallow. Die neue "systemlose" Root-Methode kann auf den ersten Blick ein wenig verwirrend sein, also sind wir hier, um Ihnen einen Sinn zu geben, warum Sie es wollen und warum diese Methode der beste Weg ist, um ein Android-Smartphone voranzubringen .

(how-top)

So setzen Sie die Touchbar Ihres MacBook zurück, wenn sie hängen bleibt

So setzen Sie die Touchbar Ihres MacBook zurück, wenn sie hängen bleibt

Es ist selten, aber ab und zu kann die Touchbar Ihres MacBooks hängen bleiben und nur einen Tastensatz anzeigen und nicht reagieren berühren. Für mich war es die Meldung "Entsperren mit TouchID", lange nachdem ich mich angemeldet habe, aber es ist hypothetisch möglich, dass dies während der Ausführung einer Anwendung geschieht.

(how-top)