Salut à tous,
Mon problème concerne trois machines différentes :
Un serveur : mon.serveur.com
Une machine dans un réseau privé, accessible en SSH (et uniquement en SSH) : ma.machine.priv
Et un serveur dans le réseau privé, que je ne contrôle absolument pas et qui dispose d'un webservice que ma.machine.priv peut consommer : leur.serveur.priv
Vous comprenez déjà le problème : mon.serveur.com aimerait beaucoup beaucoup pouvoir consommer directement le webservice via ma.machine.priv, le problème c'est que je n'y parviens pas.
Le web service se situe sur le port 8080 de leur.serveur.priv
J'ai essayé de faire un tunnel SSH inversé entre ma.machine.priv et mon.serveur.com :
ma.machine.priv@user # ssh -nNT -R 19999:localhost:19999 user@mon.serveur.com
Donc depuis mon.serveur.com, je peux accéder au port 19999 de ma.machine.priv. (J'ai testé, ca marche) L'idée était ensuite de router via iptables le port 19999 de ma.machine.priv vers leur.serveur.priv.
Visiblement ce n'est pas aussi simple, voici la règle iptables que j'ai réalisée :
iptables -t nat -A PREROUTING -m tcp -p tcp -i eth0 -d ma.machine.priv --dport 19999 -j DNAT --to leur.serveur.priv
iptables -A FORWARD -p tcp -i eth0 -d leur.serveur.priv --dport 8080 -j ACCEPT
Il n'y a pas d'autre règle qui interfère. Et pourtant, ca ne fonctionne pas. Rien que la règle iptables ne semble pas fonctionner.
Quand j'essaye, depuis ma.machine.priv de consommer le webservice de leur.serveur.priv:8080 via l'url suivante : ma.machine.priv:19999 ... rien ne fonctionne. Donc forcément mon petit tunnel ne peut pas marcher !
J'ai tenté une autre approche, une redirection au niveau de la couche applicative avec un logiciel nommé rinetd. Cette fois la redirection fonctionne nickel, je peux consommer le webservice via ma.machine.priv:19999 par contre, vu que c'est au niveau applicatif, lorsque j'essaye de mettre en place mon tunnel ssh, il me dit que le port 19999 de ma.machine.priv est déjà pris.
Je ne sais pas trop comment m'en sortir, pourtant je sens que c'est faisable.
Suis-je loin du compte ? Y-a-t'il quelqu'un qui peut m'aider ?
Merci beaucoup et bonne soirée,
Cyril
Partager