Vous êtes sur la page 1sur 10

Services Réseaux

TP 3
Service SSH
1. Mise en garde
Les TP réseaux sont difficiles pour plusieurs raisons :
 l’interaction avec la machine n’est pas toujours triviale ;
 trouver l’erreur commise peut s’avérer long et fastidieux ; le temps perdu ne se
rattrape pas ;
En conséquence :
 soyez attentif à ce que vous faites lors de la configuration des machines ;
 soyez attentif à votre voisin, sachez travailler ensemble et suivez le rythme de
progression de la salle ;
 soyez calme et discret : le bruit est le principal élément perturbateur et nuit
gravement à la compréhension ; la quiétude dans une salle de TP permet d’éviter de
nombreuses erreurs.
Remarques préliminaires :
 utilisez Ctrl & Alt & F1-6 pour passer d’une console à l’autre ; l’utilisation de
l’interface graphique de Linux est autorisée uniquement pour les analyses réalisées
avec Wireshark ;
 le seul éditeur de texte autorisé pendant les TP est vi !
 une fois connectés en tant que root changez le mot de passe de root en utilisant la
commande passwd (vous éviterez ainsi d’être perturbés par les éventuelles
mauvaises blagues de vos collègues).

2. Objectifs du TP
1. Configurer un client et un serveur SSH.
2. Transférer des fichiers de manière sécurisée.
3. Gérer l’infrastructure à clés publiques.
4. Créer des tunnels pour sécuriser d’autres services réseaux.

3. Matériel mis à disposition et architecture du réseau


Vous disposez de 11 machines GNU/Linux Debian connectées en réseau au moyen d’un
commutateur. Les adresses IP des machines sont indiquées dans le tableau 1. Vous pouvez vous
connecter avec le login elec et le mot de passe est elec. Le même mot de passe sert aussi pour
le compte root.

Nom machine Adresse IP


champagne 172.18.107.79
montlouis 172.18.107.69
chinon 172.18.107.70
bourgueil 172.18.107.71
aubance 172.18.107.72
fitou 172.18.107.73
vouvray 172.18.107.74
layon 172.18.107.75
bergerac 172.18.107.76
madiran 172.18.107.77
saumur 172.18.107.78
Tab. 1 – Caractéristiques des machines connectées en réseau

1
4. Configuration de la carte réseau
Question : Vérifier que l’interface réseau est configurée de manière dynamique et utiliser le
fichier /etc/hosts pour configurer la résolution de nom pour votre machine et la machine
champagne sachant que le domaine est str.tp. Tester le réseau à l’aide de la commande ping.
Réponse

5. Connexion SSH
Pour toute connexion à un autre ordinateur, il est conseillé d’utiliser des systèmes sécurisés
qui assurent la confidentialité des informations qui transitent sur le réseau. Le service SSH
permet de communiquer de façon sécurisée, en établissant un canal de communication entre un
serveur SSH et ses clients. Ce service écoute les requêtes adressées par les clients sur le port 22.

Question : Le démon sshd est-il actuellement en exécution sur la machine ? Comment faire
pour arrêter ou démarrer ce service ? Vous connecter ensuite à distance sur la machine
champagne en tant que elec et vous reconnecter depuis champagne sur votre machine en SSH
en tant que root. Fermer ensuite la session SSH et retrouver les clients qui se sont connectés
récemment sur votre serveur SSH ?
Réponse
Pour connaître les services à l’écoute, et ceux qui sont actifs, vous pouvez utiliser la
commande netstat.
Pour arrêter ou démarrer le service SSH :
/etc/init.d/ssh start(stop,restart)
Pour connaître les clients qui se sont connectés récemment sur votre serveur SSH, vous
pouvez utiliser la commande last.

Question : En tant que root créer un utilisateur nom_binome sur votre machine (utiliser
les commandes groupadd, useradd et passwd ; créer ensuite son répertoire de connexion et y
déposer un répertoire de test contenant quelques fichiers). Ne pas oublier d’attribuer les droits
appropriés aux répertoires et fichiers que vous venez de créer.
Réponse

