S52 - TP2 - Ecoute de trames et applications
Objectif
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).
La configuration du réseau sous Unix : Révisions du TP1
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 commandetelnet server
. Que se passe-t-il ? - Indiquer quelles sont les routes sur
server
et les expliquer.
ARP et adresses IP
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 commandehost mail
. - Exécuter la commande sur l’hôte :
ping 193.49.96.2
. Exécuter la commandehost 193.49.96.1
qui vous donne le nom de cette machine. Exécuter la commandehost
sur ce nom, que constatez vous ? Avec la commandetracepath 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 (commandehost mail.univ-tln.fr
mais de l’extérieur). Pourquoi ?
Analyse du protocole ARP
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 ?
Analyse de la commande ping
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 ?
Analyse de la commande traceroute
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).
Les problèmes de sécurité
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 ?
Première approche des applications
Pour illustrer les différentes applications (ftp, telnet, pop3 et smtp) et leur mode de fonctionnement vous aller
- parcourir rapidement la RFC pour comprendre le protocole,
- faire une capture de ce protocole lors d’une utilisation (consultation d’une page web, envoi/lecture d’un mail, …)
- 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
mettresmtpd_use_tls
à no (l’éditeur de texte estjed
ctrl-x-s
pour sauverctrl-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 :
SMTP et POP3
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).
FTP
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 ?
HTTP
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
).
Pour aller plus loin, la sécurité du courrier électronique
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