1 votes

Comment faire un tunnel SSH vers un serveur Oracle sans serveur SSH en interne?

Presque tous les résultats de Google pour mon problème ont des cas différents concernant la connexion en tunneling vers mon serveur Oracle, ils ont généralement un serveur/client SSH dans le serveur Oracle

mais j'ai un autre cas avec l'illustration suivante:

Serveur web (port 80) et serveur SSH (port 212) et client Oracle avec sqlplus (192.168.137.2)
||
||
Client SSH (192.168.137.1/128.21.31.111) -> je fais le tunnel SSH ici
||
||
Serveur Oracle (port 1521) (128.21.31.112)

mon programme php devrait avoir accès au serveur Oracle et je fais dans mon client SSH:

ssh -p 212 utilisateur@192.168.137.2 -R 1521:128.21.31.112:1521

d'après ce que j'ai lu, ce tunneling devrait faire:

chaque connexion => (entrée) 192.168.137.2:1521 sur le serveur SSH => (sortie) 128.21.31.112:1521 sur le client SSH

ensuite j'essaie :

[utilisateur@192.168.137.2]$ sqlplus64 utilisateur/motdepasse@//192.168.137.2:1521/sid

mais malheureusement j'ai obtenu:

SQL*Plus: Version 11.2.0.3.0 Production le Mer Jul 24 09:30:17 2013

Copyright (c) 1982, 2011, Oracle.  Tous droits réservés.

ERREUR:
ORA-12541: TNS:no listener

Entrez le nom d'utilisateur:

est-ce que quelqu'un peut me donner une solution et comment déboguer cela?

infos supplémentaires :
quand le serveur web se connecte au serveur Oracle directement, tout va bien ..
je ne peux rien faire sur le serveur Oracle

je tente cela sur mon client SSH :

ssh -vvv -p 212 utilisateur@192.168.137.2 -R 1521:128.21.31.112:1521

réponse :

debug2: canal 0: envoi ouverture
debug1: Demande de pas-plus-de-sessions@openssh.com
debug1: Entrée session interactive.
debug1: avance à distance réussie pour: écoute 1521, connexion 128.21.31.112:1521
debug1: Toutes les demandes de transfert à distance traitées
debug2: rappel commence
debug2: fd 3 réglage TCP_NODELAY
debug3: param_set_tos: configuration IP_TOS 0x10
debug2: client_session2_setup: id 0
debug2: canal 0: demande pty-req confirm 1
debug2: canal 0: demande de shell confirm 1
debug2: callback terminé
debug2: canal 0: ouverture confirmée rwindow 0 rmax 32768
debug2: confirmation du statut d'entrée du canal: type 99 id 0
debug2: demande d'allocation PTY acceptée sur le canal 0
debug2: canal 0: reçu ajustement 2097152
debug2: confirmation du statut d'entrée du canal: type 99 id 0
debug2: demande de shell acceptée sur canal 0
Dernière connexion le Jeu Jul 25 07:04:56 201

0 votes

Comment pourriez-vous essayer de créer un tunnel SSH si le 128.21.31.112 n'a pas du tout de SSH?

0 votes

Je pense que le tunneling se terminera au client SSH, puis le client SSH contactera le serveur Oracle sur le port 1521 comme je le faisais avant sur le serveur web lorsque je me connectais directement au serveur Oracle sans avoir besoin du service SSH.

1voto

GeoSword Points 1627

Cela est absolument possible. Si vous exécutez le client ssh à partir de votre serveur Web :

ssh -L 1521:128.21.31.112:1521 user@192.168.137.2 -N

Ensuite, connectez-vous sur localhost:1521, où localhost est le serveur Web.

Si vous voulez que le tunnel se lie spécifiquement à 192.168.137.2 alors

ssh -L 192.168.137.2:1521:128.21.31.112:1521 user@192.168.137.2 -N

1 votes

Pas de chance avec ça.. :(

0voto

ALex_hha Points 6885

Vous pourriez essayer de faire le tour avec iptables sur le 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

Après cela, essayez quelque chose comme

# sqlplus64 user/passwd@localhost:1251/sid

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X