VNC über SSH durch FBF tunneln

han-solo

Mitglied
Mitglied seit
28 Jul 2005
Beiträge
451
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich habe auf meiner Fritz!Box Fon WLAN ein paar Modifikationen eingespielt. Z.B. läuft SSH mittels dropbear.
Jetzt möchte ich von extern VNC über SSH auf einen Windows VNC-Server hinter ther FBF tunneln. Ist das irgendwie möglich?

Ich habe in der Fritzbox ein Forwarding zum Rechner 192.168.178.20 für den Port 5900 eingestellt. Funktioniert auch ohne SSH.

Dann habe ich in Putty unter "Connections > SSH > Tunnels" den Port 5900 und die IP 192.168.178.20:5900 eingetragen und mich per SSH mit der FBF verbunden und eingeloggt.

Versuche ich jetzt auf localhost:5900 zu connecten passiert nichts.
Habe ich etwas falsch gemacht? Brauche ich auf dem VNC-Server auch nochmal einen SSH-Server?

Cool wäre auch, wenn ich von extern mittels SSH auf den Port 80 der FBF connecten könnte.

Weis einer mehr darüber?

Gruß

Han-Solo
 
Kann so eigentlich nicht funktionieren, der SSH Server muß auf dem PC laufen.Was aber auch kein Problem ist.Nur die Fritz hat mit damit relativ wenig zu tun.Ein Tunnel wird ja immer zwischen 2 Punkten aufgebaut, und wenn die Fritz ein Endpunkt ist, dann ist der Tunnel dort zu Ende.Du willst aber nicht auf die Fritz, sondern auf den PC.Also muß der Tunnel zwischen dem VNC Client PC und dem VNC Server PC aufgebaut werden.

Aber: rein theoretisch gibt es die Möglichkeit, die VNC Verbindung,
die per SSH in der Fritz aufschlägt, einfach auf den VNC Server PC
(ungesichert) weiterzuleiten.Ich weiß aber nicht, ob das SSH, das
Du auf der Fritz installiert hast, dieses unterstützt.

Siehe hier:

http://www.uk.research.att.com/archive/vnc/sshvnc.html

Grüße

TWELVE
 
Juhuuu!

Ich hab es hinbekommen. Hatte ein lokales Problem und deswegen hatte es anfangs nicht geklappt.

Ich komme jetzt sogar über SSH getunnelt auf das Web-Interface Port 80 der Fritzbox drauf. Affengeil sag ich Euch! Und vor allem sicher!

Also hier die Anleitung:

Man installiere erstmal SSH (Anleitung von supafly2k).
Und stellt in /var/flash/ar7.cfg auch ein, daß der Port 22 von extern offen ist.
Danach nehme man putty, trägt seine dyndns Adresse der FritzBox ein, klickt darunter SSH (Port 22) an und wechselt auf der linken Siete auf Session > SSH > Tunnels.

Dort trägt man folgendes ein:

Source-Port: 80
Destination: <ip der fritzbox>:80

z.B. 192.168.178.1:80

und fügt den Eintrag mit Add hinzu.
Wer möchte kann auch gleich VNC dafür klar machen und:

Source-Port: 5800
Destination: <ip VNC server>:5800

hinzufügen.

Jetzt Speichern, auf OPEN klicken und sich an der Fritzbox einloggen.
Dann den Browser öffnen und http://localhost:80 bzw. http://localhost:5800 eintippen und Spaß dabei haben.

Gruß

Han-Solo
 
TWELVE schrieb:
Kann so eigentlich nicht funktionieren, der SSH Server muß auf dem PC laufen.Was aber auch kein Problem ist.Nur die Fritz hat mit damit relativ wenig zu tun.Ein Tunnel wird ja immer zwischen 2 Punkten aufgebaut, und wenn die Fritz ein Endpunkt ist, dann ist der Tunnel dort zu Ende.Du willst aber nicht auf die Fritz, sondern auf den PC.Also muß der Tunnel zwischen dem VNC Client PC und dem VNC Server PC aufgebaut werden.
Das funktioniert schon so. Es heißt ja auch nicht SSH Tunnel, sondern SSH Port Forwarding (siehe man ssh Option -L).

