SSH Port Forwarding
Hallo,
bin gerade am verstehen wie Protokolle durch SSH getunnelt werden können.
Dabei liest man immer wieder von dem Begriff "Port Forwarding".
Was ist darunter im Bezug auf SSH-Tunneling zu verstehen?
Grüße
bin gerade am verstehen wie Protokolle durch SSH getunnelt werden können.
Dabei liest man immer wieder von dem Begriff "Port Forwarding".
Was ist darunter im Bezug auf SSH-Tunneling zu verstehen?
Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 211865
Url: https://administrator.de/contentid/211865
Ausgedruckt am: 22.11.2024 um 16:11 Uhr
17 Kommentare
Neuester Kommentar
Hallo,
sehr schön in deutsch Portweiterleitung und mit einigen Beispielen
nebst Diagrammen und auch Routerscreenshots, quasi alles was das Herz begehrt im Bezug auf Portforward.com natürlich auch auf deutsch
Gruß
Dobby
sehr schön in deutsch Portweiterleitung und mit einigen Beispielen
nebst Diagrammen und auch Routerscreenshots, quasi alles was das Herz begehrt im Bezug auf Portforward.com natürlich auch auf deutsch
Gruß
Dobby
Hallo Teret4242,
einfaches Beispiel:
Du möchtest auf der Remote-Seite den Port 80 des Servers erreichen können. Dazu richtest du in dem Tunnel eine Portweiterleitung z.B. vom lokalen Port 10000 auf den Port 80 des Servers ein.
Um den Server nun erreichen zu können gibst du dann in deinem Browser http://127.0.0.1:10000 ein. Dies wäre ein Client-to-Server Forwarding; das ganze geht natürlich auch in die andere Richtung dann wäre es ein Server-to-Client Forwarding.
Hoffe das war soweit verständlich
Grüße Uwe
einfaches Beispiel:
Du möchtest auf der Remote-Seite den Port 80 des Servers erreichen können. Dazu richtest du in dem Tunnel eine Portweiterleitung z.B. vom lokalen Port 10000 auf den Port 80 des Servers ein.
Um den Server nun erreichen zu können gibst du dann in deinem Browser http://127.0.0.1:10000 ein. Dies wäre ein Client-to-Server Forwarding; das ganze geht natürlich auch in die andere Richtung dann wäre es ein Server-to-Client Forwarding.
Hoffe das war soweit verständlich
Grüße Uwe
@ teret4242
Sorry, wenn Du gleich die Suchfunktion im Internet benutzt hättest, wäre Dir und uns ein Thread hier und einer im Debianforum erspart geblieben.
Das soll nicht arrogant rüberkommen, was willst Du aber als Antworten erhalten, als ein oder zwei Verlinkungen auf entsprechend ausführliche Erläuterungen, das Thema betreffend.
Gruß orcape
Sorry, wenn Du gleich die Suchfunktion im Internet benutzt hättest, wäre Dir und uns ein Thread hier und einer im Debianforum erspart geblieben.
Das soll nicht arrogant rüberkommen, was willst Du aber als Antworten erhalten, als ein oder zwei Verlinkungen auf entsprechend ausführliche Erläuterungen, das Thema betreffend.
Gruß orcape
Also der Tunnelaufbau ist ja klar ... Rechner B verbindet sich mit Rechner A via SSH
Das Forwarding der Ports wird schon beim Verbindungungsaufbau mit übergeben.
Da du ja mit dem Rechner A nun via SSH verbunden bist kannst du ohne irgendein Forwarding mit diesem ja nur über den SSH-Port(22) kommunizieren. Um nun andere Dienste auf dem Rechner A zu erreichen musst du einen lokalen Port an den entfernten Rechner weiterleiten (durch den SSH-Tunnel schicken).
Bei einem Proxy der auf Rechner A auf Port 8080 läuft sähe das z.B. für Putty so aus
Auf Rechner B trägst du dann localhost:10000 ein um deinen Proxy zu erreichen. Der lokale Port ist frei wählbar solange dieser nicht schon belegt ist.
An einem Beispiel mit dem SSH-Client Putty sollte das klarer werden:
http://www.cs.uu.nl/technical/services/ssh/putty/puttyfw.html
Grüße Uwe
gelöste Beitrage bitte auch als solche markieren.Danke
Das Forwarding der Ports wird schon beim Verbindungungsaufbau mit übergeben.
Da du ja mit dem Rechner A nun via SSH verbunden bist kannst du ohne irgendein Forwarding mit diesem ja nur über den SSH-Port(22) kommunizieren. Um nun andere Dienste auf dem Rechner A zu erreichen musst du einen lokalen Port an den entfernten Rechner weiterleiten (durch den SSH-Tunnel schicken).
Bei einem Proxy der auf Rechner A auf Port 8080 läuft sähe das z.B. für Putty so aus
L10000 RemoteHost:8080
An einem Beispiel mit dem SSH-Client Putty sollte das klarer werden:
http://www.cs.uu.nl/technical/services/ssh/putty/puttyfw.html
Grüße Uwe
gelöste Beitrage bitte auch als solche markieren.Danke
.....als ein oder zwei Verlinkungen auf entsprechend ausführliche Erläuterungen, das Thema betreffend.
Und wenn dann noch Fragen offen sind, werde diese meist auch viel präziser gestellt oder eben direkt zu einem PunktSSH Verbindungen betreffend, zumindest meine Meinung.
Und zwar, wenn ich "Port Forwarding" lese, dann denke ich automatisch an ein NAT-Garät das Anfragen entgegennimmt und dann an den entsprechenden Serverdienst weiterleitet (IP-Adresse + Port).
Das Thema ist so umpfangreich das es eben wirklich immer besser ist wenn man direkt nach etwas bestimmten fragt.Wenn Du einen weiteren Router in Deinem LAN hast, also einen zweiten Router der nicht mit SPI und NAT arbeitet
weil zum Beispiel Dein LAN Switch nicht Layer3 ist oder der Router ein Produktivnetz von einem Test- oder Labornetz
trennt bzw. verbindet, Du als Admin aber Deine Switche und Geräte auch warten und Administrieren musst und das soll
halt sicher ablaufen, (der Switch bietet keine VLAN Option an) dann ist SSH auch ein probates Mittel und man kann auch dort mitunter nur mit Portweiterleitungen arbeiten, ohne das NAT vorhanden sein muss.
Wie kann man das nun auf SSH-Tunneling übertragen?
SSH ist eine, wenn auch ältere Variante, des Bildens eines VPN, nicht mehr und nicht weniger.Angenommen ich möchte einen HTTP-Proxy der auf einem entfernten Rechner A läuft, auf meinem lokalen Rechner B benützen, wie würde dann der Ablauf davon aussehen?
Wenn Du uns sagst ob der Rechner hinter einem Router oder einer Firewall steht oder direkt im Internet steht wäre das schon schick.Zuerst baut wahrscheinlich Rechner B eine SSH-Verbindung zu Rechner A auf...
Wenn da nichts vor "steht" ja, wenn ein Router oder eine Firewall davorstehen, kann man sich ja auch einmal versuchen an dem Router oder der Firewall via SSH anzumelden (VPN) und hat dann (un)eingeschränkten Zugriff auf alles was dahinter im Netzwerk vorhanden ist....und ab dem Punkt ist mir nicht ganz klar wie das dann mit der Portgeschichte abläuft?
Dazwischen (wenn "etwas" vor dem Rechner B steht) oder gar nicht (wenn der Rechner direkt im Internet steht)Gruß
Dobby
Euer Proxy muss das SSH-Protokoll (bzw. Port 22) zulassen, wenn dieser das nicht tut wird dein Vorhaben nicht funktionieren.
Was du aber als Trick probieren könntest, wäre auf dem Router in Netzwerk B den externen Port 80 oder 443 auf den SSH-Port des Servers umzuleiten. Manche Proxy-Server überprüfen nur den Port und machen kein DeepPacketInspection. Port 80 und 443 müssen Proxyserver aber zulassen damit du Internetseiten aufrufen kannst. Du baust dann halt mit dem SSH-Client eine Verbindung zu Server B mit ServerB:80 auf und täuschst damit dem Proxy eine HTTP-Verbindung vor.
Was du aber als Trick probieren könntest, wäre auf dem Router in Netzwerk B den externen Port 80 oder 443 auf den SSH-Port des Servers umzuleiten. Manche Proxy-Server überprüfen nur den Port und machen kein DeepPacketInspection. Port 80 und 443 müssen Proxyserver aber zulassen damit du Internetseiten aufrufen kannst. Du baust dann halt mit dem SSH-Client eine Verbindung zu Server B mit ServerB:80 auf und täuschst damit dem Proxy eine HTTP-Verbindung vor.
Zitat von @teret4242:
Jetzt würde ich aber gerne noch von Rechner B auf das Internet über den SSH-Tunnel zugreifen.
Jetzt würde ich aber gerne noch von Rechner B auf das Internet über den SSH-Tunnel zugreifen.
Ich glaube du verwechselst hier A und B
auf Rechner B läuft doch schon der Proxy wie du weiter oben gesagt hast, da musst du doch nicht den Tunnel nutzen.
nochmal zum Verständnis : der SSH-Server steht in NETZ B und du willst von NETZ A aus über den Tunnel die Internetverbindung von NETZ B benutzen.
weiter oben habe ich schon erläutert wie die Portweiterleitung im SSH-Client einzurichten ist, weiß nicht mehr was du daran nicht verstehst ...
OK dann ist ja alles gesagt ...
ich verweise nochmal auf: http://www.cs.uu.nl/technical/services/ssh/putty/puttyfw.html
auf Rechner B z.B. lokalen Port 8000 auf den Proxy-Port des Servers weiterleiten und auf Rechner B im Browser oder in den IE-Einstellungen den Proxy localhost:8000 eintragen. Dann surfst du über den Tunnel bzw. Proxy von Rechner A.
Was gibt es daran nicht zu verstehen.
ich verweise nochmal auf: http://www.cs.uu.nl/technical/services/ssh/putty/puttyfw.html
auf Rechner B z.B. lokalen Port 8000 auf den Proxy-Port des Servers weiterleiten und auf Rechner B im Browser oder in den IE-Einstellungen den Proxy localhost:8000 eintragen. Dann surfst du über den Tunnel bzw. Proxy von Rechner A.
Was gibt es daran nicht zu verstehen.
Ach so, schau dir mal den SSH-Client Tunnelier an der bietet einen integrierten Proxy den du dafür nutzen kannst. Anleitung dazu hier: http://www.bitvise.com/ssh-web-browsing
Funktioniert wunderbar ...schon mal aus einem Uni-Netzwerk erfolgreich getestet.
Funktioniert wunderbar ...schon mal aus einem Uni-Netzwerk erfolgreich getestet.
Ja.
Der Grund:
Alle HTTP-Daten gehen ohne Angabe eines Proxies immer über das Gateway des lokalen Netzes.
Der Grund:
Alle HTTP-Daten gehen ohne Angabe eines Proxies immer über das Gateway des lokalen Netzes.