Chiffrer les connexions avec SSH

Pour les applications utilisant des protocoles simples basés sur TCP/IP, il est recommandé d’utiliser une sorte d’« emballage » pour chiffrer le trafic. La manière la plus simple est d’utiliser quelque chose à portée de main: SSH.

Encapsuler une connexion TCP/IP peut s’avérer utile lorsque vous voulez accéder à un serveur interne (derrière le pare-feu du CERN) depuis une station de travail située à l’extérieur du CERN. Un exemple de chiffrement X11 à l’intérieur de SSH est disponible ici, un autre exemple pour VNC se trouve ici. Cet exemple montre comment accéder à un site Web qui ne peut pas être consulté depuis l’extérieur du CERN.

forwarded HTTP session

Si un site Web ne peut pas être consulté depuis l’extérieur du CERN, vous devez encapsuler le protocole HTTP dans une connexion SSH chiffrée vers un hôte du CERN. Cet hôte le fera suivre au serveur Web à votre place.

La méthode pour encapsuler la connexion HTTP est la suivante:

  1. Sélectionnez le serveur cible, par exemple website.web.cern.ch, qui exécute le service Web. Vous devez aussi connaitre le port du service sur le serveur cible, généralement 80 ou 443 (HTTPS).

  2. Sélectionnez un serveur SSH de confiance à l’intérieur du CERN, par exemple lxplus.cern.ch.

  3. Etablissez une connexion SSH depuis votre station de travail vers le serveur SSH de confiance avec une redirection de port local (« local port forwarding »).

  4. « Browser » votre station de travail locale, sur un port local de votre station de travail.

L’option redirection de port local spécifie que le port donné sur l’hôte (client) local doit être redirigé vers le serveur cible et le port cible donnés de la machine à distance. Cela fonctionne en allouant un « socket » pour écouter sur le port de la machine locale, et à chaque fois qu’une connexion est effectuée sur ce port, la connexion est redirigée à travers le canal sécurisé, et une connexion est effectuée vers le serveur cible et le port cible de la machine à distance.

Utiliser un tunnel avec une station de travail Linux

Vous avez besoin d’un terminal Windows et d’un navigateur Web pour établir cette connexion sécurisée:

  • Depuis le terminal Windows: $ ssh -L 2080:website.web.cern.ch:80 lxplus.cern.ch Vous devez vous connecter à LXPLUS en utilisant votre mot de passe.

  • Sur votre navigateur Web, entrez l’URL suivante: http://localhost:2080/website/ Vous pouvez consulter le site Web inaccessible website.web.cern.ch.

Vous pouvez utiliser l’option verbose dans le client SSH pour debugger l’activité. Vous verrez les lignes suivantes après que vous vous êtes connecté au serveur SSH:

	$ ssh -v -L 2080:website.web.cern.ch:80 lxplus.cern.ch
...
  debug1: Connections to local port 2080 forwarded to remote address website.web.cern.ch:80
  debug1: Local forwarding listening on 127.0.0.1 port 2080.

Et quand la session telnet a commencé:

debug1: Connection to port 2080 forwarding to website.web.cern.ch port 80 requested.

Si tout fonctionne parfaitement vous pouvez optionnellement configurer votre client SSH pour utiliser Kerberos ou l’authentification PKI, afin qu’on ne vous demande pas de mot de passe pour établir la connexion. Dans ce cas, vous pouvez installer une redirection de port comme processus de fond: $ ssh -q -N -L 2080:website.web.cern.ch:80 lxplus.cern.ch

Vous pouvez obtenir plus d’informations concernant l’option de redirection de port local depuis les pages de manuel de SSH ou ssh_config.

Cet configuration est optimal si vous ne connectez d'habitude au meme ordenateur depuis hors CERN, ou si vous utilisez different origins. Si vous connectez souvent depuis les memes origins aux memes cibles, lisez comment faire les tunnels automatiquement et faire le login en un seul pas.

Utiliser un tunnel avec un PC Windows

Il existe plusieurs clients SSH pour Windowsque vous pouvez utiliser. Ici nous vous donnons un guide pour PuTTY qui est très facile à installer sur n’importe quelle machine et disponible via CERN NICE.

  1. Vous devez configurer le serveur SSH:

    putty ssh session to
      lxplus.cern.ch

  2. Ajoutez une spécification pour la redirection dans le menu « Connexion/SSH/Tunnels »:

    putty local
      port forwarding settings

  3. N’oubliez pas de cliquez sur “Add” avant d’ouvrir la connexion!

    putty local port
      forwarding settings

Si vous préférez la ligne de commande, alors vous pouvez utiliser plink, similaire au client SSH sur une station de travail Linux:

  1. Start → Run... → Open: "cmd" C:\> plink -ssh -L 2080:website.web.cern.ch:80 lxplus.cern.ch

  2. Ouvrez votre navigateur web et consultez: http://localhost:2080/website/

Remarques

  • Seule la “root” peut rediriger les ports privilégiés, il est donc mieux de choisir un numéro de port plus grand que 1024 comme port local.
  • Le port local sur votre station de travail sera seulement visible pour l’hôte local, vous ne pouvez donc pas vous y connecter depuis un deuxième ordinateur.
  • La connexion TCP entre le serveur SSH et le serveur cible ne sera pas chiffrée ! Si vous ne faites pas confiance au réseau entre ces deux machines, n’utilisez pas cette approche ! Mais...
  • ... vous pouvez configurer le serveur SSH et le serveur cible de manière à ce qu’ils soient le même, vous n’utiliserez aucune connexion réseau chiffrée (elle est à l’intérieur du serveur), par exemple: $ ssh -L 2080:lxplus.cern.ch:23 lxplus.cern.ch