Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

SSH Port Forwarding

Frage Netzwerke Router & Routing

Mitglied: teret4242

teret4242 (Level 1) - Jetzt verbinden

18.07.2013 um 17:59 Uhr, 4837 Aufrufe, 17 Kommentare, 1 Danke

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
Mitglied: Dobby
18.07.2013, aktualisiert um 18:45 Uhr
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
Bitte warten ..
Mitglied: colinardo
18.07.2013 um 19:39 Uhr
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
Bitte warten ..
Mitglied: orcape
18.07.2013 um 19:45 Uhr
@ 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
Bitte warten ..
Mitglied: teret4242
19.07.2013, aktualisiert um 10:02 Uhr
Zitat von colinardo:
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.

Hallo Uwe,

so ungefähr ist das für mich verständlich, allerdings einfach noch etwas schwammig.
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).

Wie kann man das nun auf SSH-Tunneling übertragen?

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?

Zuerst baut wahrscheinlich Rechner B eine SSH-Verbindung zu Rechner A auf...
...und ab dem Punkt ist mir nicht ganz klar wie das dann mit der Portgeschichte abläuft?


Grüße
Bitte warten ..
Mitglied: teret4242
19.07.2013, aktualisiert um 10:14 Uhr
Zitat von 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.

Hallo orcape,

kein Problem, einerseits hab ich dafür vollstes Verständnis, dass nicht wegen jeder "googlebaren" Frage ein Therad in einem Forum eröffnet werden sollte, andererseit benütze ich aber auch generell Suchmaschinen bevor ich ein Thread in einem Forum eröffne. Da ich allerdings keine passende bzw. unausreichende Antwort auf auf meine Frage finden konnte, hielt ich es persönlich für richtig diesen Thread für mich zu erstellen


Grüße
Bitte warten ..
Mitglied: colinardo
19.07.2013 um 10:21 Uhr
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
L10000     RemoteHost:8080
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
Bitte warten ..
Mitglied: Dobby
19.07.2013 um 10:27 Uhr
.....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 Punkt
SSH 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
Bitte warten ..
Mitglied: teret4242
19.07.2013, aktualisiert um 13:38 Uhr
@ All:

Ich glaube, ich beschreib das ganze jetzt mal anhand von einem konkreten Beispiel, dann ist es wahrscheinlich besser zu verstehen


Netzwerk 1:
Es gibt ein Netzwerk 1, in dem ein Rechner A steht, der einen SSH-Server auf dem Port 22 zur Verfügung stellt.
Da sich Rechner A hinter einem NAT-Router befindet, werden Zugriffe von außen auf Port 22 via Portweiterleitung vom Router an Rechner A weitergeleitet damit der SSH-Server auch von außen zur Verfügung steht.

Netzwerk 2:
Des Weiteren gibt es ein Netzwerk 2, in dem ein Rechner B steht, der sich hinter einem Proxy befindet. Nun würde ich gerne mit Rechner B eine Verbindung zum SSH-Server auf Rechner A aufbauen und den ganzen HTTP-Verkehr von Rechner B durch den SSH-Tunnel leiten und dann über Rechner A die Verbindung zum Internet aufbauen lassen.

Erstmal soweit, wie ist das zu realisieren?
Reicht dazu auf Rechner A der SSH-Server aus, oder muss dafür zusätzlich noch ein anderer Serverdienst zur Verfügung stehen über den man dann die HTTP-Verbindung zum Internet von Rechner B aus aufbauen kann?


Grüße
Bitte warten ..
Mitglied: colinardo
19.07.2013, aktualisiert um 13:42 Uhr
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.
Bitte warten ..
Mitglied: teret4242
19.07.2013, aktualisiert um 14:06 Uhr
Zitat von colinardo:
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.

Das ist kein Problem, das passt alles soweit. Die SSH-Verbindung von Rechner B zum SSH-Server auf Rechner A ist auch schon erfolgreich aufgebaut.

Jetzt würde ich aber gerne noch von Rechner B auf das Internet über den SSH-Tunnel zugreifen.

Und ab da kommt ja eben dann wieder die Portgeschichte ins Spiel, die mir noch nicht so richtig klar ist...
Zumal ich mir auch nicht sicher bin, ob auf Rechner A der SSH-Server ausreicht, der quasi den Internetzugangspunkt für Rechner B darstellt???
Bitte warten ..
Mitglied: colinardo
19.07.2013, aktualisiert um 14:12 Uhr
Zitat von teret4242:
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 ...
Bitte warten ..
Mitglied: teret4242
19.07.2013, aktualisiert um 14:20 Uhr
Zitat von colinardo:
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.


Nein, Rechner B steht hinter einem Proxy. Auf Rechner A befindet sich der SSH-Server über den die Verbindung zum Internet aufgebaut werden soll.

Das heißt im Klartext:

Rechner B baut eine SSH-Verbindung zum SSH-Server der sich auf Rechner A befindet auf.
Rechner B soll seinen kompletten HTTP-Traffic durch den SSH-Tunnel zu Rechner A tunnenln
und dann anschließend die Verbindung zum Internet über Rechner A aufbauen. Verständlich ?
Bitte warten ..
Mitglied: colinardo
19.07.2013 um 14:26 Uhr
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.
Bitte warten ..
Mitglied: teret4242
19.07.2013 um 14:34 Uhr
Zitat von colinardo:
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.

Das auf Rechner A der den Internetzugangspunkt darstellen soll kein Proxy läuft, sondern nur ein SSH-Server?!
Und die Frage ist, ob das ausreicht...
Bitte warten ..
Mitglied: colinardo
19.07.2013 um 14:40 Uhr
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.
Bitte warten ..
Mitglied: teret4242
19.07.2013 um 14:58 Uhr
Also ist dafür ein Proxy auf Rechner A erforderlich?

Und genau solche Fragen würde ich mir gerne selber beantworten können...
Aber dafür müsste ich eben genau wissen bzw. verstehen wie da ganze von statten geht...
Bitte warten ..
Mitglied: colinardo
19.07.2013, aktualisiert um 15:14 Uhr
Zitat von teret4242:
Also ist dafür ein Proxy auf Rechner A erforderlich?
Ja.
Der Grund:
Alle HTTP-Daten gehen ohne Angabe eines Proxies immer über das Gateway des lokalen Netzes.
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Router & Routing
Routing und Port Forwarding für FTP-Transfer (2)

Frage von steff911 zum Thema Router & Routing ...

Firewall
gelöst Wie richte ich Port Forwarding auf der Sonicwall ein? (7)

Frage von Azubine zum Thema Firewall ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...