Forum: PC Hard- und Software SSH-Verbindung mit "Vermittlungspartner"


von SSH-User (Gast)


Lesenswert?

Hallo.

Ich möchte PC1 mit PC2 über das Internet verbinden.
Dazu möchte ich einen dritten PC als "Vermittlungspartner" benutzen.
Leider finde ich keine Lösung wie ich das genau anstellen kann?

Ich kann mit beiden PCs eine SSH-Verbindung zum Vermittlungspartner 
aufbauen, aber wie kann ich dann von PC1 auf PC2 zugreifen? Ich muss 
irgendwie die

Gibt es für solche Verbindungen einen Fachausdruck?
Ich kenne Hole-Punching, aber das funktioniert anders.

lg

von Norbert (Gast)


Lesenswert?

SSH-User schrieb:
> Hallo.
>
> Ich möchte PC1 mit PC2 über das Internet verbinden.
> Dazu möchte ich einen dritten PC als "Vermittlungspartner" benutzen.
> Leider finde ich keine Lösung wie ich das genau anstellen kann?
>
> Ich kann mit beiden PCs eine SSH-Verbindung zum Vermittlungspartner
> aufbauen, aber wie kann ich dann von PC1 auf PC2 zugreifen? Ich muss
> irgendwie die
>
> Gibt es für solche Verbindungen einen Fachausdruck?
> Ich kenne Hole-Punching, aber das funktioniert anders.
>
> lg

So ein umständliches Konstrukt wird nur gebraucht wenn sich beide PCs 
hinter einer (NAT/Masquerading) 'Firewall' verbergen.

Gibt's einen besonderen Grund warum nicht einfach eine Portweiterleitung 
genutzt wird?

von Gerd E. (robberknight)


Lesenswert?

Schau Dir mal socat an, damit sollte es gehen. Du brauchst ein socat mit 
doppeltem tcp-listen auf dem vermittlungspartner und eines mit doppeltem 
tcp auf dem zielrechner.

von Gerd E. (robberknight)


Lesenswert?

Norbert schrieb:
> So ein umständliches Konstrukt wird nur gebraucht wenn sich beide PCs
> hinter einer (NAT/Masquerading) 'Firewall' verbergen.
>
> Gibt's einen besonderen Grund warum nicht einfach eine Portweiterleitung
> genutzt wird?

Ich bin zwar nicht der TO, aber ein gängiger Grund für sowas ist wenn 
beide Seiten Mobilfunkanschlüsse sind und man damit keine Kontrolle über 
das Portforwarding bzw. Firewalling des Netzbetreibers hat.

von Peter II (Gast)


Lesenswert?

Mit SSH Portforwarding geht es. Dann musst du jeweils eine Verbindung 
von PC1 und Vermittlungsrechner und von PC2 zum Vermitlungsrechner 
aufbauen. Dann eine 3. Verbindung für die Weitergleiteten Ports 
aufbauen.

Man missbraucht dann also die ersten 2 Verbindungen als VPN. Sinnvoller 
ist es gleich eine VPN z.b. mit OpenVPN aufzubauen.

von Norbert (Gast)


Lesenswert?

Gerd E. schrieb:
> Norbert schrieb:
>> So ein umständliches Konstrukt wird nur gebraucht wenn sich beide PCs
>> hinter einer (NAT/Masquerading) 'Firewall' verbergen.
>>
>> Gibt's einen besonderen Grund warum nicht einfach eine Portweiterleitung
>> genutzt wird?
>
> Ich bin zwar nicht der TO, aber ein gängiger Grund für sowas ist wenn
> beide Seiten Mobilfunkanschlüsse sind und man damit keine Kontrolle über
> das Portforwarding bzw. Firewalling des Netzbetreibers hat.

;-)

Ist das die euphemistische Formulierung für:
Wenn man von seinem Provider einen verkrüppelten Anschluss bekommt?

Oder die Formulierung für:
Wenn der Provider nicht in der Lage ist IPv6 zur Verfügung zu stellen?

Oder die Formulierung für:
...

Again,... ;-)

von Gerd E. (robberknight)


Lesenswert?

