OrdinAide

Exemple de mise en place d'un tunnel

L'exemple choisi a été utilisé pour mettre en place un tunnel pour accéder au serveur de courriers électroniques via un bastion. Il n'est plus utilisé aujourd'hui parce que le serveur de courriers électroniques est configuré en mode sécurisé (POPS, IMAPS, SMTPS). La méthode reste néanmoins correcte, par exemple pour accéder à un serveur de pages Web dans un intranet "réseau". Il suffirait de remplacer le port du serveur Web (souvent 80) selon le même genre de formule (pour 80 -> 1080, par exemple).

On doit relier les ports d'entrée et de sortie du courrier électronique de son ordinateur aux ports d'entrée et de sortie du serveur. On appelle ce procédé de tunnel : un "relai de ports" (en anglais "port forwarding").

ssh -i ~/.ssh/id_rsa -C -f -N -L 1025:localhost:25 bfricottin@bastion
Cette commande crée le tunnel qui définit, pour l'utilisateur "bfricottin", le port 1025 de son ordinateur ("localhost") comme celui qui sera "branché" sur le 25 du bastion utilisé pour accéder au serveur de courriers électroniques (où "bastion" est le DNS de ce serveur). L'option -i ~/.ssh/id_rsa permet de désigner le fichier qui contient la clé RSA nécessaire pour la connexion ssh (il pourrait ainsi avoir un autre nom que id_rsa qui est le nom par défaut).
ssh -i ~/.ssh/id_rsa -C -f -N -L -L 1110:localhost:110 bfricottin@bastion
Cette commande crée le tunnel qui définit, pour l'utilisateur bfricottin, le port 1110 de son ordinateur comme celui qui sera "branché" sur le 110 du bastion (pour le protocole pop)
ssh -i ~/.ssh/id_rsa -C -f -N -L 1110:localhost:110 -L 1025:localhost:25 bfricottin@bastion
Cette commande crée 2 tunnels d'un seul coup.

Si ce n'est pas déjà fait, on doit créer un fichier dans le dossier .ssh de l'utilisateur "bfricottin" sur l'ordinateur client (localhost) pour contenir le mot de passe crypté de la session ssh. Pour cela, il suffit de se placer dans le dossier ~/.ssh/, et de taper la commande :

ssh-keygen -f ~/.ssh/id_rsa
Cette commande crée deux clés d'authentification (publique et privée) pour le protocole de connexion ssh, et les mémorise dans le fichier "~/.ssh/id_rsa" (clé privée) et "~/.ssh/id_rsa.pub" (clé publique).

Il restera à recopier la clé publique sur le serveur, en la mettant dans le dossier .ssh/ de l'utilisateur concerné, sous le nom de fichier authorized_keys. Ce nom de fichier est fixé. Pour cela, après s'être connecté directement sur le serveur de courrier depuis un lieu où on pouvait le faire, et y avoir évetuellement créé le dossier .ssh/, faire depuis son ordinateur client :

scp ~/.ssh/id_rsa.pub bfricottin@mail-server.imag.fr:~/.ssh/authorized_keys
Cette commande fait une copie sécurisée sur le serveur, du fichier ~/.ssh/tunnel_mailhost.pub précédement créée sur l'ordinateur client, en le mettant à la racine du compte de l'utilisateur identifié dans cette copie sécurisée ("bfricottin", et donc dans le dossier ~/.ssh/), et en nommant authorized_keys le fichier copie. authorized_keys2 pour référer au protocole ssh 2.0 est déprécié depuis 2001 : toutes les clés doivent être mémorisées dans le fichier authorized_keys

Pour en savoir plus sur ssh, voir http://kimmo.suominen.com/docs/ssh/ (copie de la page GettStartSSH-Kimm.html )