Que ça soit à votre travail, chez vous, chez un ami, ou dans un cyber-café, on ne peut pas toujours garantir que vos données ne sont pas interceptées. Dans le cadre d'un autre billet nous approfondirons un peu plus le méthodes utilisées par la personne malveillante.

L'idée est donc de chiffrer les données entre vous et un serveur extérieur qui transmettra les données normalement et vous communiquera la réponse par le tunnel sécurisé.

Proxy SSH

Comme pré-requis, vous avez besoin de :

- Un serveur sur lequel vous avez un accès SSH (pour bien faire ce serveur doit être en dehors de votre réseau local) - Un client SSH (ex.: PuTTY pour Windows) - Un navigateur Web ou une application supportant la connexion Proxy Socks5

Ouvrir la connexion SSH

$ ssh -N -f -D 9555 login@host

Les paramètres :

  • -N : Ne pas exécuter de commande sur le serveur
  • -f : Bascule en arrière-plan
  • -D <port> : Défini le port local utilisé pour la connexion
  • login@host : Votre identifiant sur le serveur suivi de son ip ou nom d'hôte

Maintenant, configurez Firefox pour utiliser le proxy Socks5 localhost sur le port 9555.

Enjoy !

Maintenant, tous les accès que fera Firefox passeront dans le tunnel, chiffrés. Gardez en tête toutefois que la connexion entre votre serveur et le reste du monde n'est quand à elle pas chiffrée.

Redirection de port en SSH

Une autre option fort intéressante est le Port Forwarding. Admettons que vous êtes dans votre université, et que vous souhaitez utiliser un service qui est basé sur le port 5000.

Vous allez être bien embêté lorsque vous constaterez que la connexion à votre serveur sur le port 5000 est bloquée. Mais par contre, le port 22, lui, est ouvert.

Nous allons créer un tunnel entre vous et le port 5000 du serveur en passant par un serveur intermédiaire. De cette manière la connexion utilisera le port 22 et votre administrateur réseau ne vous bloquera pas.

Tunneliser une connexion

La commande est simple :

$ ssh -N -f -L 5000:123.45.67.89:5000 login@host

L'option -L défini d'abord le port local sur lequel ouvrir le tunnel, ensuite l'IP du destinataire et pour finir le port du destinataire. login@host correspondant à votre identifiant et l'adresse du serveur SSH que nous utiliserons.

Autrement dit, l'application qui cherche à sortir par le port 5000 rentrera dans le tunnel, en sortira par le serveur pour aboutir à son destinataire 123.45.67.89 sur le port 5000.

Pratique non ?