Plop les loulous,
« Aujourd’hui on va aborder un sujet un peu « spécial », constituant une très bonne approche du protocole SSH. Vous allez apprendre ce qu’est un tunnel SSH. Vous allez voir ce que vous pouvez faire avec et comment vous en servir. Mais ce n’est cela qui le rend spécial. Ce qui rend ce très bon tuto spécial, c’est qu’il a été rédigé par Mr Antares. Je peux vous dire que ce n’est pas rien. Certains ici pourront vous le confirmer.
Je lui cède donc ma place et je vous laisse savourer son tutoriel en le remerciant encore une fois d’avoir bien voulu prendre un peu de son précieux temps pour nous faire ce joli cadeau.
Merci Antares et bonne lecture les loulous. »
Introduction à SSH volume I, par Antares :
1) La théorie
Noireaude a déjà parlé du service SSH et de la façon de le sécuriser, mais peut-être certains lecteurs ici ignorent-ils ce que c’est et à quoi il peut servir.
Je lui ai donc proposé de rédiger 2-3 articles introductifs sur SSH et ses applications.
SSH (Secure SHell, ou « terminal sécurisé ») est un système qui permet d’ouvrir une session (en console) sur une machine distante. Ce qu’on peut en faire sera détaillé dans un prochain article, mais je vais aborder ici une application intéressante connue sous le nom de « tunnel SSH ».
Prenons l’exemple d’une machine qui se trouve sur un réseau dit « hostile ». Le meilleur exemple est un HotSpot WiFi sans sécurité, mais le réseau de l’entreprise qui censure certains sites sera également considéré ici comme hostile.
Le but va être de se connecter à un serveur distant (au hasard : Facebook) non pas directement (soit pour ne pas se faire piquer son mot de passe, soit parce que le réseau l’interdit) mais en passant par un serveur SSH intermédiaire. Ce serveur intermédiaire peut être simplement une machine branchée sur votre box à la maison, sur laquelle tourne un serveur SSH.
On peut voir 2 choses sur la figure précédente :
– tout le trafic entre le client et le serveur SSH est chiffré, personne ne peut l’intercepter ni le décoder : ni un méchant pirate, ni l’administrateur du réseau hostile, ni votre FAI
– la connexion au serveur-cible (par exemple Facebook) est établie directement à partir du serveur SSH, donc via l’IP de votre box à domicile. Le filtrage sera le même que si vous surfiez directement de chez vous, c’est-à-dire probablement aucun.
Il y a donc plusieurs applications possibles :
– sécuriser son trafic pour éviter une interception
– contourner un filtrage de trafic sur le réseau local
– changer d’IP rapidement pour contourner une limitation (72 minutes par jour, ça vous dit quelque chose ?)
– Faire croire que vous êtes chez vous quand vous envoyez un mail depuis le boulot (ou l’inverse…)
– etc…
2) Tutoriel de mise en œuvre
Je vais maintenant montrer comment établir ce tunnel, sous un système Windows et Linux (je n’ai pas de Mac sous la main, mais ça devrait fonctionner comme Linux).
2.1 Windows
Commencez par télécharger Putty, qui est le meilleur client SSH sous Windows. Il existe au format standard ou en version « portable » pour ceux qui veulent le trimbaler sur une clé USB.
Précisez l’adresse IP de votre serveur (son adresse publique, par 192.168.1.42 !) et le port (22 est le port par défaut, il est conseillé de le changer). Vérifier que vous êtes bien en SSH.
Ensuite, créez le tunnel proprement dit via le menu SSH > Tunnels.
Ajoutez le port 1111 comme source (par exemple), cochez « Dynamic » et cliquez sur « Add ».
Désormais, le port 1111 de la machine sera renvoyé vers le serveur SSH !
Cliquez alors sur « Open », puis donnez votre login et votre mot de passe : la session SSH est désormais opérationnelle. Le tunnel que nous avons créé est un proxy SOCKSv5 à travers lequel on peut envoyer n’importe quelle application compatible, comme par exemple Firefox.
Dans Firefox, allez dans Outils > Options > Avancé > Réseau > Paramètres, puis cochez la case « configuration manuelle du proxy ». Remplissez seulement la dernière ligne (hôte SOCKS) avec 127.0.0.1 comme adresse et 1111 comme port (correspondant au port choisi dans Putty).
Validez et essayez de surfer : si les pages apparaissent tout est en ordre, vous pouvez vérifier via des sites comme whatsmyip.org que votre IP est bien l’IP publique de votre serveur SSH !
2.1 Linux
En bon linuxien, vous vous doutez bien qu’une simple commande suffit pour établir tout ca ! ?
La voici :
ssh -D 1111 -p 22 user@12.34.56.78
(remplacez bien sûr « user » et l’IP par ce qui correspond à votre serveur). Après avoir tapé le mot de passe, la session est ouverte et on peut configurer Firefox pour utiliser le proxy SOCKS ainsi créé.
C’est un peu différent de Windows, cette fois c’est dans Edition > Preferences > Avancé > Réseau > Paramètres qu’il faut aller renseigner 127.0.0.1 et 1111 comme port.
Notons que la technique s’applique à tous les programmes compatibles avec SOCKS : Thunderbird pour sécuriser POP/IMAP/SMTP, Pidgin pour sécuriser ses communications, Jdownloader et µtorrent pour sécuriser ses téléchargements légaux (ou être sûr de vous faire choper par HADOPI puisque vous utilisez votre IP personnelle), etc…
3) Le mot de la fin
Quelques remarques pour conclure :
– si vous utilisez souvent cette technique sous Windows et que vous ne voulez pas avoir une console inutilement ouverte en permanence, vous pouvez remplacer Putty par Kitty, qui peut entre autre aller se planquer dans le systray (à côté de l’horloge).
– Il n’est pas toujours facile de connaître l’IP de son serveur SSH, surtout quand l’IP publique est dynamique. On peut alors utiliser des systèmes comme DynDNS ou no-ip.com pour assigner un nom de domaine (qui pointera toujours vers la bonne adresse), et utiliser un client en local pour maintenir ce nom de domaine « à jour ».
– Comment installer un serveur SSH chez soi quand on n’a pas de machine dédiée ? On peut très bien utiliser une vieille machine de récup, un vieux portable dont l’écran est éclaté, … pour y installer un système minimal avec juste un serveur SSH. Pas très écolo, mais la sécurité des connexions est à ce prix.
Le mieux est encore de prendre un petit « plug computer » genre SheevaPlug ou Seagate Dockstar, qui consomme moins de 5W et suffit largement comme petit serveur personnel.
– Attention à la sécurité ! Noireaude a déjà écrit un article sur le sujet, j’y reviendrai avec plus de détails dans un prochain billet …
Voila pour ce premier article bien intéressant et instructif pour ceux qui ont apprécié, n’ayez crainte je vous met en lien vers le pdf original.
Moo !!!
Merci, c’est vrai que ce n’est pas tous les jours, il faut en profiter :).
Merci pour ce tuto qui permet d’y voir plus clair !
Merci pour ce que vous faites :-)
Un tuto par Antares c’est pas tout les jours :P
J’ai hate de voir le prochain billet ;)
Koala