Lokale Anschlussweiterleitung

Mit der lokalen Anschlussweiterleitung können Sie Daten eines Anwendungsclients, der auf demselben Computer wie der Secure Shell-Client ausgeführt wird, sicher weiterleiten. Bei der Konfiguration müssen Sie neben einem lokalen Weiterleitungsanschluss auch einen Zielhost und einen Zielanschluss für den Datenempfang festlegen.

Die lokale Anschlussweiterleitung funktioniert folgendermaßen.

  1. Sobald die Secure Shell-Verbindung hergestellt ist, öffnet der Secure Shell-Client ein socket Kombination aus einem Hostnamen (IP-Adresse oder DNS-Name) und einer Anschlussnummer. Dabei wird ein eindeutiger Identifikator angelegt, den die Clientanwendung als Kommunikationsendpunkt verwendet. für den Empfang auf dem lokalen Computer (auf dem der Secure Shell-Client ausgeführt wird) und nutzt dazu den dafür festgelegten lokalen Anschluss. In den meisten Fällen steht dieses Socket nur Anwendungen auf dem Secure Shell-Clienthost zur Verfügung.

    Die Einstellung für die Anschlussweiterleitung über Gateways legt fest, ob lokal weitergeleitete Anschlüsse für entfernte Anwendungen verfügbar sind. Diese Option ist in den Standardeinstellungen deaktiviert, und der Client verwendet die LOOPBACK-Adresse ("localhost" oder 127.0.0.1), wenn er ein Socket für die lokale Anschlussweiterleitung öffnet. Dadurch wird verhindert, dass Anwendungen, die auf anderen Computern ausgeführt werden, eine Verbindung zu dem weitergeleiteten Anschluss herstellen. Wenn Sie die Anschlussweiterleitung über Gateways aktivieren, kann ein entfernter Anwendungsclient ein Socket mit der Ethernet-Adresse des Secure Shell-Clients (z. B. eine IP-Adresse, eine URL-Adresse oder ein DNS-Name) öffnen. Beispielsweise kann ein Secure Shell-Client, der auf acme.com ausgeführt wird, so konfiguriert werden, dass er den Anschluss 8088 weiterleitet. Wenn Sie die Anschlussweiterleitung über Gateways deaktivieren, ist der weitergeleitete Socket localhost:8088. Andernfalls ist acme:8088 der weitergeleitete Socket.

    VORSICHT:Das Aktivieren der Anschlussweiterleitung über Gateways beeinträchtigt die Sicherheit von Clienthost, Netzwerk und Verbindung, da Remoteanwendungen den weitergeleiteten Anschluss auf Ihrem System ohne Authentifizierung nutzen können.

  2. Es wird ein Anwendungsclient für die Verbindung zum weitergeleiteten Anschluss konfiguriert (anstatt direkt zum Anwendungsserverhost und -anschluss). Wenn der Client die Verbindung hergestellt hat, werden alle Daten an den empfangenden Anschluss gesendet und anschließend an den Secure Shell-Client weitergeleitet.

  3. Der Secure Shell-Client verschlüsselt die Daten und sendet sie über den sicheren Secure Shell-Kanal an den Secure Shell-Server.

  4. Der Secure Shell-Server empfängt die Daten, entschlüsselt diese und leitet sie an den vom Anwendungsserver verwendeten Zielhost und -anschluss weiter.

    HINWEIS:Wenn sich der endgültige Zielhost und -anschluss nicht auf dem Secure Shell-Serverhost befinden, erfolgt die Übertragung der Daten zwischen dem Secure Shell-Host und dem Host des Anwendungsservers unverschlüsselt.

  5. Die Antwortdaten werden vom Anwendungsserver an den Secure Shell-Server weitergeleitet, der sie verschlüsselt und über den sicheren SSH-Tunnel an den Secure Shell-Client sendet. Der Secure Shell-Client entschlüsselt die Daten und leitet sie an den ursprünglichen Anwendungsclient weiter.

Die allgemeine Befehlszeilensyntax für die lokale Anschlussweiterleitung lautet wie folgt:

ssh -L listening_port:app_host:hostport user@sshserver

Die folgenden Diagramme dienen als zwei Anwendungsbeispiele.

Bei der oben gezeigten Konfiguration werden sowohl der Anwendungsclient als auch der Secure Shell-Client auf HostA ausgeführt. Der Secure Shell-Server und der Anwendungsserver werden auf HostB ausgeführt. Für alle Daten, die an den Anschluss 2222 auf HostA gesendet werden, erfolgt die Weiterleitung an den Anschluss 222 auf HostB. Bei dieser Anordnung werden alle übertragenen Daten sicher verschlüsselt. Diese Konfiguration erfolgt über den folgenden Befehl (localhost entspricht dabei der LOOPBACK-Adresse auf HostB):

ssh -L 2222:localhost:222 user@HostB

In dem folgenden Diagramm ist die lokale Anschlussweiterleitung zu einem dritten Host dargestellt. Bei dieser Konfiguration wird der Anwendungsserver auf einem anderen Host ausgeführt als der Secure Shell-Server. Alle an den Anschluss 2222 auf HostA gesendeten Daten werden an den Anschluss 222 auf HostC weitergeleitet.

Diese Konfiguration erfolgt über den folgenden Befehl:

ssh -L 2222:HostC:222 user@HostB

HINWEIS:Daten, die zwischen HostB und HostC ausgetauscht werden, bleiben unverschlüsselt.