Problemstellung
Oft dürfen Client-Rechner aus Sicherheitsgründen nicht auf beliebige Dienste im Internet zugreifen. Meist ist allerdings der Secure-Shell Dienst (ssh, port 22) erlaubt: Sie können sich in einer solchen Situation mit Hilfe eines ssh-Clients mit einem Server verbinden und auf diesem dann Applikationen starten, um z.B. mit der Datenbank zu arbeiten. Dies ist allerdings oft umständlich und erlaubt Ihnen nicht, mit eigenen lokalen BI-Tools wie zum Beispiel MicroStrategy zu arbeiten.
SSH-Tunnel als Lösung
Das Problem kann mit Hilfe eines SSH-Tunnels (port forwarding) gelöst werden. Dabei wird der SSH-Client so konfiguriert, dass er einen Dienst (Port) auf dem ssh-Client oder -Server bereitstellt, der alle eingehenden Verbindungen durch die aufrechterhaltene ssh-Sitzung an einen Rechner auf der gegenüberliegenden Seite weiterleitet. Diese Weiterleitung ist für die Applikation transparent und kann extern (Firewall etc.) nicht vom ssh-Datenstrom unterschieden werden.
Anforderungen
Alles was hierfür benötigt wird, ist ein ssh-Server der Port Forwarding erlaubt, ein ssh-Client, der das Feature unterstützt sowie ein login auf dem ssh-Server. Der Benutzer braucht weder auf client noch auf server Administratorrechte!
Der Grafik oben lassen sich als Beispiel folgende Details entnehmen:
- Name des ssh-Client Rechners: client.extern.net
- Name des ssh-Server Rechners: server.intern.net
- Datenbankverbindung innerhalb des INTERN Netzes: cluster.intern.intern.net:8563
- Willkürlich gewählter lokaler Port des Tunnels: 8889
Daraus leitet sich die Konfiguration des ssh-clients wie folgt ab:
Port Forwarding in BitVise Tunnelier (windows)
Die Datenbank-Verbindungsdaten werden zu 'Destination Host' und 'Dest. Port', es muss hier keine IP-Adresse verwendet werden, es reicht wenn server.intern.net den Namen auflösen und die Verbindung auf den angegebenen Port herstellen kann.
Der lokale Port für den Tunnel wird in 'List. Port' eingetragen, das 'Listen Interface' bestimmt den Zugriff auf das lokale Ende des Tunnels: Trägt man hier '127.0.0.1' ein, kann nur der Rechner zugreifen, auf dem auch der ssh-Client läuft. Mit '0.0.0.0' wird der Tunnel quasi für alle freigegeben.
Port Forwarding mit Putty (windows)
Wie bei Bitvise Tunnelier ist die Konfiguration fast selbsterklärend: Die Tunnel-Einstelungen finden sich unter "Connection ⇒ SSH ⇒ Tunnels".
Source port ist hier der lokale Port, Destination ist die host:port Kombination für die Datenbankseite.
Wichtig: Als Tunnelrichtung muss hier "Local" gewählt werden, die Tunnelkonfiguration wird erst duch Klick auf den "Add"-Button übernommen!
Port Forwarding mit ssh (linux)
Frontend-Konfiguration
Für Frontends sieht es nun so aus, als würde client.extern.net eine Datenbank auf Port 8889 betreiben.
Wenn das Port-Forwarding nicht auf lokale Verbindungen eingeschränkt ist, können damit Frontends aus dem ganzen EXTERN Netzwerk über den Verbindungsstring 'client.extern.net:8889' auf die Datenbank im INTERN Netz zugreifen.




















