Créer un tunnel SSH

Certains sites Internet ne sont accessibles que depuis certains ordinateurs, serveurs ou domaines très précis. Par exemple, pour accéder à certains articles de revues par l'abonnement de l'ENS, on doit se connecter depuis l'un des ordinateurs de l'École. Cette contrainte permet d'être certain que seules les personnes autorisées pourront accéder à certaines données, après s'être préalablement identifiées au moyen d'un mot de passe.

Mais cet avantage a un inconvénient. Si vous êtes à l'étranger, ou si vous êtes tout simplement chez vous et ne pouvez vous rendre physiquement devant les ordinateurs en question, ces ressources vous sont inaccessibles...

Heureusement, il existe la technique du tunnel SSH. Celle-ci consiste à « creuser un tunnel » entre votre connexion et un serveur autorisé pour y faire passer les informations de manière sécurisée. En d'autres termes, vous allez :

  1. ouvrir une connexion sécurisée avec ce serveur (par exemple sas.eleves.ens.fr, à l'ENS) ;
  2. dire à votre navigateur de se brancher sur cette connexion ;
  3. vous connecter à des sites comme si vous étiez sur ce serveur.
Pour pouvoir ouvrir un tunnel SSH avec l'ENS, vous devez disposer d'un compte sur les machines de l'École.

Ouvrir le tunnel

Nous allons commencer par ouvrir le tunnel. La façon de procéder dépend du système d'exploitation que vous utilisez.

Avec Linux ou Mac OS X

Avec Linux ou tout autre dérivé d'UNIX (BSD, Solaris, Mac OS X, etc.), la procédure est sans doute la plus simple. Suivez les étapes suivantes pour mettre en place un tunnel SOCKS entre votre machine et la machine distante.

  1. Ouvrez un terminal, c'est-à-dire une fenêtre en mode texte permettant de taper des lignes de commande.
    Sous Mac OS X, pour ouvrir un terminal, allez dans Finder > Applications > Utilitaires > Terminal.
  2. Quand le terminal est ouvert, tapez dedans la ligne de commande suivante (faites un copier-coller si vous voulez être sûr de ne pas faire d'erreur) :
    toto@ordinateur $ ssh -ND 3128 monlogin@sas.eleves.ens.fr
    Attention !
    1. Ne tapez pas la partie « toto@ordinateur $ », qui est l'invite de commande ;
    2. remplacez « monlogin » par votre identifiant (login).
    3. Cette commande ne va rien afficher, il y a aura juste un curseur qui clignote. C'est normal, et cela veut dire que la connexion est active. Vous pouvez alors passer à la suite, et lorsque vous voudrez fermer le tunnel pour vous déconnecter, vous n'aurez qu'à faire Ctrl+C. Pour avoir une sortie plus détaillée, vous pouvez rajouter l'option -v à la commande précédente.
  3. Une connexion avec l'ENS va s'établir, en ouvrant un tunnel SSH. Donnez votre mot de passe. La première fois, on vous demandera si vous acceptez la clef SSH, afin d'éviter toute tentative d'usurper l'identité de la machine distante : vérifiez que le fingerprint indiqué est bien "d2:2f:2d:e6:22:17:16:1c:54:5f:e3:9a:0b:88:db:37" ou "e9:54:4a:e6:f8:51:e9:8b:90:d5:c9:b6:24:c0:4e:60" ou "2d:fe:8f:d2:10:1e:5d:7f:aa:d0:0f:d4:70:3e:fc:85" et si c'est le cas répondez « Yes ».
    Petite explication technique : la commande indiquée plus haut demande à ssh de créer un tunnel dynamique entre la machine locale et la machine distante (sas.eleves.ens.fr) en utilisant le port 3128. Tout le trafic arrivant sur ce port sur la machine locale sera redirigé sur la machine distante (option -D 3128). De plus, on dit à ssh de ne pas exécuter de commandes distantes avec l'option -N.
  4. Si ssh n'a pas signalé d'erreur, le tunnel est maintenant opérationel et vous pouvez passer à la section suivante. (Il est normal que ssh ne vous rende pas la main, ou qu'il vous rende la main sans ouvrir de shell sur sas.) Attention, vous ne devez pas fermer la fenêtre de terminal avant d'avoir terminé votre navigation, sous peine de devoir recommencer les étapes précédentes.
    Si vous voulez avoir plus d'informations sur la connexion SSH et l'état du tunnel, vous pouvez utiliser l'argument " -v " (à ajouter après ssh dans la ligne de commande précédente) qui donnera un log détaillé de ce que fait ssh. Dans ce cas, le signe que le tunnel est ouvert est la ligne "entering interactive session."

Avec Windows

Sur Windows 10, vous avez l'option d'activer la fonctionnalité expérimentale OpenSSH de Windows. Pour cela, allez dans "Paramètres > Applications > Gérer les fonctionnalités facultatives > ajouter une fonctionnalité > Open SSH Client (Beta)", puis redémarrez votre ordinateur.

Vous pouvez désormais utiliser les fonctionnalités ssh dans Windows Powershell. Les lignes de commandes indiquées pour Linux/macOS (ssh -D 3128 monlogin@sas.eleves.ens.fr) fonctionnent de la même façon.

Sur les autres distributions de Windows/sans activer OpenSSH :

Pour ouvrir un tunnel SSH depuis Windows, vous aurez besoin du logiciel PuTTY. Téléchargez le programme putty.exe à l'adresse http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html.

La première fois

Ouvrez le programme putty.exe.

Remplissez les champs suivants :

  1. dans l'onglet « Session » :
    1. Host name (or IP address) : sas.eleves.ens.fr
    2. Port : 22
    3. Protocole : SSH
    4. Saved sessions : ENS par tunnel SSH

      Configuration de l'onglet      Session

  2. dans l'onglet « SSH », puis « Tunnel »
    1. Source port : 3128
    2. Destination : www-cache.ens.fr:3128
    3. cliquer sur « Add »

      Configuration de l'onglet      Tunnel

      Vous verrez alors :

      Après configuration de             l'onglet Tunnel

  3. dans l'onglet « Session » :
    1. cliquer sur « Save ».

Les fois suivantes

Désormais, pour ouvrir le tunnel SSH, il vous suffira de cliquer deux fois sur « ENS par tunnel SSH ». Donnez votre identifiant (login) et votre mot de passe. La première fois, on vous demandera si vous acceptez la clef SSH, afin d'éviter toute tentative d'usurper l'identité de sas : vérifiez que le fingerprint indiqué est bien "d2:2f:2d:e6:22:17:16:1c:54:5f:e3:9a:0b:88:db:37" et répondez « Yes ».

Emprunter le tunnel

Que vous utilisiez Linux, Mac OS, Windows, FreeBSD ou autre, vous avez maintenant ouvert le tunnel. Le signe qu'il est ouvert, c'est la fenêtre de terminal ouverte. Attention, si vous fermez la fenêtre de terminal, le tunnel se fermera.

Il reste à emprunter ce tunnel. Pour cela, vous devrez configurer votre navigateur pour lui dire d'utiliser le proxy localhost avec le port 3128. Nous ne pouvons pas faire l'inventaire de tous les navigateurs qui existent, alors voici simplement comment faire pour les principaux. Pour les autres (Konqueror, Galeon, Epiphany, Mozilla, w3m...), cela ne devrait pas être très différent.

Avec Firefox pour Linux / Mac OS X

Allez dans Edit, puis Preferences, Advanced, Network et Settings :

Options de connection dans Firefox

Alternativement, allez dans Edit, puis Preferences, et enfin Connexion settings :

Options de connection dans Firefox

Si vous avez suivi la méthode pour Linux, indiquez à votre navigateur que vous voulez utiliser un proxy, en cliquant sur « Manual proxy configuration », puis en tapant localhost comme proxy SOCKS, et 3128 comme port :

Paramètres de connection dans Firefox

Avec Firefox pour Windows

Allez dans Edit, puis Preferences, Advanced, Network et Settings :

Options de connection dans Firefox

Alternativement, allez dans Edit, puis Preferences, et enfin Connexion settings :

Options de connection dans Firefox

Si vous avez suivi la méthode pour Windows, indiquez à votre navigateur que vous voulez utiliser un proxy, en cliquant sur « Manual proxy configuration », puis en tapant localhost comme proxy HTTP, et 3128 comme port :

Paramètres de connection dans Firefox

Avec Internet Explorer pour Windows :

Allez dans Options, puis cliquez sur l'onglet Connections ; cliquez sur le bouton « Paramètres réseau », comme indiqué sur l'image suivante :

Bouton Paramètres réseau

Ensuite, cochez la case « Utiliser un serveur proxy pour votre réseau local », et indiquez d'utiliser l'adresse localhost avec le port 3128 :

Adresse du proxy

Maintenant, le tunnel est ouvert, et votre navigateur est disposé à l'emprunter. Demandez-lui d'aller à l'adresse http://www.intranet.ens.fr pour vérifier son bon fonctionnement.

Reboucher le tunnel

Quand vous avez fini de consulter les sites qui nécessitent de passer par un tunnel SSH, et à ce moment seulement, vous pouvez le fermer. C'est comme si vous « rebouchiez » le tunnel après l'avoir emprunté. Il suffit pour cela de :

  1. retourner dans les options de votre navigateur, et de lui indiquer de ne pas utiliser de proxy.
  2. fermer la fenêtre de terminal avec laquelle vous avez ouvert le tunnel.

Quelques sites accessibles depuis l'ENS

Voici quelques-uns des sites dont l'accès est restreint à l'ENS :

L'ENS profite également de certaines offres commerciales, telles que des encyclopédies en ligne, des bases de données documentaires, etc. Notamment, depuis la bibliothèque électronique de l'ENS, vous aurez accès aux ressources d'« Accès réservé aux postes de l'ENS ».

Auteurs : Baptiste Mélès, Lionel Fourquaux, Lucas Verney. Dernière modification : 2014-04-12 par Phyks.