S52 - TP2 - Ecoute de trames et applications

L’objectif de ce TP est d’observer les échanges réseaux sous-jacents à TCP/IP et lors de l’utilisation de protocoles applications (telnet, FTP, SMTP, POP3 et HTTP).

En utilisant les commandes ifconfig et netstat étudiées au TP1, déterminer :

  • Quelle est (ou quelles sont les) l’adresse IP de votre machine et des machines virtuelles ?
  • Quelle est l’adresse MAC de votre machine et des machines virtuelles ? Par qui sont fixées ces adresses ?
  • Quelle est l’adresse du réseau entre l’hôte et les machines virtuelles ?
  • Quelle est l’adresse de broadcast de ce réseau ?
  • Quel est le masque du réseau ?
  • Quelle est la classe du réseau ?
  • A quoi correspond le champ MTU ?
  • A quoi sert l’interface lo, quelle est son adresse IP ? et l’interface vbox0 ?
  • Quelles sont les connexions utilisant les protocoles internet actives sur votre machine ? Faire tourner netstat en mode continu sur client et exécuter la commande telnet server. Que se passe-t-il ?
  • Indiquer quelles sont les routes sur server et les expliquer.

Lire la page de manuel concernant la commande :

arp
  • Afficher le contenu de la table ARP de l’hôte et de client
  • Même question mais en affichant les adresses IP au lieu des noms de machines
  • Exécuter la commande sur l’hôte : ping mail.univ-tln.fr. Quelles sont les adresses MAC et IP de cette machine ? Exécuter la commande host mail.
  • Exécuter la commande sur l’hôte : ping 193.49.96.2. Exécuter la commande host 193.49.96.1 qui vous donne le nom de cette machine. Exécuter la commande host sur ce nom, que constatez vous ? Avec la commande tracepath 193.49.96.1, essayez d’expliquer ce qui se passe.
  • Quel est le rôle de la commande host ?
  • Que donnent les commande host mail et le site http://dnsquery.org/ipwhois/193.49.96.2 (commande host mail.univ-tln.fr mais de l’extérieur). Pourquoi ?

