Vous êtes sur la page 1sur 3

Module Complémentaire - Linux

TP 6 : Protocole SSH

1 Telnet
Exercice 1 (Création d’utilisateurs et connexion telnet)
1. Durant cet exercice, vous allez travailler en binôme. Une des deux machines sera le serveur et
l’autre servira au client.
(a) Commencez par créer un compte utilisateur pour le client sur votre le serveur, ne mettez pas
un mot de passe très confidentiel.
(b) Testez ce compte localement sur le serveur, (i.e. ouvrez une session).
(c) Installez le serveur telnet sur la machine serveur, le paquet s’appelle telnetd.
(d) Lancez le service avec la commande : sudo /etc/init.d/openbsd-inetd restart
(e) Connectez-vous avec la machine cliente sur le serveur en utilisant le service telnet.
2. Nous allons maintenant illustrer le fait que le service Telnet n’est pas très sur. En effet, tout circule
en clair sur le réseau.
(a) Installez le logiciel wireshark sur le client ou sur le serveur et lancez le en tant que super
utilisateur.
(b) Grâce au menu Capture, Interfaces, puis au bouton Start, lancez le packet sniffer : tout ce qui
sort ou entre dans votre carte réseau est maintenant affiché à l’écran. La fenêtre de wireshark
se décompose en 4 parties :
– Barre de filtrage,
– Fenêtre contenant la liste des trames capturées,
– Fenêtre d’affichage de la pile des protocoles décodés pour la trame sélectionnée,
– Fenêtre d’affichage brut de la trame sélectionnée,
Dans la barre de filtrage, il est possible de spécifier un filtre de sorte qu’une partie des trames
capturées ne soient affichées. Lancez une capture avec le filtre :
(telnet) and ( (ip.src == mon ip) or (ip.dst == mon ip))
(c) Tout en vous connectant à distance via telnet.
Est-il possible de retrouver le mots de passe de l’utilisateur ?
Est-il possible de retrouver tout ce qui a transité entre les deux machines ?

2 SSH
Le protocole SSH (Secure Shell) est un protocole de communication sécurisé entre des machines sur
un réseau. Il permet à partir d’un Linux client de se connecter à un autre Linux. Comme pour la plupart
des communications réseaux entre ordinateurs, il faut au minimum un serveur et un client. Le serveur
est la machine qui attend les ordres d’un ou plusieurs clients, tandis qu’un client est une machine qui
demande un ou plusieurs services au serveur.

Exercice 2 (Installation SSH)


1. Installez le paquet ssh, il contient normalement les paquets openssh-server et openssh-client.

1
2. Le serveur SSH doit être lancé automatiquement à la fin de l’installation, vérifiez qu’il est démarré
grâce aux différentes méthodes suivantes :
(a) Recherchez s’il existe un processus sshd (nom du programme serveur), s’il existe, par qui
a-t-il été lancé ?
(b) Saisissez la commande /etc/init.d/ssh status (où ssh est un script situé dans le répertoire
/etc/init.d/), que répond-elle ? Réitérez la saisie de cette commande cette fois sans l’argu-
ment status, que répond-elle ? À votre avis à quoi sert le script /etc/init.d/ssh ?
(c) La commande netstat -l affiche les ports en écoute sur votre machine, si le port du protocole
SSH (port 22) est en écoute, cela prouve-t-il que votre serveur est démarré ?

Exercice 3 (Premières connexions)


Une configuration par défaut est établie au moment de l’installation du serveur et du client SSH sur
votre machine. Il est donc immédiatement possible pour vous, de vous connecter à un serveur SSH
distant (dans ce cas, vous êtes le client). Il est aussi possible pour un utilisateur distant de se connecter
à votre ordinateur (dans ce cas, vous êtes le serveur).
1. En utilisant la commande ssh utilisateur@serveur (à ne pas confondre avec le script ssh du
répertoire /etc/init.d/), connectez-vous au compte de la machine serveur. Le serveur vous envoie
son fingerprint et nous pose une question, qu’est ce que cela signifie ?
2. Tapez la commande whoami pour vérifier qui vous êtes ! Regardez dans quel répertoire ssh vous a
connecté.
3. Créez un fichier dans le Bureau de votre voisin, à qui appartient-il ? (Pensez à touch).
4. Arrêtez-la connexion actuelle (commande exit).

Exercice 4 (Configuration du serveur et du client SSH)


