#Tunnels en reverse SSH #http://doc.ubuntu-fr.org/tutoriel/reverse_ssh Creer un tunnel en reverse ssh : Le principe consiste à initier une connexion depuis la machine derrière le routeur (distante) sur une machine tierce (locale), et ainsi permettre une connexion retour depuis la machine tierce qui ne sera pas bloquée. Inspire des tutoriaux : - http://wiki.kogite.fr/index.php/Reverse_ssh_:_Acc%C3%A9der_%C3%A0_un_serveur_derri%C3%A8re_un_NAT_-_Firewall - http://doc.ubuntu-fr.org/tutoriel/reverse_ssh Conventions : - userD@distant correspond à l'utilisateur userD, sur le poste appelé distant qui a les ports entrants bloqués et donc inaccessible depuis l'extérieur - userL@local correspond à l'utilisateur userL, sur le poste appelé local qui dispose également d'un serveur ssh, et qui va permettre d'accéder à la machine distant 1 - Création d'un utilisateur dédié sur le poste local Créez un nouvel utilisateur spécialement pour cette connexion afin que l'utilisateur userD du poste distant ne puisse pas avoir un accès complet au poste local : Saisissez dans un terminal sur local la commande suivante : sudo adduser --no-create-home userL 2 - Connexion sur le poste local depuis le poste distant Initiez une connexion sur local en saisissant sur le poste distant: ssh -RN 22042:localhost:2042 userL@78.243.251.48 22042 est un numero de port aleatoire compris entre 1024 et 65535 2042 est le port d'écoute ssh sur la machine serveur, userL et le mot de passe de connexion sont ceux défini précédemment. L'option -N permet de ne pas faire apparaitre d'invite de terminal sur distant 3 - Connexion sur le poste distant depuis le poste local La connexion étant désormais activée depuis distant sur local, le pare-feu va donc laisser rentrer la connexion reverse, à savoir depuis local sur distant. Pour cela taper dans un terminal sur local: ssh -p 22042 userD@localhost 22042 est le port choisi precedemment userD est à remplacer par le nom d'utilisateur permettant de se connecter au serveur ssh sur distant Pour une connexion sans mot de passe : Générer une paire de clef pour userD ssh-keygen -t rsa Faire un echange de clef avec le serveur local: ssh-copy-id -i ~/userD/.ssh/id_rsa.pub userL@local: copier la cle publique "id_rsa.pub" sur le serveur : ~/.ssh/authorized_keys