Nous allons utiliser un programme d’écoute de trames capable de décoder les protocoles que nous avons étudiés : wireshark (http://www.wireshark.org/). Une introduction à wireshark est présentée ici : http://media-2.cacetech.com/video/wireshark/introduction-to-wireshark/

Lancer le programme wireshark via ssh , et commencer la capture des trames du protocole utilisé par ping en partance de la machine client et destination de la machine localnet. Vous pouvez exécuter wireshark sur une des machines virtuelles en utilisant depuis la machine hôte : ssh -x <192.168.56.X> wireshark avec 192.168.56.X l’adresse IP d’une machine virtuelle.

Wireshark propose des filtres appliqués lors de la capture, ne seront gardés que les paquets pour lesquels le filtre est vrai. Les filtres se décomposent en 3 parties :

  • le protocole qui peut être ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp ou udp
  • la direction qui peut être src ou dst,
  • un champ qui peut être host, net ou port suivi d’une valeur.

Les opérateurs and, or et not peuvent être utilisés pour combiner des filtres. Attention, il existe aussi des filtres d’affichage (appliqués après la capture).

Analyser une séquence de résolution d’adresse avec ARP en suivant la méthode suivante :

  • Utiliser : ether proto arp comme filtre pour wireshark
  • Afficher la table ARP
  • Faire un ping sur une machine qui n’est pas dans la table (option -d pour enlever une machine)
  • Arrêter la capture et analyser les deux trames échangées
  • Que s’est-il passé ? A qui est destinée la première trame ? D’où vient la seconde ?
  • Quelle est la longueur utile des données transportées dans la trame Ethernet lors d’une requête ARP ?

Lire le man de la commande ping.

  • Quel est le protocole utilisé par cette commande ?

Sur la machine client, exécuter la commande ping server et arrêter la capture au bout de 10 trames maximum. Pour les trames 1 à 4, analyser le contenu : de la trame ethernet, du paquet IP, et de ICMP. Détailler les adresses sources et destinations.

Sur la machine hôte, exécuter la commande ping 10.1.78.254

  • Que se passe-t-il ?
  • Quel message est retourné par ping quand vous essayez d’atteindre une machine qui n’existe pas sur le réseau local ?
  • Quelles trames circulent sur le réseau ?
  • En lisant le man, que fait la commande (sur client) ping -s 3200 -c 1 server ?
  • Que s’est-il passé au niveau des trames Ethernet en utilisant wireshark ?

Pour cette exercice, il faut que externalnet soit lancée (Elle donne accès à l’extérieur). Lire le man de la commande traceroute. Capturer les trames ICMP et UDP en partance ou à destination de la machine client et lancer la commande traceroute microsoft.com. Arrêter la capture dès la fin de la commande. Déduire de l’analyse des trames le fonctionnement de cette commande (cf. paramètre Time To Live (TTL) de ping).

Après avoir configuré préparé une écoute wireshark, depuis la machine client faire un telnet sur la machine server en utilisant le compte de login user dont le password est user.

  • Analyse la connexion TCP (les SYN et ACK, et les tailles de fenêtres)
  • Comment se déroule la connexion applicative ? Que constatez-vous dans wireshark ?
  • Essayer de saisir des commandes ? Que constatez-vous dans wireshark ?
  • Tester un clic droit sur un des premiers segments de la connexion puis “Follow TCP Stream”.
  • Que fait la commande ssh ? Effectuer la même connexion en ssh en écoutant les trames avec wireshark. Que remarquez vous ?

Pour illustrer les différentes applications (ftp, telnet, pop3 et smtp) et leur mode de fonctionnement vous aller

  1. parcourir rapidement la RFC pour comprendre le protocole,
  2. faire une capture de ce protocole lors d’une utilisation (consultation d’une page web, envoi/lecture d’un mail, …)
  3. puis le simuler “à la main” en vous connectant sur le port de l’application en utilisant un client telnet. Chacun des protocoles étudiés utilise un langage à base de commandes définies dans les documents suivants : FTP (http://www.ietf.org/rfc/rfc959.txt), smtp (http://www.ietf.org/rfc/rfc0821.txt) et pop3 (http://www.ietf.org/rfc/rfc1939.txt)

<comment> Attention, sur les machines virtuelles initialement installées il manque certains composants. Le plus simple est de supprimer vos machines virtuelles et de recloner/créer les nouvelles versions. Chaque machine doit indiquer après un login dans la console ‘VERSION 2013-10-10’ (cf. NetDemo : Un réseau virtuel). Les modifications sont :

  • dans ‘server’ :
    • désactivation de tls dans /etc/postfix/main.cf mettre smtpd_use_tls à no (l’éditeur de texte est jed ctrl-x-s pour sauver ctrl-x-q pour sortir)
    • Changer le password du compte mail pour ‘user’ : saslpasswd2 -c user (mettre user).
  • sur ‘client’
    • installer ncftp (client ftp) : apt-get install ncftp
    • installer fetchmail : ‘apt-get install fetchmail’
    • reconfiguer exim4 pour uniquement la livraison locale : dpkg-reconfigure exim4-config (Choisir distribution locale seulement, le reste par défaut).
    • installer le client de mail mutt : apt-get install mutt

</comment>

En utilisant le logiciel wireshark sur client et en vous appuyant sur les RFC, vérifier comment fonctionnent les applications standard :

Utilisez la commande suivante sur la machine client pour envoyer un courrier électronique

  
echo "Hello" | mail -s Test1 user@local.demo   
  

Quel est le protocole utilisé, comment se passe l’échange ?

Lire le mail en faisant une écoute avec les commandes

  • fetchmail -kvp pop3 server
  • puis mutt

Quel est le protocole utilisé, comment se passe l’échange ?

Vous pouvez maintenant envoyer/lire un mail “à la main” en utilisant telnet sur les ports smtp/pop du serveur en rejouant les échanges que vous avez capturé. * En vous connectant depuis client avec la commande telnet sur le port 25 de server. Envoyer un email. * En vous connectant depuis client avec la commande telnet sur le port 110 de server. Lisez le mail que vous venez d’envoyer (les commandes utiles sont USER, PASS, LIST et RETR cf. la RFC de POP3).

Lancer une écoute avec wireshark. connectez vous en ftp, explorer le répertoires distants et télécharger un fichier (get nom) avec la commande ncftp depuis le client.

Combien y-a-t-il de connexion tcp ? Peut-on rejouer l’échange avec telnet ?

Faire de même avec le protocole http. Vous pouvez vous connecter depuis le client avec lynx http://www.local.demo (Attention à la variable d’environnement ‘http_proxy’ que vous devez supprimer dans un premier temps avec unset http_proxy).

Faites une écoute sur la machine client quand vous consultez le serveur Web. Faites de même quand vous consultez un serveur de l’USTV (http://www.univ-tln.fr), idem pour un externe à l’USTV. Le login/passwd dans /etc/squid/squid.conf sur server doit alors être adapté (cherchez univ-tln dans le fichier, et décommentez la ligne, ensuite relancer le proxy /etc/init.d/squid restart).

Configurer mozilla thunderbird (commande icedove en salle de TP) pour pouvoir lire vos mail de l’université ou d’autres comptes en imap et en envoyer en smtp.

En utilisant, l’extension enigmail de mozilla thunderbird (http://enigmail.mozdev.org/documentation/quickstart.php.html). Créez vous une signature électronique utilisant pgp en envoyer un email chiffré à bruno@univ-tln.fr

pub   2048R/927F169F 2011-01-02 [expire: 2016-01-01]
    Empreinte de la clé = B05E 9321 E05A 0E52 5129  1F65 8703 E72D 927F 169F
uid                  Emmanuel Bruno (USTV) <bruno@univ-tln.fr>
sub   2048R/B0FA615C 2011-01-02 [expire: 2016-01-01]

~~DISCUSSION~~

—- dataentry page —- type : TP enseignement_tags : S52 technologies_tags : ARP, ICMP, POP3, SMTP, FTP, HTTP, Wireshark, PGP themes_tags : Réseaux