Warning

Cet article est vieux.

Au lycée je suis souvent confronté au proxy HTTP qui empèche la connexion à pas mal de trucs, IRC par exemple. Bien heureusement, SSH passe très bien par ce proxy.

Putty est un client SSH en GPL pour Windows qui propose des fonctionnalitées très avancées, dont la possibilitée de créer des tunnels passant par SSH. L’avantage est de pouvoir outre-passer les filtres du proxy, mais aussi d’avoir une connexion totalement chiffrée entre son ordinateur et le serveur ssh distant.

Pré-requis

  • Une machine sous Linux avec un serveur SSH qui tourne
  • Une machine sous Windows avec un putty qui tourne (Télécharger)

Configurer Putty pour se connecter au serveur SSH

Ouvrez donc Putty, vous tombez sur une fenêtre de configuration assez fournie: à gauche, une liste classée en catégories et sous-catégories, à droite, les options selon la catégorie.

Par defaut, on tombe sur la première categorie: Session. Remplissez le champ Host Name (or IP adress) et eventuellement le champ Port si le serveur SSH n”écoute pas sur le port 22 (par defaut):

/assets/posts/putty/howto_putty_ssh_tunnel1.jpg

Configurer Putty pour passer par le proxy (facultatif)

Si comme moi, vous utilisez les tunnels SSH pour passer un proxy, vous aurez besoin de configurer Putty pour passer par ce proxy. Rendez vous dans la sous-catégorie Proxy de la catégorie Connection.

Trois champs sont à renseigner, Proxy type qui correspond au type du proxy, pour ma part, HTTP. Proxy hostname, l”adresse du proxy, et Port le port du proxy (souvent, 8080):

/assets/posts/putty/howto_putty_ssh_tunnel2.jpg

Créer des tunnels sous Putty

Rendez vous dans la catégorie Tunnels de la sous-catégorie SSH. Deux champs sont à reperer: Source port et Destination. Pour bien comprendre quoi mettre dans ces champs, une petite explication s”impose:


Un tunnel, c’est quoi ?

Reprenons du début, vous voulez vous connecter à un serveur distant (On prendra l”exemple d”un serveur IRC), mais un proxy bloque le protocole IRC:

Votre ordinateur Serveur proxy Bloquant la connexion au serveur IRC Serveur IRC ---

Vous allez donc créer un lien, un “tunnel”, entre vous, et votre serveur SSH (qui se trouve chez vous par exemple) qui passe par le proxy:

Votre ordinateur Serveur proxy Laissant passer la connexion SSH Serveur SSH Serveur IRC

Pour le moment, nous avons configuré la connexion entre votre ordinateur et le serveur SSH, mais il nous manque encore à configurer la connexion entre le serveur SSH et le serveur IRC, et la connexion du client IRC (dans notre cas..) “sur” Putty.

Nottons aussi que si le tunnel permet de passer simplement le proxy, il est aussi totalement sécurisé. Si vous n”avez pas confiance dans le réseau dans lequel se trouve votre ordinateur, utiliser un tunnel est un bon moyen de transferer des informations de manière sécurisée.


Vous aurez dans la catégorie Tunnels, quelque chose qui ressemble à ça:

/assets/posts/putty/howto_putty_ssh_tunnel3.jpg
Dans le champ Destination, indiquez l”adresse et le port du serveur

avec lequel vous souhaitez communiquer, pour rester dans l”exemple d”IRC, c”est l”adresse et le port du serveur IRC. | Le champ Source port c”est le port sur lequel Putty écoutera, vous le verrez à la prochaine section, mais pour l”instant, choisisez un port non utilisé par votre ordinateur (vous devez étre administrateur sous Windows pour pouvoir utiliser un port inférieur à 1024).

Cliquez sur le bouton ADD pour ajouter le tunnel:

/assets/posts/putty/howto_putty_ssh_tunnel4.jpg

Vous pouvez ajouter plusieurs tunnels:

/assets/posts/putty/howto_putty_ssh_tunnel5.jpg

Connexion au serveur

Une fois la configuration terminée, cliquez sur le bouton Open en bas à droite de la fênetre de configuration pour vous connecter au serveur. Identifiez vous comme lors de n’importe quelle session SSH.

Configurer mon client pour qu’il utilise mon tunnel

Pour cela, rien de plus simple. Lors de la configuration du client pour se connecter, au lieu d”indiquer l”adresse du serveur distant, indiquez localhost ce qui correspond à l’hôte local, et utilisez le port indiqué dans le champ Source port.

Toujours dans notre exemple avec IRC, dans votre client, tapez /server localhost 8887 pour rejoindre irc.idevelop.org, /server localhost 8897 pour rejoindre irc.freenode.org etc…