| | Sécurité des réseaux |
R. Rioboo |
Année 2017-2018
|
|
Prise en main de ssh
Pour ce TP nous allons nous familiariser avec ssh et ses
fonctionalités. Nous utiliserons la machine sfr1.pedago.ensiie.fr que
nous appellerons simplement sfr1 dans la suite.
Exercice 1
Dans un terminal, connectez vous sur sfr1. Vous avez peutremarqué qu’on
vous a donné une empreinte cryptographie de la clé privée de la machine
pedago. Ceci devrait être vérifié car celà constitue une protection contre la
classique attaque «Man in the Middle» en vous permettant d’être sûr qu’il
s’agit bien de cette machine. Cette empreinte est ensuite stockée dans le
fichier ~/.ssh/known_hosts de votre machine pour ne pas avoir
à valider cette empreinte à chaque connexion.
Exercice 2
Ouvrez un nouveau terminal et connectez vous sur sfr1 par ssh, vous pouvez
remarquer qu’on vous demande votre mot de passe. Nous voulons éviter celà et
nous allons crééer notre clé privée. Lisez le manuel de la commande
ssh-keygen et crééez vos clés privées et publiques. La clé privée est
utilisée sur le client et la clé publique sur le serveur.Comme vous avez les mêmes fichiers sur sfr1 que sur les machines des salles
de TP, votre répertoire ~/.ssh est le même. Si vous travaillez
sur votre portable vous devrez éventuellement le crééer sur pedago en mode 700
et y transporter votre clé publique. Les fichiers créés par la génération de
clé se trouvent dans ce répertoire.
La clé privée est le fichier id_rsa et doit se trouver sur le client
(la machine qui fait le ssh). La clé publique est le fichier
id_rsa.pub et doit se trouver sur le serveur (la machine vers
laquelle on fait ssh) dans le fichier authorized_keys.
Vous pouvez maintenant vous connecter sur sf1 sans taper votre mot de passe
mais votre passphrase utilisée lors de l’exécution de la commande
ssh-keygen. L’authentification utilisée est dite «par challenge»
c’est à dire que le serveur utilise la clé publique autorisée du client pour
poser une question au client qui décode à l’aide de sa clé privée (le fichier
id_rsa) et donne la réponse.
Si vous travaillez avec votre portable vous pouvez utiliser les commandes
scp ou sftp (dont vous pourrez lire les manuels) sans avoir
à taper votre mot de passe pour transférer des fichiers.
Pour ne plus taper la passprase à chaque connexion ssh nouas pouvons
l’enregistrer à l’aide de la commande ssh-add.
Exercice 3
Les outils Xwindow fonctionnent en mode client/serveur et le serveur fait les
affichages demandés par les clients suivant le protocole X11. Le serveur
reçoit en général ses ordres sur le port 6000. C’est la variable
d’envirionnement DISPLAY qui indique au client quel serveur il doit
contacter. En lisant le manuel de la commande ssh faites en sorte de
pouvoir lancer des applications graphiques depuis la machine sfr1, vous
pourrez regarder la variable shell DISPLAY sur sfr1 et sur votre
machine.
Exercice 4
Le protocole ssh permet également d’avoir des «tunnels», c’est à dire
faire l’association entre un port de la machine client et un port de n’importe
quelle autre machine accessible depuis le serveur. Pour cela nous devons
éditer le fichier de configuration ssh du client soit
~/.ssh/config. En lisant le manuel du fichier
ssh_config vous trouverez la documentation de LocalForward
et vous pourrez rediriger le port 8080 de votre machine vers le port 80 de la
machine sfr2.pedago.ensiie.fr (sfr2). Vous pouvez vérifier que la
machine sfr2 n’est accessible que depuis sfr1.Pour vérifier, vous pourrez pointer votre navigateur sur l’url
localhost:8080 jusque ce que vous ayez la page d’accueil de sfr2.
Pour des raisons de sécurité la machine sfr1 ne peut pas joindre l’extérieur
mais potentiellement vous pous pouvez utiliser cette technique. De même la
machine sfr2 n’est pas accessible autrement que via sfr1
Exercice 5
Pendant que vous avez le fichier de configuration de ssh sous la main
vous en profiterez pour faire en sorte que les machines sur lesquelles vous
vous connectez puissent envoyer des fenêtres X11, c’est plus convivial. Au
besoin relisez le manuel ssh et en particulier ce qui concerne X11..
Exercice 6
Un serveur SOCKS offre la possibilité de multiplexer
plusieurs ports de destination sur un seul port source, la techique est connue
sous le nom de «deep packet embeedding» dans la mesure où on examine le
contenu des données envoyées afin d’en déterminer le protocole utilisé et de
transmettre les données sur le bon port.Par exemple une connexion identifiée comme du web sur le port 80 sera
transmise via le tunnel ssh comme du web sur le port 80 du serveur
que vous contactez via le tunneltextttssh. En relisant le manuel du fichier
ssh_config vous pourrez regarder la documention de l’option
DynamicForward qui permet de rediriger tous les ports vers le serveur
SOCKS implémenté sur votre client ssh
Pour expérimenter cette possibilité vous devrez paramétrer votre navigateur
afin d’utiliser un serveur proxy SOCKS sur votre machine locale et le
port dynamique que vous aurez choisi. Nous ne pouvons pas expérimenter cette
configuration depuis les machines de l’École puisque la navigation internet
requiert déjà un proxy.
Exercice 7
Revenons sur l’authentification par challenge, pour ce qui me concerne j’ai
des comptes dont je ne rappelle plus le mot de passe et la seule solution est
d’installer ma clé publique pour pouvir me loger sans mot de passe.Le fichier dans votre catalogue de configuration de ssh autorisant
les utilisateurs à se connecter sur votre compte se nommme
authorized_keys et il contient normalement une liste de ligne
décrivant les clé publiques autorisées à se connecter. Avec votre voisin(e) je
vous propose d’en ajouter une contenant la clé publique de l’autre, vous
pourrez ainsi constater que l’on peut se loger sur votre compte sans avoir
besoin de votre mot de passe.
Évidement et à moins d’avoir entière confiance en votre voisin(e) je vous
conseille d’enlever la ligne que vous avez ajoutée après l’expérimantation.
Exercice 8
Traditionnelement la cryptographie et la correction d’eereurs sont associées
aux techniques de compression de données que nous n’avons pas abordées mais
que vous avez déjà vues dans d’autres modules. Le protocole ssh
permet aussi de compresser les données qui transitent entre le client et le
serveur. Experimentez les différents niveaux de compression; surtout si vous
voulez le faire depuis chez vous
This document was translated from LATEX by
HEVEA.