PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SSH Reverse Tunneling Problem



Gnome
08.01.06, 16:44
Hallo,

ich habe folgendes Problem.

ssh -R 4111:localhost:80 user@server

Das ich auf dem "server" per localhost auf port 4111 auf dem "reverse getunnelten" Rechner lande ist klar, jetzt habe ich aber folgendes Problem. Zugriffe auf den Port 4111 sind nur von localhost erlaubt. Ich möchte jetzt aber ein Setup bei dem Ich von einen anderen Rechner auf diesen Port zugreifen kann und weitergeleitet werde.

Was kennt ihr da für eine Möglichkeit, ich dachte zuerst an iptables, allerdings hab ich da nichts funktionierendes zusammenbekommen. Möglicherweise ist es auch einfach mit einer sshd option lösbar?

mfg

Andi

michaxyz
08.01.06, 17:15
Hallo Andi,

häh?

Mfg Michael

Gnome
08.01.06, 17:25
Hallo,

ok eventuell nicht ganz verständlich.. ein erneuter Versuch:

Nehmen wir an ich habe einen SSH Client irgendwo in einem fremden Netzwerk.
Weiters habe ich bei mir "Zuhause" einen SSH Server stehen.

Der SSH Client steht hinter einer Firewall und einem Proxy, somit bin ich nicht in der Lage von Zuhause auf ihn zuzugreifen, eh klar. Auch weil er keine Public IP hat.

So jetzt baue ich vom Client eine Reverse Verbindung per SSH (+proxytunnel) zu meinem Server nachhause auf und Tunnel gleichzeitig den Port z.B.: 4111 "reverse" auf den Client.

Gut soweit so gut, jetzt bin ich in der Lage von meinem Server "Zuhause" eine Verbindung in das andere Netzwerk aufzubauen (je nachdem welches Service ich weitergeleitet habe, nehmen wir mal an HTTP)

Jetzt kann ich aber Zuhause nur von localhost, also vom Server auf den Client zugreifen.

Und jetzt zur eigentlichen Frage, ich suche eine Lösung mit der ich von nehmen wir an einem Client im "Zuhause" Netzwerk auf einen bestimmten Port vom Server zugreifen und der dann weitertunnelt auf seine Reverse zu dem Client in einem anderen Netzwerk.

Also im Prinzip nichts anderes, wie incoming Traffic Port Y -- forward -- auf localhost Port X. Ich bin jetzt nicht unbedingt ein IPtables Meister und hab das auf die schnelle nicht zusammenbekommen. Eventuell ist es gar nicht damit lösbar oder einfacher mit irgendeiner SSH Option, die sowas wie ein Allow From ALL macht (er bindet den Port nur auf localhost:)

ich hoffe es war diesmal etwas verständlicher...

mfg und danke

Andi

3qualizer
08.01.06, 18:09
Spontan fällt der Auge auf die manpage:

-R [bind_address:]port:host:hostport
Specifies that the given port on the remote (server) host is to be forwarded to the given host
and port on the local side. This works by allocating a socket to listen to port on the remote
side, and whenever a connection is made to this port, the connection is forwarded over the secure
channel, and a connection is made to host port hostport from the local machine.

Port forwardings can also be specified in the configuration file. Privileged ports can be for-
warded only when logging in as root on the remote machine. IPv6 addresses can be specified by
enclosing the address in square braces or using an alternative syntax:
[bind_address/]host/port/hostport.

By default, the listening socket on the server will be bound to the loopback interface only.
This may be overriden by specifying a bind_address. An empty bind_address, or the address `*',
indicates that the remote socket should listen on all interfaces. Specifying a remote
bind_address will only succeed if the server's GatewayPorts option is enabled (see
sshd_config(5)).
das müsste es eigendlich sein (bind_address) ;)

Gnome
08.01.06, 18:20
Hallo, danke ja das ist genau das was ich Suche, ich sitz hier nur auf einem Mac: "[-R port:host:hostport]" mit Openssh 3.8, ich glaube ich werde mal updaten ;)

mfg und danke