Sebastien Badia ASRALL Student
Published

Mon 16 August 2010

Last modified

2014-02-23 17:07:00+01:00

←Home

Netcat, ProxyCommand et les rebonds Ssh

Netcat est un petit utilitaire permettant d'ouvrir des connexions réseau, UDP ou TCP. Il est aussi appelé le « couteau suisse du TCP/IP » ! C'est pour dire ;)

Nous allons voir ici son efficacité pour le rebond des connexions ssh, tout se passe dans le fichier ".ssh/config".

On configure un host tout à fait normalement...

Host gnu
  Hostname gnu.sebian.fr
  User seb
  Port 66
  IdentityFile /home/%u/.ssh/id_dsa_gnu

Cet host sera donc la première étape de notre connexion, pour arriver à notre fin, on configure le deuxième host, et ça ce passe toujours dans le .ssh/config de notre machine locale ;)

Host bsd
  Hostname bsd.sebian.fr
  User seb
  ProxyCommand ssh gnu "nc -q 0 `basename %h` %p"

Et voila notre configuration éffectué !

Maintenant un ssh bsd

Donc on est sur la machine A (laptop) avec l'utilisateur seb, dans le .ssh/config de seb il y a les deux host de configuré B pour le host gnu et C pour le host bsd

Si depuis A je fais ssh gnu il se retrouve sur gnu.sebian.fr.

Maintenant si je fais ssh bsd la proxycommand se connecte à gnu puis balance le netcat qui lui se connecte à basename qui est bsd en l'occurrence.

On se retrouve bien sur bsd tout en étant passé par gnu :)

Ce type de configuration peux commencer à devenir intéressant en utilisant des wildcards :)

Host *.root
  User rootseb
  ProxyCommand ssh gnu "nc -q 0 `basename %h .root` %p"
  IdentityFile /home/%u/.ssh/id_dsa_rootseb

Ici on utilise directement le dns pour résoudre notre étoile

ssh dns.root

Bon hack ;)

Go Top