Protocoles applicatifs: DNS, SMTP
Transcription
Protocoles applicatifs: DNS, SMTP
Schéma hiérarchique ✦ Domain Name System ✦ ✦ par noms de domaines domaine: unité pour construction et gestion de noms (comme rép. dans SGF) hiérarchie de noms a une racine multiple : domaines de 1° niveau (TLD) domaines génériques com org edu icann.org microsoft.com sun.com mit.edu java.sun.com ✦ avant: fichier /etc/hosts diffusé vers autres machines depuis 1984: utilisation DNS qui évite: ✦ congestion serveur unique ✦ maintenance centralisée 3 gouv.mc cs.mit.edu deptinfo.unice.fr 4 dans chaque domaine, noms attribués par autorité responsable ✦ ✦ ✦ ✦ unice.fr Attribution des noms Relation nom-@IP-type-TTL ✦ domaines géographiques fr mc ✦ TLD par ISOC via groupe technique domaines “publics” (com, org, net...) une seule autorité centrale: ICANN domaines “géographiques”: autorité nationale: AFNIC en France, Namebay à Monaco pour les domaines inclus: autorités locales (entreprise, administration,...) 6 Domaines et zones Fonctionnement ✦ ✦ ✦ ✦ ✦ ✦ ✦ Domaine: unité de désignation (espace de noms) ✦ Zone: unité de gestion administrative (serveur de noms propre à la zone) souvent, un domaine est une zone mais une zone peut regrouper plusieurs domaines administrés en commun ≥ 2 serveurs de nom par zone ✦ ✦ performances et tolérance aux pannes maintien table Resource Records (nom domaine-@IP) : (nom, valeur, type, durée de vie) recherche: soit serveur dns connaît l’@IP, soit il a l’adresse d’un autre serveur qui peut la connaître. ✦ mode récursif ✦ mode itératif 7 9 Problème et principe Fonctionnement Donnée: nom symbolique d’une machine Sortie: @IP de la machine Principe: ✦ fonctionnement décentralisé ✦ hiérarchie de serveurs calquée sur hiérarchie de zone ✦ fonctionnement par ✦ caches (infos dupliquées) ✦ indicateurs (informations valides pdt tps donné) ✦ info accessible par ≠ voies et confirmée si nécessaire ✦ favorise tolérance aux fautes 8 (1) le client envoie sa requête DNS à un serveur récursif choisi dans le fichier /etc/resolv.conf. Le client essaye au besoin plusieurs serveurs. (2) si le serveur a autorité sur la zone du domaine de la requête (authoritative),il répond directement avec les informations (gérées) localement (3) sinon il va rechercher le serveur cible du domaine de la requête, il relaye la requête vers ce serveur et relaye ensuite la réponse vers le client. Pour la recherche du serveur cible, on va : (a) choisir un parent (connu localement) du domaine recherché : c’est ici soit la racine, soit le domaine que l’on gère pour une requête concernant un descendant de ce domaine local. (b) interroger successivement les serveurs (informations NS) pour parcourir la branche entre le serveur parent et le serveur cible. Cet algorithme simplifié possède deux modes de résolution : récursif et itératif. Le premier consiste à demander à un serveur de résoudre complètement la requête et de renvoyer uniquement la réponse finale. Le mode itératif consiste à demander à un serveur la meilleure information dont il dispose par rapport à la question, c’est-à-dire soit la réponse soit la référence à un serveur « plus proche » de la réponse. On itère ensuite de serveur en serveur. 10 Fonctionnement ✦ ✦ Serveur racine Accélération: serveurs mettent en cache (nom,@IP) récemment résolus; rare de contacter ≥1 serveur Autorités: tous les serveurs ne sont pas mis à jour en permanence. Seuls certains le sont et font autorité: ✦ ✦ authoritative answer non authoritative answer contient noms de domaine du second niveau et @IP correspondantes unice.fr. unice.fr. unice.fr. 86400 IN 86400 IN 86400 IN NS NS NS taloa.unice.fr. dns.inria.fr. samoa.unice.fr. ✦ serveur racine largement dupliqué. ✦ plus serveur est haut, + il a de copies et + TTL est grand 11 13 Fonctionnement Serveur de zone 2 smtp.unice.fr? client domaine D ✦ r? serveur e.f r. c i f n racine . u e tp. nic sm oa.u tal 1 134.59.1.112 serveur 3 local à D sm tp. 6 *.unice.fr. 5 un ic 13 4.5 cache e.f 4 r? 9.1 .11 2 ✦ contient le + proche ✦ (noms,adresse) d’hôtes des domaines de zone taloa.unice.fr. ✦ [(noms,adresse) de serveurs de sous-domaines] serveur unice.fr i3s.unice.fr. ✦ 86400 IN 12 taloa.unice.fr. SOA: start of authority (serveur racine) smtp.unice.fr, 134.59.1.112 récursif ou Itératif ? SOA 14 Contenu fichiers // file db.admrx.test $TTL 3600 @ ( IN SOA ns1.admrx.test. 1 3600 900 3600000 3600 ) @ IN NS // file db.1.168.192 $TTL 3600 root.admrx.test. ; ; ; ; ; Format des messages @ Serial Refresh Retry Expire Minimum IN IN ns1.admrx.test. SOA NS ; Machine Names 11 IN PTR 12 IN PTR 1 IN PTR ; Machine Names // nom et adresses des hotes selon l'exemple ci-dessous: ns1 IN A 192.168.1.1 ns1.admrx.test. root.admrx.test. 20021111 ; Serial 3600 ; Refresh 900 ; Retry 3600000 ; Expire 3600 ) ; Minimum ns1.admrx.test. ( ✦ host1.admrx.test. host2.admrx.test. ns1.admrx.test. et modifier le fichier resolv.conf: search admrx.test unice.fr nameserver 192.168.1.1 nameserver 134.59.130.1 ✦ Les messages de requête et de réponse ont le même format. ✦ soit au-dessus d’UDP ✦ soit au-dessus de TCP sur le port 53 dans les 2 cas, TCP si la taille du message dépasse 512 octets PTR: pointeur vers une autre partie de l’espace des noms de domaine 15 ✦ ✦ ✦ type: indique comment interpréter le champ valeur A(AAAA): valeur @IPv4 (@IPv6) NS: valeur nom de domaine d’un serveur de nom ✦ CNAME: nom canonique (si alias) ✦ MX: mail... classe: ✦ IN (internet) ✦ CH (pour chaosnet LAN du MIT ‘70) durée de vie: TTL (pour rafraîchir) ✦ ✦ ✦ ✦ 16 ✦ ✦ ✦ id: nb de 16 bits pour requête, réponse utilise le même nb flags: ✦ query or reply ✦ récursion demandée ✦ récursion disponible ✦ réponse authoritative identification flags nombre questions nombre de réponses nombre de authority nombre de additional questions (# variable) réponses (# variable) authority additional les 4 champs «nombre de» donnent le nombre d’objets des 4 section suivantes questions: RR incomplets {nom-dns,type,classe} réponses, auth, add: RR complets: {nom-dns,type,classe,(RDATA_LENGTH),RDATA} 18 12 octets Contenu tables et RR 17 UDP ethernet 0000 0010 0020 0030 0040 00 00 09 00 65 50 3b 01 00 02 56 65 cf 00 66 a7 dc e1 00 72 4e 00 00 00 00 nb aut nb rép d0 00 35 00 00 00 40 00 04 01 22 11 27 73 00 41 f5 1f 6d 01 36 fe 10 74 00 86 54 70 id flags (query) IPv4 40 3b 3a 05 08 09 01 75 00 60 00 6e 45 86 00 69 00 3b 01 63 .PV.N.." .;e...@. .....5.' .......s e.fr.... [email protected]. ...;.`.; ..T:.... mtp.unic . Commande host ✦ type A effectue requête (@IP à partir du nom ou inverse) ✦ host example.com [ns.alternatif.ex] ✦ host -t type example.com ✦ nb add nb quest class IN 04 73 4 ✦ ✦ ✦ a : adresse ✦ mx : champ mail ✦ ns: serveur de noms ✦ cname: nom cannique ✦ soa: start of authority 6d 74 70 05 75 6e 69 63 65 02 66 72 00 s m t p 5 u n i c e 2 f r 0 ✦ l’option -a affiche tous les champs ✦ l’option -6 effectue une requête IPv6 19 22 Résolution de nom Commande dig ✦ ✦ l’option -t à valeurs dans effectue requête (@IP à partir du nom; requête inverse avec option -x) ✦ dig example.com ✦ options tout hôte connaît @IP de serveurs de noms adresses fournies aux utilisateurs par FAI inscrites à la main dans les tables de configuration pour l’accès à internet ✦ 20 ✦ +trace : effectue requêtes itératives ✦ +short : réponse courte ✦ + nssearch : cherche soa: start of authority ✦ +all : affiche tous les champs ✦ +nocomment : retire les champs commentaires ✦ mx : champ mail ✦ AAAA effectue une requête IPv6 serveur alternatif par dig @ns.alternatif.ex example.com 23 Le mail en 1980 Fichiers unix correspondants ✦ fichiers consultés lors de requêtes, pour trouver l’adresse d’une machine ou d’un serveur dns ✦ ✦ ✦ /etc/hosts: donne la correspondance entre noms canoniques et adresses IP (locales) ✦ ✦ /etc/resolv.conf: fournit les adresses de serveurs dns (jusqu’à 6): protocole de transfert de fichier; première ligne = adresse destinataire limitations ✦ pas diffusion à un groupe ✦ nameserver 134.59.1.7 # IP du serveur dns ✦ pas de structuration interne ✦ domain unice.fr # nom du domaine local ✦ peu d’intégration Interface/transmission Toute réponse dhcp écrase /etc/resolv.conf ✦ envoi autre chose que du texte impossible 24 Arpanet 1982 Mail ✦ conception système + élaboré (par étudiants) ✦ devenus des normes ✦ transmission dans RFC 821 ✦ format message RFC 822 (puis 2821 et 2822) ✦ vainqueur du X.400 CCITT (trop complexe) Architecture ✦ ✦ agent utilisateur (MUA): lecture et envoi; programmes locaux interagissant avec le système de messagerie par CLI ou GUI agent de transfert (MTA): acheminement; processus démons assurant le transport agent de dépôt (MDA): lien avec BAL utilisateur Schéma général ✦ composition transfert: processus d’acheminement automatique de l’émetteur vers le destinataire ✦ notification: mail remis, rejeté ou perdu? ✦ affichage: lecture des messages ✦ disposition: traitement mail (lire, détruire, enregistrer...) Enveloppe vs contenu à: Bruno Martin Adresse Priorité Chiffrement de: Adresse Objet Texte Enveloppe Message Encapsulation ✦ ✦ En-tête Mail composé des sous-systèmes: Corps ✦ Fonctions de base Format de message RFC 822 En-tête To: Cc: Bcc: From: Sender: Received: Return-path: Description @DNS auteur @messagerie expéditeur info sur chaque MTA identifie chemin retour Format de message RFC 822 En-tête Date: Reply-To: Message-Id: In-Reply-To: References: Keywords: Subject: X-... Description MIME (RFC 1341 2045..2049) ✦ Multipurpose Internet Mail Extension ✦ prend en charge n° réf. unique mail id mail précédent autres ids pertinents ✦ pour usage privé ✦ caractères accentués ou non latins ✦ messages non textuels par ajout d’une structure au corps du message et de règles de codage tout en utilisant le format RFC822 En-têtes En-tête Quoted-printable Description N° version Mime-version ✦ descr. contenu Content-Description id. unique Content-Id Content-Transfert-Encoding type et format contenu base64 6 bits 6 bits 6 bits QP remédie à ce problème, en procédant par: ✦ Un octet correspondant à un caractère imprimable de l'ASCII est représenté tel quel Un octet qui ne correspond pas à un caractère imprimable de l'ASCII est représenté par un signe égal, suivi de son numéro en hexadécimal. Exemple: "é" en latin-9 par 233 en QP "E9" Schéma général 6 bits ✦ chaque paquet de 6 bits= 1 caractère ASCII ✦ A=0..Z=25 a=26..z=51 0..9 +=52 /=63 ✦ == dernier groupe ne contient que 8 bits ✦ = dernier groupe ne contient que 16 bits b64(ex=101,120)= ‘ZXg=‘ =25,23,32,63 01100101,01111000 = ‘ex’ 011001,010111,1000.00,- - - - - - = ‘ZXg=‘ format de codage de données sur 8 bits, qui utilise exclusivement les caractères alphanumériques ASCII (7 bits). ✦ méthode encapsulation (5+1) Content-type ✦ Transfert de messages Rejet message par MTA ✦ ✦ ✦ ✦ MTA se charge de l’acheminement des mails MUA construit message et le transmet au MTA qui utilise certains des champs d’en-tête pour construire l’enveloppe effective ✦ ✦ MTA = smtpd, serveur de mails, IP identifiée dans DNS par MX-record ✦ Réception MTA ✦ en provenance de: ✦ ✦ MUA: FAI propose un service de MTA permettant au MUA d’envoyer tous ses mails par son MTA MTA: la plupart des MTA servent à retransmettre dans un réseau les messages reçus en ajoutant un champ “Received” serveur non concerné: config MTA n’accepte que les mails expédiés depuis le réseau du FAI non-respect des normes: si le mail est non conforme ou en cas de non respect du smtp expéditeur black-listé: serveur réputés utilisés par spammers sont black-listés et certains MTA rejettent les mails provenant de ces serveurs notification rejet n’est plus systématique Transfert ✦ ✦ mails non rejetés sont transférés au MTA du destinataire par smtp si le MTA est le MTA traitant le mail, il est transféré à un MDA (ou traité directement) par protocole LMTP (local mail transfer proto) ✦ dépend du serveur; pour certains, MTA=MDA ✦ Mise à jour du “Return-Path” smtp Session SMTP Conversation (simplifiée) Codes de retour 2xx commande exécutée sans erreur 3xx demande en cours d’exécution 4xx erreur temporaire; ré-essayer + tard 5xx demande invalide et non traitée http://www.greenend.org.uk/rjk/tech/smtpreplies.html Rôle du MX-record ✦ ✦ ✦ ✦ MTA expéditeur fait requête sur le champ MX du DNS de chaque destinataire Serveur secondaire ✦ ≥2 MTA par réseau (primaire et secondaire) ✦ secondaire = store and forward En réponse, il obtient une liste ordonnée de serveurs de mails dans chaque domaine MTA établit session smtp avec un des serveurs ✦ prend le relai en cas de pb ✦ ne fournit pas tjs le service ✦ Si pas de MX, MTA fait une requête sur le Arecord (@IPv4) Requête MX mise en attente message jusqu’au redémarrage du primaire Indisponibilité ✦ MTA1 transfère vers MTA2 indisponible ✦ MTA1 met mail en file attente ✦ re-tente la transmission plusieurs fois ✦ Après un nb d’essais infructueux (ou d’un time out), le message est rejeté MTA classiques ✦ Open relay 85% des mails sont gérés par: ✦ sendmail ✦ postfix ✦ exim ✦ Microsoft exchange server ✦ ✦ ✦ ✦ sinon= open relay qui accepte n’importe qui Remède ✦ ✦ FAI limitent usage MTA aux machines de son seul domaine tous implémentent un démon smtp Spammers’ technique ✦ raisons historiques: pas authentification expéditeur (falsification possible) utilisent les “relais ouverts” ✦ ajout d’une extension SMTP-AUTH ✦ ne réussit pas à s’imposer; utilisation limitée utilisent le MX-serveur secondaire ✦ SMTP normal= pas d’authentification de l’utilisateur pas les mêmes techniques anti spam ✦ recherches en cours, par groupe de travail AntiSpam Research Group de l’IRTF. Schéma général Les plus classiques ✦ Post Office Protocol (tcp 110) ✦ Internet Message Access Protocol (tcp 143) ✦ [webmail] ✦ MDA ✦ Rôle: ✦ distribution courrier dans les BAL utilisateurs ✦ filtres différents ✦ les utiliser dans leur version sécurisée (pop3s 995 et imaps 993) POP IMAP single access multiple access transfert sur client conservé sur serveur actions sur client actions sur serveur folders sur client folders sur serveur anti-spam, anti-virus, personnalisés