2010-09-06 17 views
22

Tengo acceso SSH al servidor 'público', que también es la puerta de entrada a la red de la compañía. Hay otro servidor en la red, donde se está ejecutando local servidor Oracle Database (no hay acceso desde el exterior de este servidor, solo se aceptan las conexiones DB de host local). Y, por supuesto, tengo otro acceso SSH a este servidor.¿Cómo me puedo conectar al servidor Oracle Database 11g a través de la cadena de túnel ssh (túnel doble, servidor en la red de la empresa)?

¿Hay alguna forma de unirse a este servidor Oracle Database 11g desde fuera de la red? Pregunto si hay algo así como la cadena de túnel ssh, y cómo lo configuro. Esto puede ser útil, por ejemplo, para TOAD for Oracle (cliente ORACLE).

EDIT: Aquí es una imagen

alt text Gracias

Respuesta

30

Sí, es posible. P.ej. en Linux, ejecute

ssh -N -Llocalport:dbserver:dbport [email protected] 

donde

  • localport es el puerto de la máquina que se transmitirá (puede ser 1521 si no hay una instancia local de Oracle en ejecución)
  • dbserver es el nombre o dirección IP del servidor de base de datos
  • dbPort es el puerto de la base de datos (normalmente 1521)
  • sunombre es el login en el connectionServer
  • connectionServer es la máquina donde se tiene acceso ssh

El mismo se puede hacer en Windows utilizando Plink (que viene con masilla):

plink -N -L localport:dbserver:dbport [email protected] 

hacer esto en ambas máquinas (el equipo local y el servidor al que tiene acceso) para encadenar los túneles ssh. Ejemplo:

servidor de conexión (suponiendo Linux):

ssh -N -L1521:dbserver:1521 [email protected] 

su PC:

plink -N -L 1521:connectionserver:1521 [email protected] 

La entrada tnsnames.ora debe parecer que está ejecutando una base de datos local, por ejemplo,

prodoverssh = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
     (SERVICE_NAME = prod) 
    ) 
) 
+0

gracias, hice algo así como –

+0

Estoy frente a una configuración muy similar, pero ahora la puerta de enlace en "mi lado" (en el círculo verde). También me gustaría hacer un túnel de comunicación con el servidor Oracle. Sin embargo, no puedo usar yoursuggestion, porque no estoy administrando "ORACLE SERVER", solo el "GATEWAY" en el esquema de red en la pregunta original. Solo puedo comunicarme con el servidor de Oracle en la máquina "ORACLE SERVER" (escuchando en 1521) desde "GATEWAY", los clientes están instalados en "GATEWAY" y "MY PC". ¿Hay alguna solución para mí? –

+1

j_maly: si el servidor de base de datos acepta conexiones de la puerta de enlace, es aún más fácil. Simplemente ejecute 'plink -N -L 1521: dbserver: 1521 gwuser @ gateway' desde su PC. –

4

¡Gracias!

Llamé al ssh -N -LXXXX:server:YYYY [email protected] dos veces.

En primer lugar, llamé

ssh -L 9998:127.0.0.1:9997 [email protected] 

en mi PC.

Entonces, en este servidor (durante la sesión de SSH), llamé

ssh -L 9997:localhost:1521 [email protected] 

donde es 192.168.105.111 servidor donde ORACLE estaba en marcha.

Así que lo que hice está siguiendo redirección:

1521 (COMPANY ORACLE SERVER) 
    -> 9997 (COMPANY GATEWAY SERVER) 
    -> 9998 (LOCAL PC) 

Así que tiene acceso ORACLE en mi PC local en el puerto 9998!

0

puede agregar también la opción -f que ejecuta el comando ssh en segundo plano.

Cuestiones relacionadas