20 mars 2007

Rendre disponible un tunnel SSH

Tags : , ,

posté dans Outils Unix |

Tout le monde connaiît OpenSSH (non ? Tant pis) et les possibilités de création de tunnel. Très pratique pour sécuriser (chiffrer) des protocoles trop bavards (HTTP; FTP, POP3, etc), il est possible de tunneliser presque n'importe quoi depuis le client SSH et le serveur (et inversement). Plus rarement utilisé, il est aussi possible de partager le tunnel du client sur le réseau.

L'idée de base est depuis la machine A d'accéder au serveur HTTP sur la machine B mais sans laisser circuler plein de HTTP en clair dans les tuyaux. On utilise donc sur la machine A :

% ssh -L 8000:localhost:80 machineb

Dès lors, sur la machine B on peut accéder au serveur HTTP de B avec l'adresse http://localhost:8000/. OpenSSH se charge comme un grand de chiffrer tout ça et de l'enfoncer joyeusement dans le tunnel.

Pour faire plus simple on peut ajouter dans son ~/.ssh/config :

Host montunnelhttp
       Hostname machineb
       Port 22
       Compression yes
       CompressionLevel 6
       LocalForward 8000 127.0.0.1:80

et ensuite utiliser simplement

% ssh montunnelhttp

Seulement voilà. Le point d'entrée du tunnel est localhost:8000 sur A. Si l'on veut, par exemple, vérifier que son application Web ressemble vaguement à quelque chose avec un navigateur du mal sous un OS du mal, on se retrouve coincé. "Bin, je sors mon iptables de la mort et de forwa..." NON ! OpenSSH a ce qu'il faut (idem pour le "j'installe Putty et...". Moins je touche aux OS sales, moins je m'ennerve, mieux je me porte) :

% ssh -L mon_ip_sur_eth0:8000:localhost:80 machineb

On bind gentillement sur l'adresse de l'interface ethernet de la machine cliente. Du coup, OpenSSH écoute le port 8000 de l'interface en question. Depuis notre OS du mal, on utilise http://mon_ip_sur_eth0:8000, et rulez...

Côté ~/.ssh/config, on utilisera ceci :

Host montunnelhttp
       Hostname machineb
       Port 22
       Compression yes
       CompressionLevel 6
       GatewayPorts yes
       LocalForward 8000 127.0.0.1:80
Article posté on Mardi, 20 mars 2007 à 10:25 dans Outils Unix. Vous pouvez suivre les commentaires sur cet article via un feed RSS 2.0. Vous pouvez laisser un commentaire. Le Ping n'est actuellement pas autorisé.

Laisser un commentaire

*
Pour prouver que vous n'êtes pas un bot, recopiez le code ci-dessous
Anti-Spam Image