Benutzer-Werkzeuge

Webseiten-Werkzeuge


dba:sqlnet_ssl_tunnel

SQL*Net über SSH Tunnel mit Dynamic port Forwarding (SOCKS proxy) verwenden

Aufgabe:

Von dem Entwicklungsarbeitsplatz aus soll mit dem Oracle SQL*Developer auf eine Datenbank zugegriffen werden.

Diese Datenbank ist aber nicht direkt erreichbar, die Route und die Ports der Datenbank Server sind aus dem Entwickler Netz im ersten Schritt aus Sicherheitsgründen nicht erreichbar.

Um aber eine komplexere Aufgabe umsetzten zu können wird der SQL*Developer als IDE für die PL/SQL Entwicklung benötigt.

Lösung:

Vom Entwicklungsrechner ist ein Applikation Server per SSH erreichbar, der die notwendigen Datenbank erreichen kann.

D.h. per SSH kann eine Verbindung auf den Applikation Server aufgebaut werden und über diese Verbindung wird der Zugriff auf die Datenbank getunnelt.

Muss allerdings regelmäßig mit so eine Verbindung gearbeitet werden, bietet es sich an den CMAN zu verwenden ⇒ Oracle 21c - SQL*Net Proxy und Firewall mit dem Oracle Connection Manager CMAN implementieren - Einsatz als Standby DB Proxy für ältere Java Apps


Umsetzung

SSH Tunnel

SSH Zugang „normal“ auf den Application Server sicherstellen, über Keys sicherstellen das eine Password lose Anmeldung möglich ist.

Das ideale Werkzeug unter Windows ist dazu https://mobaxterm.mobatek.net.

Im dem Tool kann auch ein Tunnel „graphisch“ definieren werden:

 SSH Tunnel mit Dynamic port Forwarding (SOCKS proxy) aufbauen

Das Dynamisches Port-Forwarding über einem SOCKS-Proxy ermöglicht es, den gesamten Netzwerkverkehr eines Clients über einen einzigen SSH-Tunnel zu leiten, der Client ist der lokaler Proxy-Server.

Bash:

ssh -D 1541 servgpi01

Zugriff über den SSH Tunnel konfigurieren

Die spannende Frage ist nun, wie aber wie über eine Tunnel eine SQL*Net Verbindung weitergeleitet werden kann. Im eigentlichen SQL*Net Connect String kann das so einfach mit angeben werden.

JDBC

Die notwendigen Einstellungen im JDBC Treiber sind:

  • oracle.net.socksProxyHost=<SSH Proxy wie 127.0.0.1
  • oracle.net.socksProxyPort=<localer SSH Port wie 1521 oder 1541>
  • oracle.net.socksRemoteDNS=true

Für SQL*CL in der Befehlszeile:

export JAVA_TOOL_OPTION=" -Doracle.net.socksProxyHost=127.0.0.1  -Doracle.net.socksProxyPort=1541 - oracle.net.socksRemoteDNS=true " 
 
$ sqlcl user/pwd@host:port/SERVICE

Diese Parameter können im SQL*Developer auch in den Connection Einstellung als erweiterte Parameter hinterlegen werden:

 SQL*Developer in den Connection Einstellung Erweiterte JDBC Eigenschaften

SQL*PLUS - OCI Stack

Quellen

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
"Autor: Gunther Pipperr"
dba/sqlnet_ssl_tunnel.txt · Zuletzt geändert: von gpipperr