Norbert schrieb:
> Ist das die euphemistische Formulierung für:
> Wenn man von seinem Provider einen verkrüppelten Anschluss bekommt?
>
> Oder die Formulierung für:
> Wenn der Provider nicht in der Lage ist IPv6 zur Verfügung zu stellen?

Bei was für nem UMTS-Provider in D bekommst Du denn IPv6 oder IPv4 mit 
ner eigenen IP ohne Firewalling für alle eingehenden Verbindungen?

Bei T-Mobile kann man zwar nen speziellen APN verwenden um ne eigene IP 
(v4) zu bekommen, aber die Firewall von T-Mobile sperrt alle eingenden 
Verbindungsversuche darauf.

Vielleicht gibt es auch spezielle Business-Verträge die eingehende 
Verbindungen erlauben, aber vermutlich zahlt man sich da dumm und 
dusselig bei und behilft sich statt dessen lieber mit Lösungen wie den 
oben vorgeschlagenen.

Ne andere Variante wären übrigens auch VPN-Provider. Du wählst Dich vom 
verkrüppelten Anschluss aus per PPTP, L2TP oder IPSec bei dem 
VPN-Provider ein und bekommst dann ne vollwertig nutzbare IP von dem. Es 
gibt einige Anbieter die sowas für so 5 EUR/Monat rum anbieten.

von Hans Ulli K. (Gast)


Lesenswert?

SSH-User schrieb:
> Hallo.
>
> Ich möchte PC1 mit PC2 über das Internet verbinden.
> Dazu möchte ich einen dritten PC als "Vermittlungspartner" benutzen.
> Leider finde ich keine Lösung wie ich das genau anstellen kann?
>
> Ich kann mit beiden PCs eine SSH-Verbindung zum Vermittlungspartner
> aufbauen, aber wie kann ich dann von PC1 auf PC2 zugreifen? Ich muss
> irgendwie die
>
> Gibt es für solche Verbindungen einen Fachausdruck?
> Ich kenne Hole-Punching, aber das funktioniert anders.
>
> lg

Ich tippe drauf das du Port Forwarding via SSH meinst.
Damit kann man sich z.B. mit verschiedenen PCs hinter einer Firewall 
verbinden.
Auch kann man damit sich einen relative einfachen SOCKS Proxy aufbauen 
und restriktive Firewalls zu umgehen

von SSH-User (Gast)


Lesenswert?

Hallo nochmal

Ich schreibe zur Zeit meine Bakk-Arbeit über "Fernwartung und 
Fern-Updates für embedded Systems unter Linux" und möchte ein paar 
Szenarien + Lösungsansätze für die Verbindung von Service-PC und Gerät 
einbinden.

Der Grund warum ich es so "kompliziert" machen möchte ist, weil ich 
davon ausgehe dass beide PCs hinter einem nicht konfigurierbaren Router 
(kein Portforwarding oder so) oder einer Firewall stehen.
Grundsätzlich basieren alle anderen Szenarien auf einer SSH-Verbindung 
(einfacher SSH-Tunnel oder Reverse-SSH) bzw. andere Protokolle die über 
SSH getunnelt werden.

Sorry dass ich das nicht vorher so detailiert geschrieben habe, aber ich 
dachte mir, dass dieses Vorhaben eine gängige Methode ist zwei 
"abgeschirmte" PCs zu verbinden.
Teamviewer oder Skype machen das ja auch so ähnlich. Die nutzen halt 
UDP-Hole-Punching was für SSH leider nicht ohne weiteres realisierbar 
ist.

lg

von SSH-User (Gast)


Lesenswert?

Jetzt hab ich es endlich geschafft!
Die Lösung ist eingentlich nicht so schwierig:

Aufbauen der Tunnel:
PC1:> ssh -N -R 2048:localhost:22   user@vermittler
PC2:> ssh -N -L 1234:localhost:2048 user@vermittler

PC1 >>>Tunnel>>> [ Vermittler ] <<<Tunnel<<< PC2

Jetzt am PC2 den Tunneleingang 1234 für die eigentliche SSH-Verbindung 
benutzen.

PC2:> ssh -p 1234 UserAufPC1@localhost


Trotzdem DANKE für die Antworten!

von Norbert (Gast)


Lesenswert?

