R4B10 - TP 3
Tour des fonctionnalités de SSH
1. Introduction
Au cours de ce TP vous allez devoir revoir la configuration des
interfaces réseaux et l'utilisation de l'outil de connexion à
distance ssh
qui implémente le protocole de même nom, qui vous a
été présenté lors de la SAÉ 303 et un cours cours-03-ssh.pdf.
ssh
est le couteau suisse de l'administration système. Connaître
son fonctionnement est ses fonctionnalités est indispensable pour
tout informaticien.
2. Préparation de l'environnement
Machine de travail
Vous devrez exécuter tout le TP sur la machine dattier
. Pour cela
connectez sur cette machine via la commande ssh -X dattier
dans
votre terminal de travail.
Dossier de travail
Créez un dossier pour le TP dans votre dossier personnel (par exemple
~/r4b10/ssh
).L'intégralité du TP devrait être fait dans ce dossier !
- Copiez l'intégralité du dossier
/home/public/r4b10/ssh
dans le dossier de votre TP.
Machine virtuelle
Sur votre machine physique créez une machine virtuelle nommée
r4b10-ssh
puis démarrez là.Les commandes à utiliser doivent être :
vmiut creer r4b10-ssh vmiut run r4b10-ssh
Votre machine virtuelle possède 1 Mo de mémoire, un disque dur virtuel de 10 Go sur lequel une version de Debian Bookworm (12.2) et est préinstallée avec 2 utilisateurs :
root
avec comme mot de passeroot
user
avec comme mot de passeuser
Par ailleurs la configuration réseau de cette machine est obtenue par un appel à DHCP et l'empreinte de sa clé SSH pour l'algorithme ECDSA est
SHA256:pIQ72AO/u2dJwwmpjteTC//uKPPnx9ywJ80+4F5jBJg
.Vous pouvez accéder à la console de votre machine virtuelle via
vmiut show r4b10-ssh
et voir les détails de la de machine avecvmiut info r4b10-ssh
.Après vous être connecté en tant que
root
sur votre machine virtuelle et en appliquant ce que vous avez appris lors du moduleR306
de M. Peter, modifiez la configuration de l'interface réseau principale (enp0s3
) pour que son adresse IP soit10.42.N.1
avecN
remplacé par le numéro d'ordre de votre machine physique dans la salle.Si votre mémoire est défaillante reportez-vous aux pages
interfaces(5)
etifup(8)
.- Après avoir lu la page
hostnamectl(1)
, modifiez le nom de votre machine pour qu'elle ait comme nomssh
. Mettez à jour les logiciels installés sur votre machine virtuelle, puis installez un serveur
apache2
et le navigateur webfirefox-esr
.Si votre mémoire est défaillante reportez-vous aux pages
apt(8)
ouapt-get(8)
.
3. Connexion à la machine virtuelle
Génération de clés
Dans votre dossier de TP, générez deux paires de clés identifiées
par ./ssh/premiere
et ./ssh/seconde
. Toutes les deux doivent
avoir avec comme passphrase ssh
. La première doit être de type
RSA et la seconde de type ECDSA. Chacune doit avoir comme
commentaire leur nom respectif (i.e. premiere
et seconde
).
Mise en mémoire de la clé privé
Ajoutez vos deux clés dans la liste des clés contrôlées par votre agent SSH.
Autorisation de connexion comme user
sur la machine virtuelle
En utilisant ssh-copy-id
ajouter la clé identifiée par
./ssh/premiere
, comme clé publique autorisée pour l'utilisateur user
sur la machine virtuelle.
Sans utiliser ssh-copy-id
ajouter la clé identifiée par
./ssh/seconde
, comme clé autorisée pour l'utilisateur user
sur la
machine virtuelle.
Vérifiez que vous êtes capable de vous connecter à la machine
machine virtuelle en tant que user
avec chacune des deux identités.
Autorisation de connexion comme root
sur la machine virtuelle
Sans modifier la configuration du serveur ssh distant (i.e. le
fichier /etc/ssh/sshd_config
de la machine virtuelle), ajoutez la
clé identifiée par ./ssh/premiere
, comme clé autorisée pour
l'utilisateur root
sur la machine virtuelle.
Vérifiez que vous êtes capable de vous connecter à la machine
machine virtuelle en tant que root
avec cette identité.
Comment avez-vous fait ?
Pourquoi ne peut-on pas directement copier la clé dans le fichier
/root/.ssh/authorized_keys
de la machine virtuelle ?
Droits sur la clé privée
Changez les droits de la clé privée ./ssh/premiere
pour que tout
le monde puisse la lire (644
par exemple).
Essayez de vous connecter avec cette identité (./ssh/premiere
) sur la
machine virtuelle en tant que user
.
Cela est-il encore possible ? Pourquoi ?
Supprimez la clé de la mémoire de l'agent et ré-essayez de vous
connecter avec cette identité (./ssh/premiere
) sur la machine
virtuelle en tant que user
.
Cela est-il encore possible ? Pourquoi ?
Chiffrement de clé privée et vols de clés
La présence dans votre dossier de travail des clés identifiées par
prout
et tourp
simule le vol de paires de clés d'un tiers :
vous avez récupéré 2 paires de clés ne vous appartenant pas (celle
de M. PROUT et celle de Mme TOURP).
L'identité prout
de votre dossier de travail est une clé RSA
sans passphrase. L'identité tourp
de votre dossier de travail
est une clé RSA avec passphrase.
Essayez, pour chacune de ces 2 identités, de les ajouter comme clé
publique autorisée pour l'utilisateur user
de la machine
virtuelle puis soit de vous connecter avec ces identités
(c'est-à-dire de vous faire passer pour le propriétaire de la clés,
i.e usurper son identité) soit d'ajouter les clés dans la
mémoire de votre agent
Pensez à ce que vous avez compris de la question précédente avant vos essais de connexion.
Pour laquelle la connexion (ou l'ajout dans la liste de la'agent) a fonctionné ? Pourquoi ?
4. Limitation d'accès
Lisez la section AUTHORIZED_KEYS FILE FORMAT
de sshd(8)
.
Faites en sorte que la seule commande exécutée sur la machine
virtuelle quand vous tentez de vous y connecter en tant que user
avec l'identité ssh/premiere
soit un affichage du message
Utilisation disque
suivi du résultat de l'appel de la commande
df
limité à la ligne correspond à la partition /dev/sda1
.
Essayez ensuite de vous connecter sur la machine virtuelle avec
chacune des 2 identités ssh/premiere
et ssh/seconde
.
Quel résultat de connexion différent obtenez-vous ?
5. Raccourcis
Après avoir lu ssh_config(5)
faites en sorte que l'appel de la
ligne ssh espace
lance une connexion directe à la machine
virtuelle en tant que user
avec l'identité ssh/premiere
et
affiche donc l'utilisation de l'espace disque de la partition
/dev/sda1
de la machine virtuelle comme vous l'avez mis au point
dans l'exercice précédent.
6. Transfert en tous genre
Copie vers la machine virtuelle
Sur la machine virtuelle, remplacer le fichier
/var/www/html/index.html
par celui que vous avez récupéré en
début de TP en utilisant la commande scp
.
Affichage déporté
En étudiant ssh(1)
, déterminez puis exécutez une ligne de
commande permettant d'exécuter firefox sur la machine virtuelle en
tant que user
mais de déporter son affichage (considéré comme
géré par le système X11) sur l'écran de votre machine physique.
Faites en sorte que cette commande soit exécutée en arrière plan sur votre machine physique.
Vérifiez que la copie de la question précédente a bien fonctionnée en naviguant avez cette instance de firefox vers l'adresse http://localhost.
Transferts de connexion
Exécutez une ligne de commande permettant uniquement de rediriger toutes les connexions arrivant sur le port 8888 de la machine locale vers le port 80 de la machine virtuelle. Aucune commande ne doit être exécuté par ssh sur la machine virtuelle.
Dans une instance de Firefox sur votre machine physique vérifiez que votre transfert de connexion fonctionne en naviguant vers l'adresse http://localhost:8888. Si le transfert fonctionne vous devez voir la même page que celle observée lors de la question précédente
7. Nettoyage de l'environnement de travail
Supprimez votre machine virtuelle via la commande vmiut rm r4b10-ssh
.