2
Question : Fermer la session courante et en ouvrir une autre en tant que nom_binome sur
votre machine. Regarder le contenu du fichier /home/nom_binome/.ssh/known_hosts.
Vous loguer ensuite par SSH, en tant que elec, sur la machine champagne. Analyser le
message qui apparaît.
Sur la machine distante, tester différentes commandes du shell telles que : hostname,
whoami ou logname.
Revenir ensuite sur votre machine en utilisant la commande exit. Consulter à nouveau le
fichier /home/nom_binome /.ssh/known_hosts et indiquer la signification de son contenu.
Tester la commande pour effacer la clé du serveur sur lequel vous venez de vous connecter.
ssh-keygen -R champagne
Se connecter deux fois de suite en SSH sur la machine champagne afin de constater l’effet
de cette opération.
Réponse

Question : Vous loguer par SSH, en tant que elec, sur la machine champagne. Exécuter la
commande graphique xclock ou xclock&. Vous déconnecter et modifier le fichier de
configuration du client SSH etc/ssh/ssh_config de la manière suivante :
ForwardX11 no
Vous reloguer par SSH, en tant que elec, sur la machine champagne et exécuter à nouveau
les mêmes commandes graphiques. Que peut-on constater ? Comment régler le problème ?
Réponse

3
6. SCP, secure copy
La commande scp (secure copy) permet de copier des fichiers et des arborescences, en
utilisant SSH pour sécuriser les transferts. La syntaxe de cette commande est la suivante :
scp [-r] source destination
Si les fichiers sont locaux, on utilise la syntaxe habituelle. S’ils sont distants, la notation est
celle de SSH où source ou destination apparaît sous la forme :
utilisateur@serveur:chemin-absolu-vers-fichier

Question : En utilisant scp, copier un fichier du répertoire de test distant (/home/elec)


dans le répertoire personnel de votre utilisateur. Effectuer ensuite l’opération inverse. Copier
enfin tout un répertoire de test sur la machine distante.
Réponse

7. SFTP, secure FTP


SFTP signifie protocole de transfert de fichier sécurisé. Ce n’est pas un client FTP, mais un
outil fondé sur SSH (et donc sshd) dont les commandes utilisateur s’inspirent du protocole FTP
et qui est utilisé pour transférer des fichiers à travers le réseau.
Le fait que SFTP n’utilise pas de démon FTP (ftpd) permet une amélioration significative
de la sécurité du système. Beaucoup d’attaques réseaux ont en effet comme cible le démon
ftpd.
La syntaxe de sftp est la suivante :
sftp nom_utilisateur@serveur_SSH

Question : Se connecter via SFTP à la machine champagne et opérer un transfert. A l’aide


de Wireshark, visualiser le trafic lié au protocole SSH. Quels ports sont utilisés par le client et le
serveur ? Quelle est la version de SSH utilisée ? Peut-on capturer le mot de passe utilisé pour
l’authentification ?
Réponse

4
8. Authentification
8.1 Génération de clefs personnelles
La commande ssh-keygen permet de créer des clefs personnelles, propres à chaque
utilisateur.
Question : En tant qu’utilisateur nom_binome, générer de nouvelles clefs RSA et protéger
la clé privée par une passphrase secrète. Quels sont les fichiers créés par cette commande et
quels sont les droits associés (regarder le répertoire /home/elec/.ssh/) ?
Réponse

8.2 Authentification par clé


Comme vous avez pu le remarquer, lors de la connexion, l’authentification de l’utilisateur
sur la machine distante se fait grâce au mot de passe de l’utilisateur. Une seconde méthode
d’authentification est possible grâce à la clef publique personnelle du client. Cette méthode
suppose que le serveur SSH connaît la clef publique du client qui vient se connecter. Il faut donc
faire en sorte que la clef publique du client se trouve dans le fichier
/home/nom_binome/.ssh/authorized_keys du serveur.