EDIT: Ja, muss ich einschränken: Bei Putty heißt es wieder Tunnel. Der Tunnel ist ja auch nur das von SSH Endpunkt zu SSH Endpunkt, d.h. das Forwarding benutzt natürlich diesen Tunnel. Bin mir nicht sicher, welchen Begriff ich besser finden soll.
 
Zuletzt bearbeitet:
Ja, hatte nicht daran gedacht, das der SSH Server auf dem WAN Interface hört und somit das Forwarding der Fritz greift.Da der VNC Server sowieso läuft, wäre es auch kein Problem, da noch einen SSH Server laufen zu lassen.Allerdings finde ich einen VPN Server im Router irgendwie sinniger...;-)

Grüße

TWELVE
 
Moment, der SSH Server lauscht an den internen LAN Ports. Die Fritzbox (dsld) macht das Forwarding von wan-ip:22 nach local-ip:22 und der SSH Server auf der Fritz macht das Forwarding von Fritzbox zum VNC Server. So sieht es meiner Meinung nach mit obiger Konfiguration aus.
 
Der SSH Server leitet also alle Ports weiter..?
 
Nein, er leitet nur die weiter, was ihm angewiesen wurden. Man muss dem SSH Server schon jeden Port mitteilen, den er forwarden soll. Beispielsweise sorgt das Kommando

Code:
ssh foo -L 1080:bar:80

auf Clientseite dafür, dass eine SSH Verbindung zu dem SSH Server foo aufgebaut werden soll, welcher ein Forwarding zu bar:80 einrichtet. Packete an localhost:1080 auf Clientseite werden dann verschlüsselt zu foo gesendet und von dort zu bar:80. bar gegenüber tritt foo als Client auf. Das selbe geht auch anders herum mit -R.
 
Nein, er leitet nur die weiter, was ihm angewiesen wurden. Man muss dem SSH Server schon jeden Port mitteilen, den er forwarden soll. Beispielsweise sorgt das Kommando

ssh foo -L 1080:bar:80

Die Anleitung ist doch bekannt, siehe auch meinen Link weiter oben....:)

Han-Solo erwähnte mit keinem Wort, das er bestimmte Ports per SSH weiterleitet, nur das er ein Forwarding für Port 22 hat und das ein SSH Server läuft.

Vielleicht kann Han-Solo ja mal selber was dazu sagen.


Grüße

TWELVE
 
han-solo schrieb:
Danach nehme man putty, trägt seine dyndns Adresse der FritzBox ein, klickt darunter SSH (Port 22) an und wechselt auf der linken Siete auf Session > SSH > Tunnels.

Dort trägt man folgendes ein:

Source-Port: 80
Destination: <ip der fritzbox>:80

z.B. 192.168.178.1:80

und fügt den Eintrag mit Add hinzu.
Wer möchte kann auch gleich VNC dafür klar machen und:

Source-Port: 5800
Destination: <ip VNC server>:5800

hinzufügen.

Offensichtlich benutzt han-solo SSH Port Forwarding ;)
 
Ähh, Twelve, lies Dir doch das Posting von Han-Solo noch mal durch. Ich quote hier mal die entsprechenden Stellen:
Han-Solo schrieb:
Danach nehme man putty, trägt seine dyndns Adresse der FritzBox ein, klickt darunter SSH (Port 22) an und wechselt auf der linken Siete auf Session > SSH > Tunnels.

Dort trägt man folgendes ein:

Source-Port: 80
Destination: <ip der fritzbox>:80

z.B. 192.168.178.1:80

und fügt den Eintrag mit Add hinzu.
Wer möchte kann auch gleich VNC dafür klar machen und:

Source-Port: 5800
Destination: <ip VNC server>:5800

hinzufügen.
PuTTY ist einer der bekanntesten SSH-Clients unter Windows (und kostenlos, so ganz nebenbei). Der kann auch SSH-Tunneling - die Einrichtung beschreibt Han-Solo absolut korrekt.

Was er vielleicht nicht explizit gesagt hat: das Einrichten von PuTTY erfolgt auf dem entfernten Client.

Das Forwarding für Port 22 wird in der FBF eingestellt, das Tunneling von bestimmten Ports im SSH-Client (hier PuTTY).
 
PuTTY ist einer der bekanntesten SSH-Clients unter Windows

