reverse ssh tunnel

cwarlich

Neuer User
Mitglied seit
10 Nov 2007
Beiträge
115
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich habe eine 7240, die per Mobilfunk ans Internet angebunden ist. Da der Provider (Eplus) die Anbindung über NAT macht, bekomme ich nur private IPs zugewiesen und kann deshalb nicht ohne weiteres von aussen an die 7240 ran.

Aber es gibt ja die Secure Shell, mit der man einen Tunnel von der 7240 auf einen öffentlich erreichbaren Server legen kann.

Der einzige mir für diesen Zweck zur Verfügng stehende Server mit öffentlich erreichbarer IP ist meine private 7390, die wiederum hinter einer 7170 (von meinem Nachbarn) über dessen DSL am Internet hängt.

Da ich in der 7170 vom Nachbarn ein Portforwarding für Port 22 auf meine 7390 eingerichtet habe und für die 7390 in der ar7.cfg eine forwardrule für ssh eingetragen habe:

Code:
forwardrules = "tcp 0.0.0.0:22 0.0.0.0:22 0 # Secure Shell";

ist die 7390 von aussen über ssh erreichbar und sollte sich somit auch als Tunnel-Endpunkt verwenden lassen. Der Tunnel lässt sich auch ohne weiteres von der 7240 zu meiner 7390 aufbauen:

Code:
<7240> # ssh -R 22222:localhost:22 root@<öffentliche IP meines Nachbarn>

Nach Eingabe dieser Zeile auf der 7240 bin ich wie erwartet auf der 7390 eingeloggt; der Tunnel steht also.

Aber wenn ich mich jetzt von der 7390 über den Tunnel auf der 7240 einloggen will, bricht dieser zusammen:

Code:
<7390> # ssh root@localhost -p 22222
ssh: Connection to root@localhost:22222 exited: Remote closed the connection

Die auf den Verbindungsversuch folgende Fehlermeldung kann ich dann nur noch bestätigen: Der ssh Tunnel auf der 7240 hat sich beendet.

Kann mir jemand sagen, ob, und wenn ja, was ich falsch mache? Oder gibt es im Web Dienste, die sich für so einen reverse ssh tunnel Endpunkt benutzen lassen? Oder gibt es eine andere Technik, mit der ich von aussen an die hinter dem Mobilfunk-NAT stehende 7240 komme?

Ich bin dankbar für jede Hilfe,

Gruß,

Chris
 
Ist das denn nicht zu viel, wenn du ssh-over-ssh machst? Hast du probiert, ob etwas anderes geht, wie z.B. WebIF von FREETZ oder telnet?

Wenn du etwas mehr machen willst, als nur "mal eben" per ssh auf deine Box kommen (und davon gehe ich aus), dann wäre es sinnvoll OpenVPN zu verwenden. Dann würdest du deine Box an dem E+ als Klient konfigurieren und die 7390 als Server. Die Weiterleitung beim Nachbar musst du dann natürlich auf einem anderen Port erledigen.
Bei dieser Art der Tunneling hast du TCP-over-UDP , was schon per see besser als SSH-Tunnels klappen sollte. Außerdem wird OpenVPN-Tunnel automatisch neu aufgebaut, wenn die Verbindung unterbrochen ist. Im Falle eines SSH-Tunnels musst du selbst dafür sorgen.
Übrigens, es könnte auch sein, dass dein SSH-Tunnel wegen deiner schwachen E+-Verbindung "stirbt". Du kriegst es aber nicht sofort mit, sondern erst später, wenn du die Rückverbindung aufbaust. Wäre auch denkbar.

MfG
 
Ist das denn nicht zu viel, wenn du ssh-over-ssh machst? Hast du probiert, ob etwas anderes geht, wie z.B. WebIF von FREETZ oder telnet?

Danke für die Anregung, ich hab's gerade mit telnet probiert. Leider ist das Verhalten gleich.

Ich denke, das Problem liegt am doppelten Port-Forwarding (7170->7390 und forwardrule der 7390: externe IP der 7390 an ssh), denn wenn ich das ganze im internen Netz mit Linux-PCs und lokalen IPs durchspiele geht es ohne Probleme. Ich verstehe nur nicht, warum es so nicht geht!?

Wenn du etwas mehr machen willst, als nur "mal eben" per ssh auf deine Box kommen (und davon gehe ich aus), dann wäre es sinnvoll OpenVPN zu verwenden.

Eigentlich reicht mir nur ein ssh- oder telnet-Zugang. OpenVPN wäre da schon recht großes Geschütz. Aber als letzten Ausweg werde ich es in Betracht ziehen ...

Außerdem wird OpenVPN-Tunnel automatisch neu aufgebaut, wenn die Verbindung unterbrochen ist. Im Falle eines SSH-Tunnels musst du selbst dafür sorgen.

... und wenigsens das wäre ein netter Zusatznutzen.

Übrigens, es könnte auch sein, dass dein SSH-Tunnel wegen deiner schwachen E+-Verbindung "stirbt". Du kriegst es aber nicht sofort mit, sondern erst später, wenn du die Rückverbindung aufbaust. Wäre auch denkbar.

Das glaube ich nicht, denn der selbe Effekt tritt auf, wenn ich den Tunnel aus meinem über DSL angebundenen Netz auf meine öffentliche IP lege.
 
Ich habe dasselbe Problem in einer etwas anderen Konstellation: ich verbinde mich vom Android-Handy per ConnectBot zur Fritzbox und richte dabei einen Tunnel von Remote port 8480 to localhost:8080 ein (den Webserver auf Port 8080 auf dem Handy möchte ich erreichen). Dropbear auf der Fritzbox lauscht auch auf Port 8480, aber sobald ich auf der Fritzbox "telnet localhost 8480" mache, bricht die ssh-Verbindung ab.

@cwarlich: hast Du das auf dem Linux-PC mit dropbear ausprobiert oder hast Du den normalen OpenSSH-Server benutzt?
 
Hallo elmicha,

ich hab's auf der PC-Seite nur mit OpenSSH probiert.

Ich kann Dir aber uneingeschränkt die Empfehlung von sf3978 (@sf3978: vielen Dank für den Tip!) weitergeben: Mit vtun klappt alles wie geschmiert, es ist (fast) genauso leicht zu konfigurieren, und bietet darüber hinaus erheblich mehr.

Gruß,

Chris
 
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.