SSH Reverse Tunnel

PsychoMantis

Aktives Mitglied
Mitglied seit
18 Dez 2005
Beiträge
2,539
Punkte für Reaktionen
10
Punkte
38
Folgende Konstellation: ich sitze vor einem PC (hinter NAT & Firewall auf die ich keinen Zugriff habe) und möchte meine PC zu Hause über RDP fernsteuern.
Hierzu habe ich einfach eine SSH-Verbindung zu einer zu Hause hinter der Fritzbox stehenden Linux-Maschine hergestellt.
Die SSH-Verbindung mache ich über Putty oder Kitty. Dort kann man einen SSH-Tunnel herstellen und letztendlich kann ich dann z.B. den Port 65500 auf Port 3389 des zu Hause stehenden Rechners umleiten. Bei dem Rechner hinter dem ich sitze muss ich mich dann nur noch per RDP auf die IP 127.0.0.1 und Port 65000 verbinden. Das funktioniert.

Nun würde ich gern den umgekehrten Weg gehen. Also vom PC zu Hause den anderen Rechner fernsteuern. Dazu gibt es Revers-Tunnel. Kann mir da jemand die Funktionsweise erklären? Ich habe mich da natürlich eingelesen. Ich müsste die Verbindung auf die gleiche Weise aufbauen, aber weiter komme ich nicht. Vor allem begreife ich nicht wie genau ich dann auf die Linux-Maschine kommen soll, damit sie den RDP-Traffic auf den anderen Rechner umleitet.
 
Hi,

ich bin mir nicht ganz sicher ob ich dich richtig verstehe.

PC --> Linux-Maschine --> RDP-Host

unter linux müsste das dann so aussehen:
ssh -L65500:<RDP-Host-IP>:3389 <Linux-IP>

via localhost:65500 ist also der RDP-Host erreichbar.

Gegenrichtung:
RDP-Host --> Linux-Maschine --> PC

ssh vom PC:
ssh -R2222:127.0.0.1:<Port-der-Erreicht-werden-soll> <Linux-Maschine-IP>

Jetzt kannst du von der Linux-Maschine per Port 2222 auf den PC zugreifen.

EDIT:
Der Reverse-Weg ist natürlich nur halb fertig:
Vom RDP-Host müsstest du dann einen Tunnel zum Linux-Host aufbauen:
ssh -L2223:127.0.0.1:2222 <Linux-Maschine-IP>

Verbindung vom RDP-Host (localhost:2223) endet dann bei PC.

Beispiel:
Code:
user@localhost ~ $ ssh -R2222:127.0.0.1:22 remote-host
Password:
user@remote-host ~ $ ssh localhost -p2222
Password:
user@localhost ~ $

Der SSH-Reverse-Tunnel macht nichts anderes als einen Port/Socket in die Gegenrichtung zu Tunneln.
 
Zuletzt bearbeitet:
Nun habe ich das verstanden. Es funktioniert!
Auf dem Firmenrechner habe ich Kitty runtergeladen. Dort den SSH-Port auf 443 (22er ist ausgehend blockiert) eingestellt und SSH-Tunnel ("Remote") mit Port 65000 auf die Destination 127.0.0.1:3389 erstellt. Unter Connection dann noch beide Hacken in der Mitte gesetzt, damit die Verbindung immer wieder neu aufgebaut wird. Damit ich kitty nicht in der Taskleiste sehen muss habe ich es ins Tray geschickt.

Zu Hause habe ich in der Fritzbox eine Portweiterleitung eingestellt: TCP 443 auf die Linux-Maschine Port 22.
Nun muss ich zu Hause am Notebook Kitty ausführen und mich per SSH auf die Linux-Maschine zu Hause verbinden.
SSH-Tunnel brauche ich nur einen: Local, Source port 65000, Destination 127.0.0.1:65000.
Nun kann ich ganz normale Remotedesktopverbindung aufbauen mit dem Ziel 127.0.0.1:65000.
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.