Schon klar, mußt mich nicht gleich wie einen Idioten behandeln, weil ich eine Frage zum SSH hatte.

Das Forwarding für Port 22 wird in der FBF eingestellt, das Tunneling von bestimmten Ports im SSH-Client (hier PuTTY).

Zusammen mit meiner Frage

Der SSH Server leitet also alle Ports weiter..?

ergibt das eine Antwort.
Dachte, man muß dem SSH Server sagen, wohin er was weiterleiten soll, stattdessen sagt man es dem SSH Client.

Übrigens: Laut Danisahne gibt es keinen SSH Tunnel.Das sollte putty zu denken geben.

Grüße

TWELVE
 
@Twelve:
Wollte Dich nicht beleidigen, sorry.
Danisahne hat da glaub ich was durcheinander geworfen. Port forwarding wird von Routern gemacht, indem die IP-Pakete für bestimmte Adressen und/oder Ports "durch die Mangel drehen" und dabei Absender- und/oder Ziel-IP und/oder -Port verändern. Das ganze findet IIRC auf ISO-Ebene 3 statt. Auch bekannt als statisches SNAT (Source Network Address Transformation) und DNAT (Destination Network Address Transformation).
Tunnel, so wie SSH sie benutzt, laufen auf einer höheren ISO-Ebene, ich glaub auf 5, und nehmen alle Pakete, die auf den von ihnen abgehorchten Ports ankommen, entgegen und verschicken sie OHNE sie zu verändern durch eine Datenverbindung, hier eben eine TCP-Verbindung auf Port 22.

Mit diesen Tunneln, ob nun SSH oder andere, kannst Du nahezu alle Firewalls aushebeln, solange Du einen Server irgendwo im Netz hast. Da braucht nur ein SSH auf Port 80 (normalerweise HTTP) zu horchen. Dann baust Du zu dem ein paar Tunnel auf und schon kannst Du VoIP nutzen, obwohl die Firewall das eigentlich verbietet. Mit DNAT und SNAT würdest Du nicht weit kommen.
Die Bezeichnung von PuTTY ist also auch korrekt.
 
Hallo Leute,

war ein paar Tage abwesend.

Also das Forwarding in der FritzBox wird nur auf den SSH Port 22 und die IP-Adresse der FritzBox eingestellt. Funzt aber nicht über das WebInterface, weil Freigaben für die Box selbst nicht zulässig sind.
Also muss dies in der /var/flash/ar7.cfg manuell eingetragen werden.

Auf Port 80 oder 5800 muss kein Forwarding zu eurem Rechner eingestellt werden. Im Gegenteil, Ihr wollt doch nicht die Türen für Hackerattacken öffnen, oder?

Wie schon von Ghostwalker erwähnt, wird über den SSH-Server in der FritzBox der getunnelte Port weitergereicht und funzt nur nach erfolgreicher Authentifizierung in der Console.

Lokal von entfernter Stelle braucht man natürlich Putty oder einen anderen SSH-Client und natürlich einen Browser. Mehr nicht....

Gruß

Han
 
han-solo schrieb:
Source-Port: 5800
Destination: <ip VNC server>:5800

hinzufügen.

Jetzt Speichern, auf OPEN klicken und sich an der Fritzbox einloggen.
Dann den Browser öffnen und http://localhost:80 bzw. http://localhost:5800 eintippen und Spaß dabei haben.

Gruß

Han-Solo

Kann ich auf diesem wege z.B. auch eine externe Webpage tunneln
z. B. nach dem Muster?

Source-Port: 81
Destination: web.de:80

Weil ich bekomme es net hin
 
wie wäre es denn hiermit:

Source-Port: 8181
Destination: www-proxy.t-online.de:80 (oder einen anderen Proxy)

Und im Browser den Proxy auf 127.0.0.1:8181

Damit dürftest du auf jede geblockte Website kommen.

sweetie-pie
 
Das Ganze auch ohne ssh auf der Fritz!Box

Hallo!

Ich habe mal ein HowTo geschrieben für alle die, die VNC durch SSH tunneln wollen, und ihre Fritz!Box nicht modifiziert haben:

http://www.rpg-domain.de/VNC

MfG

René
 
Danke für das HowTo!

Danke für das HowTo! :) Mach weiter so. Bin gespannt auf das nächste HowTo.
 
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.