Ceci est une ancienne révision du document !



reverse SSH

Il est simple de configurer un serveur SSH et de s'y connecter lorsque le pare-feu/routeur est correctement configuré. Cependant certains réseaux tels que les réseaux d'entreprise ou des particuliers derrière une BOX ne laissent pas entrer les connexions ssh le port par défaut (22) n'étant pas ouvert. Les connexions sortantes ne sont toutefois pas bloquées, ce qui va nous permettre de nous connecter quand même.

Une parade est donc d'utiliser la fonction REVERSE de SSH. Le principe consiste initier une connexion depuis la machine derrière le routeur sur une machine tierce et ainsi permettre une connexion retour depuis la machine tierce qui ne sera pas bloquée.

Cette façon de procéder est très utile pour dépanner quelqu'un à distance qui aura juste à initier la connexion sortante en tapant une ligne depuis le terminal, sans avoir à configurer le pare-feu/routeur/BOX.

exemple de configuration (NOM_UTILISATEUR@NOM_MACHINE) :

Le but est d'accéder à la machine "distant" (qui est invisible depuis l'extérieur) depuis la machine "local".

La machine "local" doit disposer d'un serveur ssh

Création d'un utilisateur dédié sur la machine locale

Cette étape permet de faire en sorte que l'on ne puisse pas avoir un accès complet à "local" depuis "distant". Le nouvel utilisateur créé pouvant avoir des droits personnalisés.

Nous allons donc créer un nouvel utilisateur spécialement pour cette connexion en tapant dans un terminal :

sudo adduser -no-create-home userL

l'option -no-create-home est spécifiée pour ne pas créer de dossier personnel à "userL" dans /home sur "local"

"userL" est à remplacer par le nom de votre choix, le mot de passe créé servira à se connecter à l'étape suivante

Connexion sur la machine locale depuis la machine distante

Nous allons initier une connexion depuis la machine "distant" sur "local"

ssh -R 12345:localhost:22 userL@local

12345 est à remplacer par un numéro de port aléatoire de votre choix, le mot de passe de connexion

Connexion sur la machine distante depuis la machine locale

La connexion est initiée depuis "distant" sur "local", le pare feu va donc laisser rentrer la connexion reverse depuis "local" sur "distant"

Pour cela taper dans un terminal :

ssh -p 12345 userD@localhost

où 12345 est le port choisi auparavant

Cette configuration est pratique quand la machine locale est elle même derrière un pare feu ou ne dispose pas d'un serveur ssh

exemple de configuration (NOM_UTILISATEUR@NOM_MACHINE) :

Le but est d'accéder à la machine "distant" (qui est invisible depuis l'extérieur) depuis la machine "local" en utilisant la machine "serveur" (sur laquelle on dispose d'un accès ssh) pour gérer les connexions.

Création d'un utilisateur dédié sur le serveur tiers

Cette partie est facultative si la machine "serveur" dispose déjà d'un utilisateur public :

Taper dans un terminal :

sudo adduser -no-create-home userS

("userS" est à remplacer par le nom de votre choix, -no-create-home est l'option pour ne pas créer de dossier personnel à "userS" dans /home)

Initiation de la connexion depuis la machine distante

commençons par initier une connexion depuis la machine "distant" en tapant dans un terminal :

ssh -R 12345:localhost:22 userS@serveur

(le port 12345 peut être changé, le port 22 est le port d'écoute ssh sur la machine "serveur", "userS" est à remplacer par le nom choisi auparavant, "serveur" est l'adresse ip ou le nom de domaine du serveur tiers)

l'option -N peut être utilisée pour ne pas faire apparaitre d'invite de terminal sur "distant"

Connexion sur le serveur tiers depuis la machine locale

ssh userS@serveur

Accès à la machine distante depuis la machine locale

Enfin depuis le terminal ouvert sur "serveur" taper :

ssh -p 12345 userD@localhost
  • tutoriel/reverse_ssh.1234133098.txt.gz
  • Dernière modification: Le 18/04/2011, 14:50
  • (modification externe)