serveur telnet ou ssh , mais en mode reverse

serveur telnet ou ssh , mais en mode reverse - Réseaux - Systèmes & Réseaux Pro

Marsh Posté le 20-06-2007 à 12:11:40    

Bonjour,
 
 
Suite à un projet de maintenance à distance, à cause des restrictions des réseaux auquels j'ai accès, je ne peux pas me connecter directement sur un serveur telnet ou ssh distant car celui-ci se situe sur un réseau local non accessible de l'extérieur.
 
Par contre, de mon coté, je peux aisément configurer le routeur pour mettre en place toute règle possible (NAT etc...).
 
J'aimerais savoir s'il est possible de configurer un serveur ssh en mode "reverse". C'est à dire , je ne veux pas que ce soit mon application cliente (ex  : putty sous windows) qui se connecte sur le port 22 distant, puisque mon serveur ssh n'est pas accessible, mais plutot que mon serveur ssh se connecte sur mon application cliente (donc dans ce sens), pour que je puisse avoir un accès terminal sur la machine distante (où se trouve le serveur ssh donc).
 
avec un petit schéma , ca devrait etre plus simple. Le but est d'atteindre à partir de la machine nommée "Ordinateur portable de maintenance" , la machine nommée "passerelle de maintenance" en ssh ou telnet (pour qu'ensuite à partir de cette machine, j'atteigne une autre machine située sur un réseau local). Voici le schéma :
 
http://xifedi.free.fr/reseau.png
 
 
Excusez moi pour l'explication un peu confuse, mais je ne vois pas comment l'expliquer plus simplement :p

Reply

Marsh Posté le 20-06-2007 à 12:11:40   

Reply

Marsh Posté le 20-06-2007 à 12:29:20    

en fait ce que tu veux c'est depuis ton ordinateur portable by-passer la sécurité mise en place au niveau du firewall A pour atteindre le PC VTS.

 

=> tu fait un VPN passant par le port 143 depuis ton PC jusqu'au Firewall de ton client. Ensuite tu pourra acceder dans soucis aux ressources du reseau "Client".


Message édité par vrobaina le 27-06-2007 à 14:06:00

---------------
Les cons, ça ose tout, et c'est même à ça qu'on les reconnait....
Reply

Marsh Posté le 20-06-2007 à 13:51:17    

L'idéal pour moi en effet est d'atteindre directement le PC appelé "VTS".
 
 
Mais si je n'ai accès qu'au PC appelé "passerelle de maintenance" , ce n'est pas trop grave, il me suffira ensuite de faire un ftp ou un telnet à partir de celui ci pour atteindre le PC "VTS".
 
Par contre, je ne connais pas bien les VPN, et je ne vois pas comment ça pourrait m'apporter une solution. Ou alors j'ai rien compris au fonctionnement de ceux-ci. Le VPN est bien une encapsulation au-dessus de TCP/IP ? il faut donc qu'une connexion soit établie entre un client et un serveur. Le client serait forcément mon ordinateur portable, et le serveur serait la "passerelle de maintenance". Mais comment le client peut-il atteindre le serveur ? je ne vois pas comment, sachant que le serveur se trouve sur un réseau local dont je n'ai pas la maitrise. A moins que le serveur VPN se connecte au client VPN en passant par un port autorisé ?  
 
Et une fois le VPN mis en place, que me permet-il de faire exactement ?

Reply

Marsh Posté le 27-06-2007 à 13:51:07    

tu montes un tunnel IPSEc entre les 2 routeurs.
dedans, tu vas  effectivement encapsuler les flux en provenance de ton pc et à destination d'une machine dans le réseau distant.
 
regarde les FAQ et tuto pour monter un tunnel IPSEC entre 2 routeurs.
soit très soigneux dans ta configuration car il faut une configuration cryptographique symétrique pour que le tunnel monte.
 
une fois que le tunnel est monté, tu pourras te connecter comme si la machine était sur ton propre réseau local.
 
bon courage

Reply

Marsh Posté le 27-06-2007 à 16:30:53    

xilebo a écrit :

J'aimerais savoir s'il est possible de configurer un serveur ssh en mode "reverse". C'est à dire , je ne veux pas que ce soit mon application cliente (ex  : putty sous windows) qui se connecte sur le port 22 distant, puisque mon serveur ssh n'est pas accessible, mais plutot que mon serveur ssh se connecte sur mon application cliente (donc dans ce sens), pour que je puisse avoir un accès terminal sur la machine distante (où se trouve le serveur ssh donc).


 
oui c'est faisable.  


---------------
-_- http://www.scienceshopping.com -_-
Reply

Marsh Posté le 27-06-2007 à 18:36:55    

_p1c0_ a écrit :

oui c'est faisable.


Peux tu m'en dire un peu plus ? Avec quels applications je peux faire ca , et quel est le parametrage a mettre en place ?
 
 
Au pire, j'ai trouvé un site qui permet de connecter 2 clients ensemble ,ca s appelle wwww.logmein.fr . Ca permet de faire quasi tout ce que je souhaite faire, sauf que j'aimerais n'avoir qu'une connexion de type terminal (ssh, telnet) plutot que d avoir le bureau graphique, pour des raisons de performances.

Reply

Marsh Posté le 27-06-2007 à 19:05:08    

quel est le modèle de ton routeur ?
 
l'ipsec est adapté à ta demande!

Reply

Marsh Posté le 27-06-2007 à 20:15:40    

xilebo a écrit :

Peux tu m'en dire un peu plus ? Avec quels applications je peux faire ca , et quel est le parametrage a mettre en place ?


 
Là comme ca non mais je t'en dit plus demain en étant au boulot.
 
