SSH connexion avec rebond
Thu 31 January 2013 • Tags: netcat ssh vmIntroduction
Lorsqu'on a une infrastructure réseau complexe, il se peut qu'on ai une architecture composée de plusieurs serveur/VM.
Une bonne pratique est d'avoir une IP externe et de ne pas pouvoir accéder à ses VM depuis l'Internet. Avec la pénurie d'IPv4 ça devient même nécessaire.
Il faut donc d'abord se connecter sur la passerelle SSH pour ensuite pouvoir accéder à ses VM.
On a donc une connexion ssh avec rebond ou connexion ssh avec passerelle.
Le problème
On souhaite donc faire ceci : vous >> server1 >> server2
Beaucoup de gens configurent ssh dans le fichier .ssh/config comme ceci:
host server2 Hostname server2.my.cloud.com ProxyCommand ssh server1.my.cloud.com "nc %h %p" 2> /dev/null
Cette solution fonctionne mais laisse des petits process nc inutile sur la passerelle, ce qui pour un admin système est inacceptable.
La solution
En fait vous y êtes presque, mais il faut simplement que lorsque la connexion est coupée, le process nc s'arrête:
host server2 Hostname server2.my.cloud.com ProxyCommand ssh server1.my.cloud.com "nc -q0 %h %p" 2> /dev/null
L'option -q0 va demander à nc d'attendre 0 secondes après avoir reçu EOF avant de s'arrêter.
Conclusion
Les rebonds SSL oui, mais pas n'importe comment !
Faites plaisir à votre adminsys utilisez nc -q0