Travaux pratiques

découverte du réseau au travers d'outils d'administration simples

Durée :
1h30 à 3h00
Objectif :
prendre conscience de la façon dont le réseau est organisé à travers l'utilisation des outils d'administration de base
Système d'exploitation :
Linux
Outils utilisés :
man, uname, host, ifconfig, ping, traceroute, netstat
Fichiers à voir :
/etc/services, /etc/hosts, /etc/resolv.conf

À pratiquer dans le réseau de l'école

ou bien dans un réseau moins restrictif

Les manipulations suivantes devaient pouvoir fonctionner dans le cadre du réseau de l'école, même avec les barrières qui existent (proxy authentifié, firewall, ...)

Machine hôte

La configuration de la partie réseau d'un ordinateur peut varier du tout au tout en fonction de ce que l'on désire faire avec cette machine.

Si vous découvrez une installation que vous n'avez pas réalisée vous même, vous pouvez obtenir des informations sur la manière dont est configurée la machine et, par ce biais, la manière dont est organisé l'éventuel réseau dans lequel elle se trouve.

Exercice :

Nous vous proposons de "découvrir" la machine sur laquelle vous faites ces TP avec les quelques questions suivantes :

  1. Découvrez le nom de votre machine et son système d'exploitation avec la commande uname -a.
  2. Déterminez les interfaces réseau utilisées par votre machine et les informations associées avec la commande ifconfig(8) (/sbin/ifconfig et /sbin/ifconfig -a) :
    1. Quelles sont les adresses Ethernet des différentes interfaces ?
    2. Quelles sont les adresses Internet (IP) des différentes interfaces ?
    3. Toutes les interfaces sont-elles fonctionnelles (ont-elles une adresse IP associées et émettent-elles/reçoivent-elles des données) ? La réponse a cette question varie beaucoup en fonction du système d'exploitation utilisé et des logiciels installés ; n'en soyez pas étonné de ce que vous obtenez.
    4. À quoi, d'après-vous, peut bien correspondre l'interface lo et quel peut être son rôle ?
  3. Lisez le fichier /etc/hosts. Vous pouvez utiliser par exemple la commande less pour visualiser ce fichier dans un terminal. Vous ne manquerez pas de lire le commentaire au début de ce fichier expliquant son rôle.
    1. quels sont les types d'adresses que l'on trouve dans ce fichier ?
    2. quels sont les hôtes du réseau connu par votre système ?

Services et Ports associés

Une machine connectée sur un réseau est à l'écoute de celui-ci, mais peut également proposer des services (serveur HTTP, serveur FTP, serveur LDAP, etc.)

Plusieurs services peuvent être proposés par une même machine et il faut être capable de les différentier pour pouvoir y accéder. C'est le but des "numéros de port" qui sont des visions logiques de points de connexion à une machine donnée depuis le réseau. Par exemple, vous avez vu comment accéder au service HTTP de la machine www.emse.fr en la contactant sur le port 80.

Il existe donc une multitude de ports, normalisés et référencés localement dans le fichier /etc/services que nous allons à présent étudier (un lecteur curieux pourra rechercher ce fichier dans les systèmes d'exploitation de la famille Windows).

Exercice :

  1. Ouvrez le fichier /etc/services et lisez les commentaires en en-tête.
  2. Pourquoi un tel fichier est-il présent sur un ordinateur alors que tout semble normalisé ?
  3. Que signifient TCP et UDP ? Pouvez-vous donner une rapide explication de pourquoi utiliser l'un plutôt que l'autre ainsi que des exemples d'utilisation (il faudra peut-être pour cela vous reporter à la lecture des RFC) ?
  4. Quel sont les ports associés au service de connexion sécurisée ssh ?
  5. Quel sont les ports associés au protocole de transfert de fichiers ftp ?
  6. Le port associé au service telnet est le 23 selon ce fichier, pourtant quand vous avez utilisé la commande telnet pour vous connecter au serveur HTTP de l'École, vous avez précisé le port 80. D'après-vous, est-ce un usage correct de la commande telnet ? Est-ce que dans cette façon de l'utiliser le numéro de port 23 entre en jeu à un moment ou un autre ?
  7. Tous les numéros de ports sont-ils affectés ? Cela signifie-t-il que l'on ne peut pas les utiliser ?

Note : DCCP est un protocole permettant d'accéder à la gestion de la congestion simplement. Il rend possibles certains mécanismes permettant d'assurer une certaine qualité de service au niveau de la connexion. Pour plus d'informations, la page Wikipedia est à votre disposition.

DNS

Le DNS, système permettant de faire l'association entre les adresses Internet sous forme numérique et les adresses sous forme de nom, s'interroge avec les commandes host(1) ou nslookup(1) (cette dernière existe sur les plate-formes Windows).

Exercice :

  1. Trouvez quel est votre serveur DNS en lisant le fichier /etc/resolv.conf
  2. Essayez de déterminer les adresses IP associées au nom www.emse.fr
  3. Essayez de déterminer les adresses IP associées à www.google.fr et www.google.com. Faites plusieurs tests successifs, observez le résultat et donnez une interprétation de ce phénomène.

Internet à Ethernet

Le protocole ARP permet de déterminer une adresse de la couche liaison à partir d'une adresse de la couche réseau (typiquement, une adresse Ethernet à partir d'une adresse IP). Votre système maintiens une table de correspondance entre les adresses IP et les adresses Ethernet ; chacune des entrées de cette table a une durée de vie limitée. La commande arp(8) (/usr/bin/arp) permet d'inspecter cette table.

Exercice :

  1. Interrogez la table d'association avec la commande arp (directement dans un terminal). Si cette table est vide ou contient peu d'entrée, faites quelques accès réseau (navigateur Internet, requête DNS, etc.) pour la remplir une peu.
  2. Pourquoi votre système aurait-il besoin de connaître l'adresse Ethernet d'une autre machine ? L'adresse Internet n'est-elle pas suffisante ?

À pratiquer dans un réseau ouvert

ou avec assez de possibilités de passage des différents éléments d'interconnexion

Les manipulations ci-dessous ne sont pas complètement réalisables depuis le réseau enseignement de l'EMSE, du fait de la politique de sécurité qui régit cette partie de l'installation. Elles sont donc mises là à titre indicatif et peut-être que depuis un autre réseau (chez vous par exemple) vous aurez envie de les tester.

Communiquer

  1. Pour savoir comment utiliser ping(8), lisez sa page de manuel : man 8 ping et répondez aux questions suivantes :
    1. Quel est le protocole utilisé ?
    2. Est-il possible d'en utiliser un autre ?
  2. Avec la commande ping(8), essayez de contacter la machine d'un de vos camarades.
    1. À quoi correspond le temps affiché en fin de chaque ligne ?
    2. Changez la taille des données envoyées et trouvez la limite. Quel est l'impact sur le temps observé ?
  3. Avec la commande ping(8), envoyez des datagrammes aux machines www.emse.fr et www.cia.gov ; commentez.
  4. Avec la commande netstat(8) (/usr/sbin/netstat -rn) ou la commande route(1) (/sbin/route -n), en fonction de ce qui est installé sur votre système, affichez les routes connues de votre système et commentez.

Cheminer

Lisez le manuel de la commande traceroute(8) et utilisez la pour déterminer le cheminement de vos trames pour atteindre les destinations suivantes :

  1. la machine de votre voisin
  2. www.emse.fr
  3. www.elysee.fr
  4. www.google.fr
  5. www.nsa.gov