Le serveur SSH, nommé sshd, se configure dans le fichier sshd config situé dans le répertoire /etc/ssh/.
La configuration du client SSH de votre machine se fait à travers plusieurs fichiers : le premier est
le fichier ssh config du répertoire /etc/ssh/, il contient toutes les options par défaut à appliquer au
client SSH. Les autres fichiers de configuration permettent d’ajuster la configuration selon l’utilisateur
qui utilise le client, ils se nomment config et se situent dans les répertoires cachés .ssh/ des répertoires
personnels des utilisateurs, par exemple /home/etudiant/.ssh/config. Ils sont prioritaires sur le fichier
ssh config.
1. Allez voir le contenu de sshd config et ssh config. A quoi servent les lignes :
– Port 22
– PermitRootLogin yes
– X11Forwarding yes
(pour plus d’infos, faites un man sshd config ou un man ssh config).
2. Affectez un mot de passe au root du serveur avec la commande sudo passwd root. Connectez
vous en tant que root sur le serveur depuis la machine cliente. Modifiez le fichier de configuration
de votre serveur de telle sorte que la connexion SSH via votre compte root soit interdite. Réessayez
de vous loguer en root.
3. Si votre voisin peut toujours se connecter en tant que root sur votre machine, c’est parce que les
modifications que vous avez faites dans le fichier de configuration n’ont pas été prises en compte
par le serveur sshd, pour cela vous devez : soit le recharger grâce à la commande /etc/init.d/ssh
reload, soit le relancer grâce à la commande /etc/init.d/ssh restart. Quand vous faites des
modifications dans le fichier de configuration du serveur, il est impératif de réaliser l’une ou l’autre
de ces opérations.
4. Redemandez à votre voisin d’essayer de se connecter en tant que root, s’il peut encore c’est que
votre configuration est erronée !

Exercice 5 (Copie de fichiers à distances)


Vous pouvez maintenant aisément vous connecter sur un compte d’un ordinateur distant. Mais vous ne
pouvez pas copier un fichier de votre ordinateur vers un ordinateur distant en utilisant la commande
ssh (et inversement). Cet exercice va palier à cette limitation.

2
1. Documentez vous brievement sur la commande scp grâce à la page d’aide de la commande ou sur
internet.
2. Copiez le compte rendu du tp précédent de votre ordinateur sur le Bureau de votre voisin. Puis
copiez un fichier présent sur la machine de votre voisin vers votre Bureau. Observez les droits de
ces fichiers.
3. Copiez un répertoire et son contenu de votre ordinateur vers la machine distante de votre voisin.

Exercice 6 (Exécution de commandes à distance et d’applications graphiques)


1. En une seule commande (c’est-à-dire sans connexion SSH préalable), récupérez la liste des processus
de l’ordinateur qui tourne sur la machine serveur.
2. Une machine distante peut lancer une application graphique. Connectez vous au serveur et lancer
firefox ? Que cela donne t-il ?
3. Quelle option de configuration du serveur SSH vous permet d’autoriser ou d’interdire l’envoi de
données de votre serveur graphique (un indice : sous Linux, le serveur graphique est souvent appelé
serveur X). Modifiez cette option pour autoriser l’utilisation de votre serveur graphique à distance
et lancez firefox depuis une machine cliente. Que se passe-t-il ?
4. Lancez firefox sur le serveur via ssh, et vérifiez que le processus firefox est en train de tourner
sur le Linux du serveur. Arrêtez-le depuis la machine cliente grâce à une commande envoyée au
serveur (et pas avec la croix en haut à droite !).

Exercice 7 (Lancement d’une application graphique sur un serveur graphique distant)


Il est possible d’exécuter une application graphique à partir d’une machine distante et que celle-ci se
lance sur la machine distante. Pour cela il faut modifier la variable d’environnement Linux qui indique
quel serveur graphique est utilisé : la variable DISPLAY. Lorsque vous vous connectez avec ssh sur un
compte distant, cette variable est par défaut réglée sur votre serveur graphique (ou elle n’est pas réglé
du tout selon la configuration).
1. Connectez-vous sur le compte de votre voisin.
2. Exécutez la commande echo $DISPLAY, cela affiche la valeur de la variable DISPLAY.
3. Exécutez maintenant la commande export DISPLAY=:0.0, cela permet de changer la valeur de
DISPLAY.
4. Essayer de lancer l’application graphique xmessage coucou en arrière-plan. Sur quel ordinateur
xclock est-elle affichée.
5. Sortez de la connexion ssh.
6. Arrêtez le processus xmessage de votre voisin.