Reverse SSH-Tunnel


Um einen Wartungszugang zu einem Rechner, der hinter einer Firewall steht, zu erhalten, kann ein SSH-Tunnel aufgebaut werden. Dieser Tunnel ist nun in beide Richtungen zu benutzen. Dadurch ist es möglich, aus der Entfernung auf einen Rechner zuzugreifen, ohne daß die Firewall, die ihn beschützt, zu öffnen.

Der hinter der Firewall stehende Rechner wird hier als „Client“ bezeichnet, der Rechner, zu dem die Verbindung aufgebaut wird, ist der „Server“. Dies ist nur zur Verdeutlichung, tatsächlich sind natürlich beide Rechner sowohl Cient als auch Server.


Vorbereitung:

Zunächst wird auf dem Client als der entsprechende Benutzer ein SSH-Key erzeugt.

ssh-keygen -t rsa

Die Fragen können alle mit den vorgegebenen Antworten beantwortet werden. Wenn der Tunnel später automatisch oder mittels eines graphischen Tools geöffnet werden soll, sollte die Passphrase leer bleiben. Den soeben erzeugten öffentlichen Schlüssel, den Sie in der Datei /home/<username>/.ssh/id_rsa.pub finden, übertragen Sie auf den Server. Hier schreiben Sie den Inhalt in die (eventuell neu anzulegende) Datei /home/<username>/.ssh/authorized_keys.

Nun können Sie sich ohne Passwortabfrage vom Client zum Server verbinden.


Aufbauen des Tunnels:

Verbinden Sie sich vom Client aus mit dem Befehl

ssh -R 21361:localhost:22 meinserver.meinedomain

Es steht nun ein Tunnel und Sie können sich mit dem Befehl

ssh -p 21361 localhost

auf den Rechner verbinden. Hier müssen Sie natürlich das Passwort noch eingeben.


Hints

Es müssen auf beiden Rechnern die SSH-Server laufen.

Nutzen Sie beim Aufbauen des Tunnels wo immer möglich den FQDN, auch und gerade bei wechselden IP-Adressen (dyndns.org). Der Kunde wird sonst jedes Mal, wenn er die Verbindung aufbaut, die Sicherheitsabfrage vom SSH-Client bekommen.

Der oben angegebene Port 21361 ist nur ein Beispielport. Sie können jeden Highport benutzen, privilegierte Ports nur als root.

Unter Umständen ist es sinnvoll, für jeden Kunden einen anderen Port zu benutzen, falls zwei Ihrer Kunden gleichzeitig Support benötigen.


To Do:

Sicherheitsaspekte/Vertrauenswürdigkeit