Herstellen einer Verbindung zwischen 3 Computern

0

Ich habe 3 Maschinen in 3 verschiedenen Netzwerken.

HOME :

  • Mit Internet, aber nicht mit einem lokalen Computer verbunden, mit sudo.

ARBEIT :

  • Mit SSH über www Internet verfügbar,
  • HOME kann ssh WORK , aber nicht umgekehrt
  • WORK kann sowohl ausgehende als auch eingehende SSHs ausführen
  • Ich habe auf diesem Computer keinen sudo-Zugriff
  • Die Maschine hat keine iptablesinstalliert

SERVER :

  • SERVER ist mit dem Internet verbunden
  • SERVER kann ssh WORK , aber nicht umgekehrt
  • SERVER kann nur ausgehende ssh ausführen.
  • Ich habe Sudo-Zugriff auf diesen Computer.

Nun kann das Netzwerk dies tun:

HOME -> ARBEITEN <- SERVER

Wie erreiche ich bei dieser Konfiguration, dass HOME eine Verbindung zu SERVER herstellt ? Auf allen drei Rechnern läuft Ubuntu. Ich habe nur Befehlszeilenzugriff auf alle drei Computer.

alvas
quelle
Meine Antwort darauf kann Ihnen helfen. Ich weiß nicht, warum Sie SSH nicht von zu Hause auf den Server übertragen können. In welchem ​​Netzwerk befindet sich der Server? und hat es eine Internet-IP oder eine lokale Netzwerk-IP?
Tyson
Anschließend müssen Sie die eingehende Verbindung an den richtigen lokalen Computer weiterleiten. Genau darum geht es in der Antwort, die ich verlinkt habe.
Tyson
Wie mache ich das in der Kommandozeile?
Alvas
Ich nehme an, es gibt einen Grund, warum Sie keinen SSH-Server auf dem Server und dem Heimcomputer installiert haben. Dies ist die naheliegende einfache Antwort, wenn man bedenkt, dass Sie auf beiden einen Root-Zugriff haben, es sei denn, Sie stecken hinter einer Art Firewall oder NAT, über die Sie keine Kontrolle haben.
0xDAFACADE
Seufz, das heißt, ich habe keine Kontrolle über das Netzwerk? Ich kann nur in mein Büro gelangen, um über das WORK auf den SERVER zuzugreifen.
Alvas

Antworten:

1

Sie sollten kein sudo für diese ssh-Lösung benötigen.

Richten Sie zunächst in der Befehlszeile auf dem SERVER eine Remote-Port-Weiterleitung vom WORK-Computer zum SERVER ein:

SERVER$ ssh -f -N -R 23456:SERVER:22 workuser@WORK

Solange dieser Prozess ausgeführt wird, sollten Sie in der Lage sein, dies zu tun:

HOME$ ssh -t workuser@WORK ssh -p23456 serveruser@localhost

Das heißt, Sie sollten von HOME aus in der Lage sein, eine Verbindung über WORK und dann über den SSH-Tunnel zum SERVER-Computer herzustellen.

Es sollte möglich sein, mit: 23456 anzugeben, dass ssh alle Schnittstellen auf dem WORK-Computer überwachen soll, aber das hat bei mir nicht funktioniert, vermutlich, weil GatewayPorts deaktiviert war. Wenn es funktionieren würde, könnte der zweite Befehl folgendermaßen vereinfacht werden:

HOME$ ssh -p23456 serveruser@WORK
Nick Russo
quelle
Ich denke, SERVER steckt hinter einer Art Firewall, ich kann nicht durch den Port von WORK ssh ...
Alvas
Jede Firewall vor SERVER sollte keine Rolle spielen , da sie erreicht hat aus durch jede Firewall zu arbeiten, und mit dem Flag -f zu sprechen, soll diese Verbindung bestehen bleiben. Dann stellen Sie im zweiten Befehl (den Sie in zwei Schritte aufteilen können, wenn Sie möchten) eine Verbindung zum zuvor eingerichteten Tunnel her und senden einfach Pakete zurück über diesen. Können Sie bei WORK über "ps" bestätigen, dass die Verbindung von SERVER noch besteht?
Nick Russo
wohoo, ah, serveruser @ localhost ist @ localhost, nicht die SERVER IP =) Danke jetzt ist es durchgekommen !!!
Alvas
1
Ausgezeichnet! Beachten Sie nur, dass Sie nicht weiterkommen, wenn der ausgehende SSH-Tunnel von SERVER aus irgendeinem Grund abgebrochen wird (Netzwerkprobleme, Prozessabbruch usw.), bis Sie wieder direkt zu SERVER gelangen, um den Tunnel neu zu starten. Möglicherweise möchten Sie einen Cron-Job einrichten, um nach diesem Tunnel zu suchen und ihn neu zu starten. Möglicherweise sind dazu SSH-Schlüssel usw. erforderlich. Jetzt haben Sie jedoch die grundlegende Lösung.
Nick Russo
Tausend