como fazer tunelamento ssh para oracle server sem servidor ssh dentro?

1

Quase todo o resultado do Google para o meu problema tem caso diferente sobre a conexão de túnel para o meu servidor oracle, eles geralmente tem servidor / cliente ssh dentro do servidor oracle

mas tenho outro caso com a seguinte ilustração:

Web Server(port80) and SSH Server(port 212) and Oracle client with sqlplus (192.168.137.2)
||
||
SSH client (192.168.137.1/128.21.31.111) -> i do ssh tunneling here
||
||
Oracle Server (port 1521) (128.21.31.112)

meu programa de php deve ter acesso ao oracle server e eu faço no meu cliente ssh:

ssh -p 212 [email protected] -R 1521:128.21.31.112:1521

pelo que eu li, este tunelamento deve fazer:

every connection => (in)192.168.137.2:1521 on ssh server => (out) 128.21.31.112:1521 on ssh client

então eu tento:

[[email protected]]$ sqlplus64 user/passwd@//192.168.137.2:1521/sid

mas infelizmente eu tenho:

SQL*Plus: Release 11.2.0.3.0 Production on Wed Jul 24 09:30:17 2013

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

ERROR:
ORA-12541: TNS:no listener


Enter user-name:

qualquer um pode me dar alguma solução e como depurar isso?

informação adicional:
quando o servidor web se conecta ao oracle server diretamente, tudo bem. Eu não posso fazer nada no oracle server -

eu tento isso no cliente myssh:

ssh -vvv -p 212 [email protected] -R 1521:128.21.31.112:1521

tenho:

debug2: channel 0: send open
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: remote forward success for: listen 1521, connect 128.21.31.112:1521
debug1: All remote forwarding requests processed
debug2: callback start
debug2: fd 3 setting TCP_NODELAY
debug3: packet_set_tos: set IP_TOS 0x10
debug2: client_session2_setup: id 0
debug2: channel 0: request pty-req confirm 1
debug2: channel 0: request shell confirm 1
debug2: callback done
debug2: channel 0: open confirm rwindow 0 rmax 32768
debug2: channel_input_status_confirm: type 99 id 0
debug2: PTY allocation request accepted on channel 0
debug2: channel 0: rcvd adjust 2097152
debug2: channel_input_status_confirm: type 99 id 0
debug2: shell request accepted on channel 0
Last login: Thu Jul 25 07:04:56 201
    
por kreamik 24.07.2013 / 09:39

2 respostas

1

Isso é absolutamente possível. Se você está executando o cliente ssh do seu servidor web:

ssh -L 1521:128.21.31.112:1521 [email protected] -N

E, em seguida, conecte-se ao localhost: 1521, em que localhost é o servidor da Web.

Se você deseja que o túnel se vincule especificamente a 192.168.137.2, então

ssh -L 192.168.137.2:1521:128.21.31.112:1521 [email protected] -N
    
por 24.07.2013 / 10:31
0

Você poderia tentar fazer o truque com o iptables no 192.168.137.1/192.168.137.2

# iptables -t nat -I OUTPUT -p tcp --dport 1251 -j DNAT --to-destination 128.21.31.112:1521

Depois disso, tente algo como

# sqlplus64 user/passwd@localhost:1251/sid
    
por 24.07.2013 / 10:15