Hallo,
ich bin seit einigen Tagen am Verzweifeln und finde keine Lösung für mein Problem. Vielleicht habt ihr eine Lösung parat.
Ich habe eine Oracle Datenbank (Oracle 9i) in einem Netzwerk, welches durch eine Firewall nach draußen geschützt ist. Innerhalb des Netzwerkes treten auch keine Probleme auf. Die DB läßt sich wunderbar verbinden.
Nun ist das Netzwerk, in dem sich die DB befindet, durch eine Firewall geschützt. Um eine Verbindung zu diesem Netz aufzubauen, wird eine SSH Sitzung aufgebaut, die die weitere Kommunikation tunnelt.
Der SSH-Server ist im gleichen Netzwerk wie der Oracle-Server und sind beide zueinander direkt erreichbar.
Der Client im "externen" Netzwerk nutzt putty. Die putty-Sitzung ist so konfiguriert, dass der lokale Port 10000 auf den Oracle-Port 1521 (Listener Port) weitergeleitet wird.
Ein TNSping vom externen Client aus ist so möglich. Jedoch noch keine Verbindung zur Datenbank, da die Datenbank über einen "zufälligen" Port mit dem Client sprechen will.
Nun habe ich in diversen Foren gelesen, dass man einstellen kann, dass der Listener der Datenbank mitteilen kann, dass diese ebenfalls über den Port 1521 mitdem Client kommunizieren soll, also ein "Shared Socket".
Ich habe nun, wie in einem Forum geschrieben, über den Parameter USE_SHARED_SOCKET versucht, die Datenbank nach meinem Wunsch zu konfigurieren. Ich habe 3 Varianten versucht: HKLM:/Software/Oracle, HKLM:Software/Oracle/Home<#> und als Umgebungsvariable.
Alle 3 Versuche haben (nach einem Neustart des Servers) NICHT funktioniert.
In der listener.log auf dem Server sind die Verbindungsversuche zwar geloggt, jedoch wurde immer ein dynamischer Port verwendet.
Es sollte doch aber für mein Vorhaben bei Port statt 53140 die Nummer 1521 stehen. Oder?
Nun habe ich hier im Forum gelesen, dass es einen Oracle Communication Manager geben soll (cman.exe), der dieses Problem wohl beheben könnte. Konnte ihn meiner Installation jedoch nicht finden. Obwohl ich mir sicher bin, dass ich das komplette Oracle installiert habe.
Kann mir irgendjemand weiter helfen?
Vielleicht habe ich ja auch einen Denkfehler und muss noch etwas mehr beachten.
Es soll folgendes funktionieren:
Die gesamte Kommunikation mit der Datenbank soll also über einen Tunnel geschehen.
Bitte helft mir.
Gruß, Jan
ich bin seit einigen Tagen am Verzweifeln und finde keine Lösung für mein Problem. Vielleicht habt ihr eine Lösung parat.
Ich habe eine Oracle Datenbank (Oracle 9i) in einem Netzwerk, welches durch eine Firewall nach draußen geschützt ist. Innerhalb des Netzwerkes treten auch keine Probleme auf. Die DB läßt sich wunderbar verbinden.
Nun ist das Netzwerk, in dem sich die DB befindet, durch eine Firewall geschützt. Um eine Verbindung zu diesem Netz aufzubauen, wird eine SSH Sitzung aufgebaut, die die weitere Kommunikation tunnelt.
Der SSH-Server ist im gleichen Netzwerk wie der Oracle-Server und sind beide zueinander direkt erreichbar.
Der Client im "externen" Netzwerk nutzt putty. Die putty-Sitzung ist so konfiguriert, dass der lokale Port 10000 auf den Oracle-Port 1521 (Listener Port) weitergeleitet wird.
Ein TNSping vom externen Client aus ist so möglich. Jedoch noch keine Verbindung zur Datenbank, da die Datenbank über einen "zufälligen" Port mit dem Client sprechen will.
Nun habe ich in diversen Foren gelesen, dass man einstellen kann, dass der Listener der Datenbank mitteilen kann, dass diese ebenfalls über den Port 1521 mitdem Client kommunizieren soll, also ein "Shared Socket".
Ich habe nun, wie in einem Forum geschrieben, über den Parameter USE_SHARED_SOCKET versucht, die Datenbank nach meinem Wunsch zu konfigurieren. Ich habe 3 Varianten versucht: HKLM:/Software/Oracle, HKLM:Software/Oracle/Home<#> und als Umgebungsvariable.
Alle 3 Versuche haben (nach einem Neustart des Servers) NICHT funktioniert.
In der listener.log auf dem Server sind die Verbindungsversuche zwar geloggt, jedoch wurde immer ein dynamischer Port verwendet.
Code:
31-JUL-2008 13:49:01 * (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=<meineDB>)(CID=(PROGRAM=<meinProgramm>)(HOST=<meinRechner>)(USER=<meinNutzer>))) * (ADDRESS=(PROTOCOL=tcp)(HOST=<sshServer>)(PORT=53140)) * establish * GNDB * 0 Die Einträge <...> sind exemplarisch.
Nun habe ich hier im Forum gelesen, dass es einen Oracle Communication Manager geben soll (cman.exe), der dieses Problem wohl beheben könnte. Konnte ihn meiner Installation jedoch nicht finden. Obwohl ich mir sicher bin, dass ich das komplette Oracle installiert habe.
Kann mir irgendjemand weiter helfen?
Vielleicht habe ich ja auch einen Denkfehler und muss noch etwas mehr beachten.
Es soll folgendes funktionieren:
Code:
Client--->[SSH]--->[Firewall]--->SSH-Server--->Oracle Server Port: 10000 22 22 1521 Client<---[SSH]<---[Firewall]<---SSHServer<--- Oracle Server
Bitte helft mir.
Gruß, Jan
Comment