====== Reverse SSH ======
Dans mon cas, j'utilise un serveur VPS sur lequel les personnes que je souhaite aider vont ouvrir un tunnel. La première chose à faire est de créer un ou deux utilisateurs sur le serveur.
me@server$ sudo adduser --no-create-home userToHelp
Il faut aussi vérifier que la configuration de [[ssh]] permettent cette opération :
me@server$ cat /etc/ssh/sshd_config | grep AllowTcpForwarding
AllowTcpForwarding yes
Si la commande ne renvoi aucun résultat, il faut ajouter la ligne ''AllowTcpForwarding yes'' dans le fichier ''/etc/ssh/sshd_config''. Une fois que c'est fait, il faut redémarrer le service [[ssh]].
me@server$ sudo service ssh restart
Une fois tous les prérequis complétés, l'utilisateur que vous souhaitez aider peut ouvrir un tunnel.
userToHelp@ordi$ ssh -NR 22222:localhost:22 userToHelp@IP.DU.SERVEUR -p PORT-SSH-SUR-LE-SERVEUR
Ou, si on veut ouvrir un shell :
userToHelp@ordi$ ssh -R 22222:localhost:22 userToHelp@IP.DU.SERVEUR -p PORT-SSH-SUR-LE-SERVEUR
On peut vérifier dans les logs du serveur que l'authentification s'est bien déroulée si on a choisi l'option "-N" qui n'ouvre pas de shell.
me@server$ sudo tail -F /var/log/auth.log
Aug 21 20:59:13 C-3PO sshd[28392]: pam_unix(sshd:session): session opened for user userToHelp by (uid=0)
Une fois le tunnel ouvert, on peut, depuis le serveur, se connecter chez l'utilisateur qu'on veut aider.
me@server$ ssh -p 22222 userToHelp@localhost
===== Sources =====
* [[https://doc.ubuntu-fr.org/tutoriel/reverse_ssh|reverse ssh (ubuntu-fr.org)]]
* [[http://geekfault.org/2011/02/19/reverse-ssh-acceder-a-un-serveur-derriere-un-natfirewall/|reverse ssh - accéder à un serveur derrière un nat/firewall (geekfault.org)]]
* [[http://www.linux-france.org/prj/edu/archinet/systeme/ch13s04.html|Comprendre la redirection de port (Port forwarding) (linux-france.org)]]