TP Services et Protocoles applicatifs de l`Internet
Transcription
TP Services et Protocoles applicatifs de l`Internet
TP Services et Protocoles applicatifs de l’Internet CE TP ILLUSTRERA 1 2 3 1 Savoir se connecter et travailler sur une machine distante Comprendre le fonctionnement du DNS Comprendre le fonctionnement de SMTP et la configuration d’un client mail Présentation du TP La découverte du fonctionnement de services tels que le DNS et le mail demande un accès privilégié sur plusieurs machines afin de suivre l’enchainement de requêtes et de réponses qui en découle. De façon à ce que tous les élèves bénéficient d’un tel accès, nous utiliserons un environnement de réseau émulé (comme dans le TP sur le routage IP) : Marionnet. 1.1 Topologie du réseau La topologie du réseau émulé est décrite dans la figure 1. Elle est constitué de deux réseaux, chacun représentant un domaine. Figure 1: Topologie du réseau fourni Le plan d’adressage est décrit dans les tableaux 1. 1.2 Services disponibles Des services ont été activés sur les différentes machines : – un serveur DNS (bind9) sur les machines ns ; 1 Réseau fai1.fr. fai2.com. lien routeur /machine réelle Adresse 193.10.2.0/24 195.2.0.0/16 194.2.1.0/24 (a) Plan d’adressage des réseaux Machine ns client mail machine réelle routeur host id 100 1 101 1 254 (b) Plan d’adressage des machines Table 1: Plan d’adressage – un serveur SMTP (postfix) sur les machines mail ; – un serveur POP (courier-pop3d) sur les machines mail ; – un serveur IMAP (courier-imapd) sur les machines mail ; – un serveur ssh sur toutes les machines. Les machines ns sont paramétrées pour être le serveur de noms ayant autorité sur leur zone et pour renvoyer automatiquement vers l’autre serveur quand les requêtes pointent vers l’autre zone. Les machines mail ont été déclarées dans le DNS. 1.3 Note sur la capture de trafic Afin de pouvoir analyser les requêtes et le réponses générées par les différentes manipulations, vous utiliserez (au choix) un des deux commandes suivantes : – tcpdump, capture en mode texte ; – wireshark, interface graphique de capture réseau. Voici plusieurs conseils pour réaliser des captures efficaces : – Demandez vous avant de capturer ce que vous voulez observer ; – Réalisez les captures au bon endroit du réseau ; – Désactivez la résolution de noms lors des captures afin de ne pas générer de trafic DNS supplémentaire (option -n sur tcpdump, case à décocher sur wireshark) ; – Démarrez et arrêtez les captures avant et après chaque observation afin de ne pas avoir de doute sur le moment d’émission des paquets observés. 1.4 Mise en route Afin de lancer les machines virtuelles, quelques manipulations sont à faire : – En tant que root, allez dans le répertoire /media/sdb2/Marionnet et lancez le script prepare_system.sh – Toujours en tant qu’administrateur aller dans le répertoire TP_applis_IP et lancez le script configure_network.sh – Lancez ensuite marionnet en tant qu’utilisateur normal (allez dans le répertoire /media/sdb2/Marionnet et lancez start_marionnet.sh) – Démarrez les machines les unes après les autres dans marionnet – Lancez en suite en tant que root le script start_network.sh dans le répertoire TP_applis_IP IENAC 2A L & S 27 mai 2010 Vous disposez maintenant du réseau décrit plus haut et vous pouvez travailler depuis un terminal de la machine réelle. 2 Connexion à distance Pour travailler sur les machines virtuelles, nous utiliserons de préférence des connexions à distance depuis la machine réelle avec redirection sécurisée de l’affichage. Afin de vous familiariser avec ce système, connectez vous à distance sur plusieurs machines virtuelles et vérifiez le bon fonctionnement de l’affichage déporté. Pour cela vous utiliserez la commande : ssh -X <user>@<nom_machine>. Vous utiliserez l’utilisateur root (mot de passe root sur toutes les machines). Vérifiez par une capture de trafic que les informations transmises (login, mot de passe et commandes) sont cryptées. Question 1 3 Tests des serveurs DNS En réalisant les connexions ssh précédentes, vous avez validé la résolution de noms vers une adresse IP. Nous allons maintenant utiliser les commandes dig et host afin de récupérer plus d’informations sur les fonctionnement du DNS. 3.1 Tests de la résolution d’adresse IP en nom La syntaxe de la commande host est simple : host <adresse IP>. Cette commande permet de tester la résolution inverse (adresse IP vers nom). En testant cette commande notez et expliquez la façon dont elle écrit l’adresse IP. Question 2 3.2 Tests avec la commande dig La syntaxe de la commande dig est plus complexe : dig [@<IP serveur>] <requête> <objet>. L’adresse IP du serveur est optionnelle et permet de réaliser une résolution vers un autre serveur que celui spécifié par défaut. Le paramètre <requête> défini le type d’enregistrement que l’on veut récupérer. Plusieurs requêtes sont possibles : – A : demande la récupération d’un enregistrement de type A (adresse IPv4 depuis un nom) – PTR : demande la récupération d’un enregistrement de type PTR (nom depuis une adresse IPv4) – NS : demande la récupération d’un enregistrement de type NS (nom de serveur de noms depuis le nom de domaine) – MX : demande la récupération d’un enregistrement de type MX (nom de serveur de mail depuis le nom de domaine) IENAC 2A L & S 27 mai 2010 – CNAME : demande la récupération d’un enregistrement de type CNAME (nom officiel depuis un alias) – ANY : demande la récupération de tous les enregistrements liés à l’objet donné. Le paramètre <objet> correspond à ce sur quoi on fait une requête et dépends du type d’enregistrement que l’on souhaite obtenir. Par exemple pour récupérer le nom du serveur de mail du domaine mon-domaine.com on utilisera la requête : dig MX mon-domaine.com. . Pour récupérer l’adresse de la machine client.fai1.com., on utilisera : dig A client.fai1.com. . Utilisez la commande dig pour ∗ : – récupérer les noms et adresses IP des machines responsables du service de noms du domaine fai2.com. ; – récupérer les noms et adresses IP des machines responsables du service de mail des deux domaines ; – le nom canonique des machine smtp.fai1.fr. , pop.fai2.com. et imap.fai1.fr. – récupérer un maximum d’information sur le domaine fai1.fr. Commentez les résultats. Nous allons maintenant tester la résolution de nom entre les domaines et regarder le trafic qui est généré sur les deux réseaux. Pour cela connectez vous sur une des machines ’client’ et réalisez une requête DNS sur une machine de l’autre domaine. A l’aide des outils de capture réalisez un diagramme montrant les différents échanges. Commentez les résultats. Question 3 Si les mémoires caches de vos serveurs DNS sont déjà remplies, il se peut que la commande dig ne génère pas de requête DNS sur le réseau. Si c’est le cas relancez les service DNS avec la commande /etc/init.d/bind9 restart sur les deux machines ns. 4 Test du service mail Maintenant que vous avez validé le service DNS et que vous avez pu en analyser son fonctionnement, nous allons nous tourner vers le service de mail. Un utilisateur eleve (mot de passe eleve) à été défini sur les serveurs de mails afin de recevoir et envoyer des mails. 4.1 Envoi de messages Nous allons tout d’abord utiliser la commande netcat pour se connecter au serveur de SMTP et tester le service d’envoi de mails. netcat ouvre une connexion tcp vers l’hôte et le port indiqués et envoie les caractères de l’entrée standard à travers. Les caractères envoyés par le processus distant sont envoyés à la sortie standard. Voici un exemple de session d’envoi de mail dont vous vous inspirerez pour les tests : ∗. Lors de ces tests, il n’y a pas besoin capturer le trafic DNS généré IENAC 2A L & S 27 mai 2010 pcp-garciafa:~# netcat smtp.free.fr 25 220 smtp6-g21.free.fr ESMTP Postfix EHLO mamachine.mondomaine.fr. 250-smtp6-g21.free.fr 250-PIPELINING 250-SIZE 35000000 250-VRFY 250-ETRN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN MAIL FROM: [email protected] 250 2.1.0 Ok RCPT TO: [email protected] 250 2.1.5 Ok DATA 354 End data with <CR><LF>.<CR><LF> Subject: Test d’envoi par netcat From: Moi To: moiaussi Ceci est un test . 250 2.0.0 Ok: queued as 5FE33E080B7 QUIT 221 2.0.0 Bye Vous testerez des envois de mails : – depuis une adresse existante vers une adresse valide de l’autre domaine ; – depuis une adresse inexistante vers une adresse valide de l’autre domaine ; – vers une adresse inexistante : – du domaine local (i.e. : utilisateur autre que eleve) ; – du domaine ’distant’ (i.e. : utilisateur autre que eleve) ; – d’un domaine inexistant. Concluez sur le niveau de sécurité et de fiabilité du service offert par SMTP. Question 4 4.2 Utilisation du client mail icedove Connectez vous par ssh à un des clients et lancez la commande icedove (c’est une version open source du client de mail thunderbird). Utilisez votre connaissance du service mail pour configurer la réception et l’émission de mails pour le compte eleve en utilisant les serveur POP et SMTP du domaine. IENAC 2A L & S 27 mai 2010 Faites de même avec le client de l’autre domaine en utilisant IMAP et SMTP. Réalisez des captures de trafic afin d’analyser les échange entre icedove et les serveurs de mail et entre le serveurs des eux domaines. Commentez les résultat de la capture. Question 5 5 Transfert sécurisé de fichiers Vous testerez enfin le fonctionnement du transfert de fichiers avec sftp. Transférez un fichier (par exemple /etc/hosts) depuis une des machines virtuelles vers la machine réelle † . Capturez le trafic généré et concluez sur la sécurité du service. Question 6 †. aidez vous du manuel (man sftp) pour comprendre le fonctionnement de la commande IENAC 2A L & S 27 mai 2010