Le principe en gros:
 - la machine distante vient de connecter en ssh sur une machine chez toi
 - tu te logues sur ta machine et tu récupères la connexion ssh et tu te retrouves en ssh sur la machine distante
 
J'essaye de te retrouver les lignes de commandes demain.


---------------
-_- http://www.scienceshopping.com -_-
Reply

Marsh Posté le 28-06-2007 à 07:38:56    

_p1c0_ a écrit :

J'essaye de te retrouver les lignes de commandes demain.


 
en fait, je viens de voir que google permet d'avoir les infos! [:cerveau arf] faut chercher un peu quand meme!
 
=> http://gentoo-wiki.com/TIP_SSH_Reverse_Tunnel
 
Le passage important:
 

The actual steps
 
All you have to do create a tunnel from the middle to destination.
 
    * On destination, using an ssh client, login to middle and open a tunnel from port 10000 on middle to port 22 on destination.
 
user@destination$ ssh -R 10000:localhost:22 middleuser@middle
 
    This will open port 10000 for listening and forward all future connections to port 22 at destination.
 
    * Do not close this session and make sure it will not close itself due to inactivity (see /etc/ssh/sshd_config below)  
 
    * Go wherever you want with your notebook and point your ssh client to port 10000 on middle. Use the user/password pair on destination.  
 
user@notebook$ ssh destinationuser@middle -p 10000
 
    * You are now logged in the destination. Enjoy.  
 
Note: To make the last command work you need to enable the GatewayPorts feature on middle.
 
Turn on -X or -Y for XForwarding, and you can run X apps on your localmachine through the tunnel!


 
[:cerveau o]


---------------
-_- http://www.scienceshopping.com -_-
Reply

Marsh Posté le 28-06-2007 à 08:18:38    

Je te remercie, j'avais effectivement mal cherché, je vais regarder ça et tenter de faire une simulation pour voir comment ca fonctionne.
 
 :jap:

Reply

Marsh Posté le 28-06-2007 à 08:18:38   

Reply

Marsh Posté le 28-06-2007 à 09:59:30    

pour y arriver, il faut les prérequis suivant :
 
de ton coté : avoir ton client putty ( client ssh) , décider du port de sortie ( tu n'as pas trop le choix on dirait)
coté serveur : avoir un serveur SSH,  et un port d'écoute ENTRANT ..

Reply

Marsh Posté le 28-06-2007 à 09:59:53    

et n'oublies pas que tu ne peux encapsuler que des flux TCP ( et rien d'autre).

Reply

Marsh Posté le 28-06-2007 à 10:51:52    

je viens de tester en local cette architecture, après quelques petits soucis, ca fonctionne parfaitement, et c'est exactement ce que je souhaite faire.  
 
 
J'ai bien compris que je ne pouvais encapsuler qu'un flux TCP dessus. Ca ne me pose pas de pb car j'aurais besoin de transporter un flux ssh , ftp, et éventuellement VNC.
 
Par contre j'ai testé le flux ftp, j'arrive bien à me connecter sur la machine distante et à m'authentifier. Mais la commande ls ne fonctionne pas, il me retourne une erreur :
 

Code :
  1. 425 Unable to build data connection : connection refused


 
Pourtant, je suis bien authentifié, et je peux meme naviguer (de facon aveugle forcément) dans l'arborescence en faisant cd /monchemin.
 
Il me sort la même erreur lorsque je fais un get monfichier.
 
je suppose que c'est parceque lorsqu'on établit une connexion ftp avec un serveur, il y a plusieurs canaux qui sont créés, or , un seul passe par le tunnel SSH (celui sur le port 21 ). Mais si c'est ca, comment faire pour que tout passe par le même canal ? dois je configurer mon serveur ftp dans un mode particulier ?
 
 
J'ai une derniere question, plus pour ma culture personnelle :p Lorsque j'ai fait mes premiers tests, je m'étais connecté en ssh avec la commande suivante :
 

Code :
  1. user@destination$ ssh -R 10000:localhost:22 middleuser@middle


 
Et ensuite j'ai essayé de me connecter à partir d'une machine tierce sur middle:10000 et ca ne marchait pas. Pourtant dans la doc, il était dit que middle se mettait sur écoute sur le port 10000. Après plusieurs essais, je me suis apercu que la connexion ssh vers destination par le tunnel middle<->destination ne pouvait se faire qu'en local à partir de middle. Soit, il suffit dans ce cas de se connecter d'abord en ssh sur middle (puisqu'il y a un serveur ssh dessus), puis de refaire une connexion vers destination en passant par la boucle locale en faisant ssh localhost -p 10000.
Si j'ai bien compris, le serveur ssh de la machine middle écoute sur le port 10000 seulement sur la boucle locale. Pourquoi dans ce cas ne pas avoir fait écouté sur toutes les interfaces réseaux ce qui aurait permis de se connecter  à la machine destination de n'importe ou ? Une raison de sécurité peut-être ?
EDIT : trouvé , il suffit de mettre dans la configuration du serveur SSH la ligne suivante : "GatewayPorts yes".
 
 
En tout cas, merci de vos infos, je peux maintenant mettre en place la maintenance prévue.


Message édité par xilebo le 28-06-2007 à 11:09:34
Reply

Marsh Posté le 28-06-2007 à 11:30:33    

quand tu fais ta connexion FTP, il ya le port controle et le port DATA
le port DATA est une connexion dynamique qui varie suivant le mode de configuration du serveur ftp : Actif ou Passif.
 
tes infos ici :
http://www.ssh.com/support/documen [...] g_FTP.html
 
pour ton info on appelle cela un bastion ssh ;)
exemple : http://www-sop.inria.fr/semir/securite/bastion.html
 
néanmoins, ton artchitecture marche en local, mais pour ta connexion distante ça sera autre chose...
 
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed