wesser-h
Goto Top

SSH Tunnel/Proxy ganz konkret

Hallo Leute,
ich habe bereits lange gegoogelt und für meinen Anwendungsfall wirklich kein Beispiel gefunden, daher stelle ich Euch hier ganz konkret eine Frage, also bitte kein RTFM o.ä.

Ich habe hier im Netz eine Applikation, welche versucht auf dem Port xxxx eine Verbindung zu einem externen Host (A) aufzubauen. Mein Client (B) hat die Möglichkeit, via SSH einen externen Server (C) zu kontaktieren, auf welchem ich auch root-Rechte habe.

Ich dachte mir nun, dass ich einen SSH-Tunnel zu C aufbaue, indem B clientseitig auf dem gesperrten Port hört und dies an C weiterleitet. Dieser soll wiederum die Daten an A über den Port xxxx weiterleiten und somit als Proxy fungieren.

IMHO brauche ich zwei statische Verbindungen: Eine von B zu C und eine von C zu A. Da ich auf A keinerlei Administrations-/Einloggrechte habe, bin ich jetzt etwas ratlos, wie ich die Daten von C zu A und zurück bekomme.

Kann mir jemand hier weiterhelfen?

Danke schonmal!

Content-Key: 28497

Url: https://administrator.de/contentid/28497

Printed on: April 24, 2024 at 03:04 o'clock

Mitglied: 27119
27119 Mar 20, 2006 at 11:04:29 (UTC)
Goto Top
Member: Beagle
Beagle Mar 20, 2006 at 11:04:54 (UTC)
Goto Top
Ich muss jetzt erstmal nachfragen ..du möchtest eigentlich von B nach A kommen.
1. Ist auf A ist der Port xxxx (von aussen) gesperrt?
(Ich nehme mal an das A direkt erreichbar ist und nicht hinter C oder einem Router hängt.)
2. Und/oder kannst du von B keine Verbindung über Port xxxx nach aussen aufbauen?

Wenn der Port auf A nicht offen ist bzw. du keine SSH/VPN Verbindung (z.B. von C zu A) aufbauen kannst, dann hast du in deinem Szenario IMHO keine Chance.
Member: wesser-h
wesser-h Mar 20, 2006 at 11:21:06 (UTC)
Goto Top
Wenn der Port auf A nicht offen ist bzw. du
keine SSH/VPN Verbindung (z.B. von C zu A)
aufbauen kannst, dann hast du in deinem
Szenario IMHO keine Chance.

Also ich kann via SSH ohne weiteres das Portforwarding von B nach C aktivieren bzw. einen Tunnel initiieren. Von C nach A bekomme ich keinen SSH-Tunnel aufgebaut, da mir die Einlogrechte auf A fehlen. Das sollte aber nicht das Problem darstellen, da dier Port xxxx von A von dem Server C normal kontaktiert werden kann und ich hier keinen SSH-Tunnel benötige. Mein Problem besteht also darin, dass der Server C alle Anfragen, die ihm von dem Tunnel B<->C erreichen ganz normal an den Zielport xxxx von A weiterreicht bzw. die Antworten durch den SSH-Tunnel an den Client B forwarded.
Mitglied: 27119
27119 Mar 20, 2006 at 11:36:16 (UTC)
Goto Top
Member: Beagle
Beagle Mar 20, 2006 at 11:55:57 (UTC)
Goto Top
Hmm ...hab ichs immer noch nicht kappiert oder ist das die Lösung?

Ich hab das eben mal mit Putty getestet.
Ich (Host B) mach eine SSH Verbindung zu Host C auf
und sage als Tunnel
L40080 www.heise.de:80 (Host A)

Wenn ich jetzt ne Verbindung auf http://localhost:40080 mache bekomm ich die Heise Seite zu sehn. Ist es das oder versteh ich es nicht ?!? ^_^;
Allerdings ist jetzt nur B <-> C verschlüsselt.

Damit habe ich eine Verbindung von B -> C -> A
Member: wesser-h
wesser-h Mar 20, 2006 at 14:59:37 (UTC)
Goto Top
Mmh...ich teste das mal aus und gebe Bescheid. Ich glaube nämlich, dass ich in meinem Köpfchen einen Denkfehler hab...
Member: wesser-h
wesser-h Mar 22, 2006 at 12:56:25 (UTC)
Goto Top
@Beagle:

Hatte tatsächlich einen groben Denkfehler. Mit

"ssh -gL xxxx:Host_C:xxxx mein_Login@mein_Server"

funktioniert es natürlich einwandfrei.

Vielen Dank!