S52 - TP1 - Utilisation du réseau sous Unix et pratique de SSH
Objectif
L’objectif de ce TP est double : (1) Etudier la configuration réseau (de base) existante d’une machine sous linux et (2) mettre en place un outils de connexion et de transfert de fichier sécurisé (ssh).
dhclient
.
Installer le réseau virtuel NetDemo : Un réseau virtuel.
Etude de la configuration réseau de votre machine
On se propose d’analyser la configuration réseau de plusieurs machines basées sur Ethernet et les services Internet offerts.
Pour chacun des fichiers ci dessous vous regarderez la page du manuel (commande man
), vous regarderez son contenu sur votre machine physique et les deux machines virtuelles serveur et client. Vous ferez les liens avec les notions vues en cours.
les fichiers de configuration
- Fichier
/etc/hosts
: Afficher son contenu (en utilisant la commandeless
). A quoi sert ce fichier (man hosts
) ? Pourquoi ne contient-il pas le nom de l’ensemble des machines de l’université ? - Fichier
/etc/resolv.conf
: Afficher son contenu. Qu’indique ce fichier (man resolv.conf
) ? - Fichier
/etc/network/interfaces
: Afficher son contenu. A quoi sert ce fichier ? Comparer sur les trois machines. A quoi correspond l’entrée loopback ? - Fichier
/etc/services
: Afficher son contenu. A quoi sert ce fichier ? Retrouver le numéro de port des services telnet, ftp et SMTP. - Fichier
/etc/protocols
: Afficher son contenu. A quoi sert ce fichier ? A quelle couche correspondent ces valeurs ? - Fichiers
/etc/xinetd.conf
(ou/etc/inetd.conf
) : Afficher son contenu. A quoi sert ce fichier ?
Les commandes liées à la configuration
- Commande
/sbin/ifconfig
: En utilisant le man expliquer à quoi sert cette commande. Combien d’interfaces Ethernet possède chaque machine ? A quoi sert l’interface lo ? A quoi correspond le paramètre MTU ? Quelle est sa valeur ? Quelle est la valeur du masque réseau ? Quelle est la classe du ou des réseaux IP ? Quelle est l’adresse IP de broadcast ? - Commande
netstat
: Expliquer le rôle de la commandenetstat
.- A l’aide de l’option :
netstat -a
retrouver les services UDP et TCP actifs sur votre machine ainsi que la liste des connexions TCP en cours. Remarquer la notation host.numero port et l’état courant d’une connexion TCP. (cf. Annexe). - A l’aide des options :
netstat -nr
préciser les passerelles liées à votre machine, quel est leur rôle ? Comparer avec la commanderoute -n
. Pourquoi mettre l’option-n
?
Utilisation de ssh
sshd est un serveur qui permet de communiquer de façon sécurisée, en établissant un canal de communication entre lui et ses clients. Il s’éxecute seul (et non comme telnet et ftp via xinetd ou inetd) et attends les connexions des clients sur le port 22.
Pour en savoir plus sur le serveur ssh, lire en détail man ssh. Les fichiers de configuration sont placés dans /etc/ssh/
(globalement) et dans ~/.ssh/
(pour chaque utilisateur).
Connexion à distance avec ssh
La syntaxe de la commande est la suivante : ssh user@server
, user
étant un compte valide existant sur server
.
Depuis la machine hôte, connectez-vous au compte user/user
de client
. A quoi correspond la question qui est posée lors de la première connexion ?
Vous êtes dans la même situation qu’avec telnet, prise de contrôle à distance. Vous testerez quelques commandes (listage de répertoires, …).
Consultez le répertoire .ssh
sur votre machine. Que contiennent les fichiers ?
Connectez-vous au compte root/root
de serveurlinux. Que constatez-vous ?
Tranfert de fichiers avec scp
La commande scp
(secure copy), permet de copier des fichiers et des arborescences, en utilisant ssh pour sécuriser les transferts.
La syntaxe générale est scp [-r] source destination
, où source
et destination
désignent respectivement l’ensemble des fichiers à copier
et le répertoire d’accueil. source
et destination
peuvent avoir la forme suivante [user@machine:]chemin
. user
et machine
sont les paramètres normaux de la commande ssh et chemin
est un chemin absolu (sur machine
) ou relatif au répertoire home de user
sur machine
.
Exemples classiques :
scp -r monLogin@monServeur:monDossierDistant monRepertoireLocal
permet de copier localement le répertoiremonDossierDistant
(situé dans le répertoire home de l’utilisateurmonLogin
du serveurmonServeur
. Ce repertoire sera renommé localement enmonRepertoireLocal
. Attention, si le répertoire destination existe déjà la copie se fera l’intérieur.scp -r monRepertoireLocal monLogin@monServeur:monDossierDistant
permet de déposer des fichiers locaux sur un serveur distant.
A partir de la machine hôte, créer un répertoire Test
qui contient les fichiers f1
et f2
. Copier le répertoires Test
sur le compte user
de la machine client
.
Créer un fichier titi.txt
sur la machine client
et à partir le machine hôte, le copier localement en le renommant toto.txt
en une seule commande.
Connexion avec une paire de clés
ssh autorise un autre mécanisme d’authentification utilisant une méthode cryptographique à clé publique.
Chaque utilisateur désireux d’utiliser ssh avec une authentification à clé publique doit lancer la commande ssh-keygen
pour créer les clés d’authentification. La commande commence par la création de la paire de clés (une publique et une privée) et demande à l’utilisateur de saisir une phrase de passe (un mot de passe long et complexe) pour protéger la clé privée.
Sur la machine hôte, générez une paire de clé et vérifier que les clés sont bien crées dans ~./ssh
.
Pour que la connexion soit autorisée à tout utilisateur possédant la clé privée, ajoutez la clé publique dans le fichier ~/.ssh/authorized_keys
des comptes user des machines client, server, … .Dans le cas général, comment transférez la clé publique sur une autre machine ? Attention, le répertoire .ssh
doit avoir les bons droits pour protéger les clés sinon elles ne seront pas utilisées.
La commande suivante permet d’ajouter les clés de façon simple et sécurisée :
ssh-copy-id [-i [identity_file]] [user@]machine
Vous pouvez donc faire depuis l’hôte :
ssh-copy-id user@192.168.56.X
Dans le cas des machines du département et comme elles partagent toutes les mêmes fichiers via NFS, il semble qu’il suffise d’utiliser ‘cp’ mais où sont réellement les fichiers ?.
Essayez ensuite de vous connectez sur une autre machine (vous activerez l’option -v de ssh). Normalement, c’est la passphrase qui doit être demandée et non le mot de passe. Expliquez pourquoi.
En apparence, nous avons donc remplacé la saisie d’un mot de passe par une passphrase plus longue. Expliquer quelle différence existe en ce qui concerne la circulation du mot de passe sur le réseau.
Pour finir, pour éviter d’avoir à saisir la passe, étudier l’utilisation de la commande ssh-add
avec ssh et scp.
~~DISCUSSION~~
—- dataentry page —- type : TP enseignement_tags : S52 technologies_tags : IP,TCP,SSH themes_tags : Réseaux