Tunneln von TCP Ports zum Zugriff von außerhalb des CIP-Pools

Um auf einen bestimmten Port eines CIP-Rechners außerhalb des Pools zugreifen zu können brauchen Sie (nach Herstellung des VPN-Zugangs) zusätzlich einen sog. SSH-Tunnel mit Portweiterleitung.

Von einem beliebigen Rechner (als Vermittler) im CIP-Pool, z.B. von t800.fim.uni-passau.de, ist es erlaubt auf andere Rechner des Pools (den Zielrechner) so einen Tunnel aufzubauen, z.B. falls nach Aufgabenstellung notwendig auch auf bueno.fim.uni-passau.de. Wenn Sie sich auf dem Zielrechner per SSH einloggen können (auf bueno ist das nicht der Fall), kann der Vermittler und der Zielrechner auch ein und derselbe sein.

Als Beispiel wird nun von t800.fim.uni-passau.de als Vermittler eine Portweiterleitung auf TCP Port 8080 von bueno.fim.uni-passau.de erstellt. Auf diesem Zielport 8080 könnte z.B. ein/Ihr Tomcat-Server laufen. Wegen Sicherheitsbeschränkungen darf der Zielport nur die Nummer 8080 oder 8443 sein. Dies können Sie steuern durch die Konfiguration Ihres (Tomcat-)Servers. Weitere Hintergründe dazu teilen Ihnen die CIP-Systembetreuer mit. Mit dem OpenSSH-Paket (unter jeder Linux Distribution und MacOS X verfügbar) funktioniert das folgendermaßen:

sauron> ssh -L 8085:bueno.fim.uni-passau.de:8080 cipname@t800.fim.uni-passau.de
Danach ist der Port 8085 am lokalen Rechner (localhost) verfügbar. D.h. man kann ihn nun so benutzen, als ob der Tomcat am lokalen Rechner installiert wäre. Die URL für den Browser ist dann
http://localhost:8085/webappname
anstatt wie lokal gewohnt
http://bueno.fim.uni-passau.de:8080/webappname

Der Tunnel bleibt nur solange bestehen, bis die Sitzung / das Fenster / die per SSH gestartete Shell geschlossen wird.

Falls zu Hause schon ein Programm (wie z.B. Tomcat) installiert ist, das lokal den Port 8085 bereits belegt, kann man lokal auch einen anderen Port > 1023 benutzen. Dazu einfach den sog. Source-Port 8085 im Aufruf (die Portnummer des lokalen Endes des Tunnels) und in der URL ersetzen. Es ist übrigens durch den SSH-Tunnel bei einer evtl. vorhandenen Firwall keine Portöffnung von außen notwendig.

Unter Windows empfiehlt sich der kostenlose SSH Client PuTTY, mit dem man einen solchen Tunnel über eine GUI einrichten kann.

Um den SSH-Tunnel mit Putty zu erstellen sind folgende Schritte notwendig:

  1. Den Tunnel einrichten (Connection->SSH->Tunnels).
    Unter Source port ist der lokale Port einzutragen d.h. irgenein freier Port am eigenen Rechner. Unter Destination ist die Zieladresse des Tunnels inklusive Port einzutragen.

  2. Tunnel mit "Add" hinzufügen.

  3. Verbindungen zu einem Rechner aufbauen, der Zugriff auf den Zielrechner hat z.B. einer der CIP- Rechner.

  4. In der Applikation als Host der Datenbank einfach "localhost:Source port". Der Source port muss mit dem Source port aus Schritt 1 übereinstimmen.