Question : Quel est l’effet des lignes de commande ci-dessous (nom_binome a été
remplacé par nom pour simplicité) :
scp /home/nom/.ssh/id_rsa.pub elec@champagne:/home/elec/.ssh/clef
ssh elec@serveur_SSH
cd .ssh
cat clef >> authorized_keys
Réponse

Question : Copier de manière sécurisée la clef publique du client sur le serveur en utilisant
la commande suivante :
ssh-copy-id -i /home/nom_binome/.ssh/id_rsa.pub elec@champagne
Vérifier que la clef a bien été copiée dans le fichier authorized_keys.
Réponse

5
Question : Vous connecter en tant que elec au serveur SSH. Quelle méthode
d’authentification est utilisée ?
Réponse

8.3 Pour les fatigués du clavier


Il est possible de créer des alias pour ne pas avoir à entrer tous les paramètres à chaque
tentative de connexion.

Question : Compléter le fichier home/nom_binome/.ssh/config afin de faire apparaître


les lignes suivantes :
Host elechampagne
User elec
HostName champagne.str.tp

Tester ensuite la connexion en utilisant :


ssh elechampagne

9. Exécution d’une commande à distance


Cette possibilité est très utile pour lancer rapidement un service à distance (contrôle d’un
serveur à distance), ou pour récupérer des données distantes par l’intermédiaire d’un script. La
syntaxe est la suivante :
ssh –n nom_utilisateur@serveur_SSH commande_ou_script_shell

Question : Configurer et démarrer un serveur SSH sur votre machine en autorisant les
connexions en tant que root. Vous loguer ensuite à distance sur la machine champagne en tant
que elec et démarrer et tester depuis champagne le serveur VsFTP sur votre machine.
Réponse

10. Tunnels SSH


La dernière vocation de SSH est de créer des tunnels chiffrés pour assurer la confidentialité
d’autres services. Deux méthodes fournissent un résultat similaire (cf. figure 1 et 2) :
1. le transfert de port local ;
2. le transfert de port distant.

6
10.1 Syntaxe du transfert de port

10.1.1 Transfert de port local


Pour rediriger un port de la machine locale à travers SSH vers un port cible d’une machine
cible, il faut utiliser la syntaxe suivante :
ssh -L port-local:machine-cible:port-cible user@serveur_SSH
L’option -L permet de transférer un port de la machine locale. Dans ce cas, le client du
service transféré se situe du même côté que le client SSH. Le serveur SSH utilisé est localisé sur
le serveur du service que l’on cherche à rendre confidentiel.

10.1.2 Transfert de port distant


Pour rediriger un port de la machine distante à travers SSH vers un port cible d’une machine
cible, il faut utiliser la syntaxe suivante :
ssh -R port-distant:machine-cible:port-cible user@serveur_SSH
L’option -R permet de transférer un port de la machine distante. Dans ce cas, le client du
service transféré se situe du même côté que le serveur SSH. Le client SSH utilisé est localisé sur
le serveur du service que l’on cherche à rendre confidentiel.

Fig. 1 – Transfert de port local depuis la machine A vers B.

7
Fig. 2 – Transfert de port distant depuis la machine A vers B

10.2 Sécurisation de la navigation web


Question : Sécuriser la navigation Web depuis votre machine à l’aide du transfert de port
local. Utiliser le serveur SSH installé sur la machine champagne et le proxy de l’UBO
proxyubo.univ-brest.fr, qui répond sur le port 3128. Sur votre machine choisir un port
quelconque et configurer le proxy de manière adéquate. Vérifier ensuite le fonctionnement du
tunnel en utilisant votre navigateur Web.
Réponse

Question : Sécuriser la navigation Web depuis la machine champagne.str.tp à l’aide du


transfert de port distant. Utiliser le serveur SSH installé sur la machine champagne et le proxy
de l’UBO proxyubo.univ-brest.fr, qui répond sur le port 3128. Sur la machine
champagne choisir un port quelconque et configurer le proxy de manière adéquate. Vérifier
ensuite le fonctionnement du tunnel en utilisant le navigateur Web de la machine champagne.
Réponse

Vous aimerez peut-être aussi