2010-09-06 28 views
22

Ho accesso SSH al server "pubblico", che è anche il gateway per la rete aziendale. C'è un altro server nella rete, dove è in esecuzione il server di database Oracle locale (non c'è accesso dall'esterno di questo server, sono accettate solo le connessioni DB localhost). E, naturalmente, ho un altro accesso SSH a questo server.Come posso connettermi al server Oracle Database 11g tramite la catena del tunnel ssh (doppio tunnel, server nella rete aziendale)?

C'è un modo per unirsi a questo server Oracle Database 11g dall'esterno della rete? Sto chiedendo se c'è qualcosa come la catena del tunnel ssh e come la configuro. Questo può essere utile, ad esempio, per TOAD per Oracle (client ORACLE).

EDIT: Qui è un'immagine

alt text Grazie

risposta

30

Sì, è possibile. Per esempio. su Linux, eseguire

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

dove

  • localport è la porta sulla vostra macchina che sarà trasmesso (può essere 1521 se non v'è alcuna istanza locale di Oracle in esecuzione)
  • dbserver è il nome o IP del server di database
  • dbport è la porta del database (di solito 1521)
  • tuonome è il login sul connectionServer
  • connectionServer è la macchina dove si ha accesso ssh

Lo stesso può essere fatto su Windows utilizzando Plink (che viene fornito con mastice):

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

fare questo su entrambe le macchine (computer locale e la server a cui si ha accesso) per concatenare i tunnel ssh. Esempio:

server di connessione (supponendo Linux):

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

PC:

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

La voce tnsnames.ora deve guardare come si esegue un database locale, ad esempio,

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

grazie, ho fatto qualcosa di simile –

+0

Mi trovo di fronte a una configurazione molto simile, ma ora il gateway "sul mio lato" (nel cerchio verde). Vorrei anche effettuare il tunneling della comunicazione con il server Oracle. Tuttavia, non posso usare yoursuggestion, perché non sto amministrando "ORACLE SERVER", solo il "GATEWAY" sullo schema di rete nella domanda originale. Posso comunicare con il server Oracle solo sulla macchina "ORACLE SERVER" (in ascolto su 1521) da "GATEWAY", i client sono installati sia su "GATEWAY" che su "MY PC". C'è qualche soluzione per me? –

+1

j_maly: se il server DB accetta le connessioni dal gateway, è ancora più semplice. Basta eseguire 'plink -N -L 1521: dbserver: 1521 gwuser @ gateway' dal PC. –

4

Grazie!

Ho chiamato ssh -N -LXXXX:server:YYYY [email protected] due volte.

In primo luogo, ho chiamato

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

sul mio PC.

Poi, su questo server (durante la sessione SSH), ho chiamato

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

dove 192.168.105.111 è il server in cui è in esecuzione Oracle.

Quindi quello che ho fatto sta seguendo reindirizzamento:

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

Così ho avuto l'accesso ORACLE nel mio PC locale al porto 9998!

0

è possibile aggiungere anche l'opzione -f che esegue il comando ssh in background.

Problemi correlati