SSH-User schrieb:
> Jetzt hab ich es endlich geschafft!
> Die Lösung ist eingentlich nicht so schwierig:
>
> Aufbauen der Tunnel:
> PC1:> ssh -N -R 2048:localhost:22   user@vermittler
> PC2:> ssh -N -L 1234:localhost:2048 user@vermittler
>
> PC1 >>>Tunnel>>> [ Vermittler ] <<<Tunnel<<< PC2
>
> Jetzt am PC2 den Tunneleingang 1234 für die eigentliche SSH-Verbindung
> benutzen.
>
> PC2:> ssh -p 1234 UserAufPC1@localhost
>
>
> Trotzdem DANKE für die Antworten!

Das ist kein Vermittler (für den Verbindungsaufbau) sondern ein Relais 
(für die komplette Übertragung)!

Außerdem sind es zwei SSH Verbindungen die jeweils auf dem RelaisPC 
terminieren und dort entschlüsselt und wieder verschlüsselt werden.

Man muß dem Ding also komplett während der gesamten Übertragung 
vertrauen.

von Peter II (Gast)


Lesenswert?

Norbert schrieb:
> Man muß dem Ding also komplett während der gesamten Übertragung
> vertrauen.

nein, die 3.SSH Verbindung wird auf dem Vermittlungsrechner nicht 
entschlüsselt, er kann sie also nicht mitlesen.

von Norbert (Gast)


Lesenswert?

Ich habe mich unklar ausgedrückt.
Man muß darauf vertrauen, das der RelaisPC die komplette Zeit die 
Verbindungen aufrecht erhält und nicht nur während des 
Vermittlungsaufbaus  wie bei (oben genannt) zB Skype

von SSH-User (Gast)


Lesenswert?

Ich weiß, dass Skype und TeamViewer das anders machen.
Die benutzen den "Vermittler" nur um gegenseitig Infos auszutauschen um 
dann ohne direkter verwendung des Vermittlers eine Verbindung aufzubauen 
(oder so ähnlich). Das geht aber nur weil eben Hole-Punching eingesetzt 
wird.

In meinem Fall ist Vermittler wsl. das falsche Wort.
Nennt man das Relais oder Repeater? Ich weiß es (noch) nicht.

Die Verbindung zwischen Server und Client ist aber verschlüsselt und 
wird meines Wissens nicht am "Vermittler" entschlüsselt.
Wenn der "Vermittler" aber ein vertrauenswürdiger Server ist, wäre auch 
das kein Problem, oder?

Norbert schrieb:
> Ich habe mich unklar ausgedrückt.
> Man muß darauf vertrauen, das der RelaisPC die komplette Zeit die
> Verbindungen aufrecht erhält und nicht nur während des
> Vermittlungsaufbaus  wie bei (oben genannt) zB Skype

Davon gehe ich aus, ja.

lg

von Peter II (Gast)


Lesenswert?

SSH-User schrieb:
> Ich weiß, dass Skype und TeamViewer das anders machen.
> Die benutzen den "Vermittler" nur um gegenseitig Infos auszutauschen um
> dann ohne direkter verwendung des Vermittlers eine Verbindung aufzubauen
> (oder so ähnlich). Das geht aber nur weil eben Hole-Punching eingesetzt
> wird.

TeamViewer leitet meines wissens alles über ihre Server. Das ist viel 
einfacher zu programieren und funktioniert sauber.

von SSH-User (Gast)


Lesenswert?

Peter II schrieb:
> SSH-User schrieb:
>> Ich weiß, dass Skype und TeamViewer das anders machen.
>> Die benutzen den "Vermittler" nur um gegenseitig Infos auszutauschen um
>> dann ohne direkter verwendung des Vermittlers eine Verbindung aufzubauen
>> (oder so ähnlich). Das geht aber nur weil eben Hole-Punching eingesetzt
>> wird.
>
> TeamViewer leitet meines wissens alles über ihre Server. Das ist viel
> einfacher zu programieren und funktioniert sauber.

Nur zur Info:

In folgendem Dokument steht, dass zu 70% die Verbindungen direkt 
gehandhabt werden. Der Rest läuft über deren Server.

http://www.teamviewer.com/images/pdf/TeamViewer_Sicherheitsstatement.pdf

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.