S52 - TP1 - Utilisation du réseau sous Unix et pratique de SSH

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).

Attention ! Si certaines cartes réseau n’ont pas d’adresse IP : connectez vous en root et exécutez dhclient.

Installer le réseau virtuel NetDemo : Un réseau virtuel.

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.

  • Fichier /etc/hosts : Afficher son contenu (en utilisant la commande less). 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 ?
  • 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 commande netstat.
    • 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 commande route -n. Pourquoi mettre l’option -n ?

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).

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 ?

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épertoire monDossierDistant (situé dans le répertoire home de l’utilisateur monLogin du serveur monServeur. Ce repertoire sera renommé localement en monRepertoireLocal. 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.

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