480 likes | 589 Views
La messagerie sur Internet. Présentation : Terminologie agent utilisateur : (mail user agent MUA: interface utilisateur). mail, elm, mailtool, xmh, ... eudora, outlook, MS Mail, Netscape messenger, ... agent de transfert de messages :(message transfert agent MTA)
E N D
Présentation : Terminologie • agent utilisateur : (mail user agent MUA: interface utilisateur). • mail, elm, mailtool, xmh, ... • eudora, outlook, MS Mail, Netscape messenger, ... • agent de transfert de messages :(message transfert agent MTA) • sendmail (Unix et NT) , IMS (NT) , Exchange (NT), Eudora Worldmail server (NT), ... • Agent de remise local : (local mail delivery agent MDA) • mail, procmail, ... • mémoire de messages : (mailbox - fichier texte) • /usr/spool/mail/jean, /var/mail/jean … • Queue de messages (/var/spool/mail/queu) • Contient les messages en attente d’être délivré
Fonctionnement général utilisateur Sendmail.cf Mail, outlook, eudora, etc.. aliases Agent utilisateur Sendmail MTA UUCP mailer Local: mail procmail etc .. MDA TCP/IP Boite au lettre
Relayage Envoi d’un message en utilisant des machines relais Courrier Mail User Agent M T A local M T A relais SMTP M T A relais SMTP SMTP M T A local Boite
Lecture du courrier Mail Pine ELM Depuis la machine qui contient la boite Boite messagerie POP (Post Office Protocol) recopie simple Client POP Eudora, Netscape, Outlook, Palm Pilot, Téléphone Boite messagerie IMAP (Internet Message Access Protocol) Syn chronisation Boite locale Boite messagerie
Format des adresses • Une adresse est la désignation d'une boîte aux lettres dans l'Internet ou ailleurs. • Les adresses utilisées dans l'Internet sont définies par la RFC 822 et amendées par la RFC 1123 • Format des adresses internet: • Adresses global: user @domaine.dz : c’est le format le plus simple. • user (user amine) @ domaine.dz : la même adresse avec un commentaire (user amine). • ``user amine``@ domaine.dz : la partie ``user amine`` est considérée comme un seul mot. • Etc..
Format des messages user1@domaine1.dz user2@domaine2.dz Analogie Enveloppe From:user1@domaine1.dz Date: 4 mars 2002 To : user2@domaine2.dz Bonjour, etc… …… En-Tête message Corps
Format des messages • L’enveloppe: contient l’information utilisée par l’agent de transfert pour remettre le message à sa destination final. Structure d’un message: • En-tête : contient des informations de contrôle et d’identification mais qui ne sont pas utilisé par l’agent de transfert pour router le message. • Ligne blanche • Corps du message • suite de lignes terminées par CR/LF
Format des messages Format des lignes d'en-tête • FROM: expéditeur • TO: destinaire(s) • CC: copie à • BCC: copie aveugle • REPLY-TO: adresse de réponse. • ERROR-TO: adresse en cas d ’erreurs. • DATE: date expédition. • RECEIVED informations de transferts. • MESSAGE-ID: identificateur unique du message. • SUBJECT: sujet.
Format des messages • L’Adresse électronique : identifie de manière unique chaque boite aux lettres. • Personne@Machine.Domaine : jean@smtphost.dim.jussieu.fr • Personne@Domaine: Gautier@urec.cnrs.fr • les adresses littérales sont déconseillées : jean@134.157.4.21 • Pas de différence entre minuscules et majuscules pour la partie distante mais en théorie importante pour la partie locale ( de nombreux systèmes ne la font pas ) • Attention aux caractères autorisées ( limitation par RFC du DNS)
Autre types d’adresses: • Adresse UUCP:site1!site2!…!siten!user • user@site.uucp --> nécessite une passerelle uucp/Internet • Adresses Bitnet:user@site ou site est un nom de machine • user@site.bitnet • Adresse decnet:user::machine • Adresses X400:<C=fr/A=adm/P=section/N=user>
Simple Mail Transfer Protocol SMTP: RFC821 • Permet d'échanger du courrier électronique (E-Mail) sur Internet. • Transfert direct Entre l'ordinateur émetteur et un ordinateur destinataire. • Utilisation des enregistrements MX du DNS pour définir l'ordinateur destinataire . • La remise du message dans la boite aux lettres du destinataire du message est fonction de la politique messagerie du site.
Structure d'un courrier standard • Limitations (minimum admissible) : Tout est sous forme de lignes ASCII sur 7 bits • 2 parties • l'entête (définit les services attendus) • corps (le texte de la lettre) terminé par une ligne avec "." comme premier et unique caractère • nom utilisateur < 64 caractères • nom de domaine < 64 caractères • nombre de destinataires < 100 • ligne à ligne avec CR/LF • ligne < 1000 caractères. • Les besoins d ’extensions et l ’arrivée de mime ont donné lieu à => Extended SMTP (RFC 1425) • L ’envoi d’un binaire n ’est pas possible sans structuration préalable.
Envoi-Réception entre deux ordinateurs • Définit par le protocole SMTP. • Mode client – serveur. • Utilise TCP, le serveur est en attente sur le port 25 • Pour test : telnet nom_du_serveur_smtp 25 • Un seul exemplaire du message est envoyé à un site ayant plusieurs destinataires. • Le dialogue est en ASCII. • Il n'y a pas de vérification sur l'origine du message.
Courrier et DNS • "Resource record" du DNS de type MX Cerist.dz. IN MX 100 mail.wissal.dz. IN MX 200 mail.eldjazair.net.dz. • Il est utile d ’avoir plusieurs MX ( le poid le plus faible est préféré ) • Tolérance aux pannes et répartition de charges: Cerist.dz IN MX 10 smtp.cerist.dz smtp.cerist.dz. IN A 193.194.64.85
Courrier et DNS Traitement: • s ’il n ’y a pas de règles spécifiques de routage (local, mailertable), utilisation des MX • s'il n'y a pas de MX, alors envoyer le courrier directement à la machine en utilisant l ’adresse IP. Si il n ’y a pas d ’adresse IP, rejet du message. • Si on apparaît dans la liste des MX, retirer les MX de poids égaux et supérieurs (moins prioritaires). • essayer les MX par ordre de priorité décroissante. En cas d ’échecs, on conserve le message et on réessaye à intervalle régulier. • Toujours mettre un champ MX même sur le serveur ( dione.urec.fr IN MX 0 dione.urec.fr ) • Attention, certains routeurs modifient ce traitement...
POP et IMAP • Des protocoles permettant à des interfaces utilisateur (Eudora, Outlook, … ) de relever le courrier sur un serveur • POP: Post Office Protocol • protocole simple • transfert les nouveaux messages de la boîte au lettre, a partir le serveur, vers la machine cliente (Mac ou PC) • IMAP: Interactive Mail Access Protocol • évolution de POP, permet de gérer les dossiers sur le serveur • les courriers restent sur le serveur, sont triés et rapatriés à la demande de l'utilisateur, puis remis en place à la fin de la session.
Session SMTP (1) • Depuis l'ordinateur machin.cerist.dz vers mail.transfer.dz • Commande : Mail -v user@cerist.dz • Les réponses de la machine distante sont précédées par un nombre . • Les commandes envoyées par la machine mail.transfer.dz sont précédées de >>> (ce n'est pas dans le protocole) • machin appelle en IP la machine mail • ce n'est pas encore le dialogue: user@cerist.dz. Connecting to mail.transfer.dz. (smtp)... • le daemon de messagerie de mail.transfer.dz répond • 220-mail.transfer.dz.dz Sendmail 8.6.11/8.6.9 ready at Wed, 7 Feb 1996 10:59:34 +0100
Session SMTP (2) • les stations entament le dialogue • 220 ESMTP spoken here • >>> EHLO machin.cerist.dz • 250-mail.transfer.dz Hello machin.cerist.dz [134.157.4.15], pleased to meet you • 250-EXPN • 250-SIZE • 250 HELP • machin donne le nom de l'expéditeur • >>> MAIL From:<user@cerist.dz> SIZE=200 • 250 <user@cerist.dz>... Sender ok • machin donne le nom du destinataire • >>> RCPT To:<user@transfer.dz> • 250 <user@transfer.dz>... Recipient ok
Session SMTP (3) • machin indique qu'il va transférer le message >>> DATA 354 Enter mail, end with "." on a line by itselfla lettre avec son entête et son corps est envoyée ici • mail indique qu'il l’a bien remis à user 250 KAA18774 Message accepted for delivery user@transfer.dz... Sent (KAA18774 Message accepted for delivery) • machin désire terminer la transaction (QUIT) Closing connection to dom.dom.dz >>> QUIT 221 mail.transfer.dz closing connection
Structure de la lettre reçu • La lettre reçu est modifié par chaque agent de transfert traversé (sendmail). • Exemple de lettre reçu: Received: from mail.cerist.dz by m1.domaine1.dz (8.6.10/dom-1.0) with ESMTP; Mon, 5 Feb 1996 10:51:13 +0100 Received: from (mail.cerist.dz [192.54.193.133]) by m2.domaine2.dz (8.7.1/8.7.1) with ESMTP id KAA11083 for <art@domaine.dz> Mon, 5 Feb 1996 10:51:12 +0100 (MET) Date: Tue, 30 Jul 2002 13:33:09 -0400 Message-Id: <200207301733.g6UHX9p15704@transfer.dz> From: user@cerist Reply-to: postmaster@cerist.dz To: amine@wissal.dz Subject: Salut
Lettre reçue (1) • Les "Received" indiquent le chemin suivi, dans l'ordre inverse. Ils sont ajoutés par les machines ( relais SMTP ) à travers lesquelles le message a transité. Ils indiquent: l ’origine, la destination, date et parfois l ’adresse de l ’enveloppe de destination. Ils permettent de retrouver l ’origine du message. Utile pour le suivie et la correction an cas de problèmes. Évite les bouclages de messages ( arrêt entre 17 et 25 champs received ).
Lettre reçue (3) • Destinataire To: user@transfer.dz • Copie conforme Cc: user2@transfer.dz • Sujet du courrier Subject: SALUT • Date d'envoi (départ - attention à la synchronisation des horloges) Date: Fri, 10 Jan 92 15:39:16 +0000 • Origine From: utilisateur@domaine.dz • Ligne blanche de fin d'en-tête et de début de corps: Salut, comment tu va
ESMTP et MIME • Ajoute des fonctionnalités nouvelles • Transport de messages 8 bit MIME • Taille maximale de message • Fonctions autorisées (EXPN, VRFY, ...) • Autres extensions (Pipelining, extensions privées) • Le message de bienvenue ESMTP est EHLO (au-lieu de HELO), en cas de réponse négative le client doit basculer vers l'ancien protocole
Le format MIME • Le format MIME Multipurpose Internet Mail Extension est une extension de la spécification du format du message (RFC 1341 a 1345). • Permet d’intégrer plusieurs formats de données dans le message (images, vidéo, etc..) • Pour cela il contient des entêtes supplémentaires qui décrivent les différentes composants du message.
ESMTP(2) • A la connexion, le serveur indique les extensions qu'il supporte • Exemple: EHLO mail.eldjazair.net.dz 250-mail.cerist.dz Hello mail.eldjazair.net.dz? 250-8BITMIME 250-SIZE 2048000 250-EXPN 250-DSN 250-VERB 250-HELP
Configuration de sendmail Sendmail se configure via plusieurs fichiers: • /etc/mail/sendmail.cf : le fichier de configuration principal. • /etc/mail/aliases : le fichier de configuration des alias. • /etc/mail/access.db • /etc/mail/virtusertable.db • /etc/mail/genercistable.db
Configuration de sendmail • Le fichier Sendmail.cf est le fichier de configuration central de sendmail. • Caractérisé par une syntaxe très compliquée. • On n’écrit pas à la main le fichier sendmail.cf on utilise des fichiers de configuration types livrés généralement avec sendmail puis on modifie quelques paramètres . • Sinon on doit le générer avec le macro processeur m4.
Configuration de sendmail Le fichier sendmail.cf contient: • des définitions de variables(macros en terminologie sendmail )une variable est précédé par une seul lettre en minuscule ou en majuscule sans séparation. • des définitions de classes: une classe est similaire a une variable sauf qu’elle peut prendre plusieurs éléments etc... • des définitions d'options. • des définitions de priorités. • des définitions d'utilisateurs fiables. • des définitions de champs d'en-tête. • des définitions de tables de correspondances. • des définitions d'agents de transport de messages. • des règles de réécriture.
Définition d’une variable dans sendmail.cf La commande de définition La valeur de la variable DDdom.com La variable à définir
Quelque commandes de sendmail.cf Command Syntaxe Signification • Version Level Vlevel[/vendor] Specify version level. • Define MacroDxvalue Set macro x to value. • Define ClassCcword1[ word2]... Set class c to word1 word2.... • Define ClassFcfile Load class c from file. • Set OptionOoption=value Set option to value. • Trusted UsersTuser1[ user2...] Trusted users are user1 user2....
Quelque commandes de sendmail.cf Command Syntaxe Signification • Define MailerMname, {field=value} Define mailer name. • Define HeaderH[?mflag?]name:format Set header format. • Set RulesetSn Start ruleset number n. • Define RuleRlhs rhs comment Rewrite lhs patterns to
Quelques exemples Quelques variables prédéfinis: Variable utilisation signification • J Djtransfer.dz définit ce domaine comme domaine par défaut. • M le nom de ce domaine (le domaine uniquement) • X le nom complet de l’emtteur • Etc.. Il est possible de définir ses propres variables avec la macro Dxvaleur ou x est le nom de la variable, et valeur la valeur assigné a cette variable.
Quelques exemples Définition de classes: • Une classe est précédée par les lettres C ou F • Sa syntaxe est similaire a une définition de variable a ceci prêt qu’elle peut contenir plusieurs variables dans la même ligne ou sur plusieurs lignes. Par exemple : Cwval1 val2 Cwval3 Assigne a la classe w les valeurs: val1 val2 et val3 • La commande F permet d’assigner a la classe des valeurs a partir d’un fichier: Fwnon-fichier Ou nom-fichier contient des valeurs sur chaque ligne
Quelques exemples • Définition des options: Une option est défini après la commande O, elle permet de définir l’environnement de sendmail, par exemple, les chemins d’accès pour certain fichiers important. Exemple: la définition du chemin du fichier des alias O AliasFile=/etc/aliases Autres exemples: # temporary file mode O TempFileMode=0600 # default timeout interval O Timeout.queuereturn=5d
Règles de réécriture • Les règles de réécritures sont le cœur de la configuration du fichier sendmail.cf. • C’est un ensemble de règles individuelles utilisées pour transformer les adresses de messagerie du format émis par le programme utilisateur (outlook ou autre), vers un format compris par l’agent de remise des messages (smtp). • Le format d’une règle: R<motif> <transformation> <commentaire> Sendmail analyse l’adresse, si elle correspond au motif, il lui applique la transformation. • Le résultat obtenu peut être re transformé par une autre règle de réécriture.
Exemple d’une réécriture d’une adresse dupont@machine Utilisation des alias Henri.Dupont@machine Ajout du domaine Henri.Dupont@machine.truc.net Suppression du nom de la machine Henri.Dupont@truc.net
Variables et classes utilisées pour la configuration de sendmail • La liste des domaines qui recevrons leur mail a partir de sendmail: Cwlocalhost localdomain.dz mail.autredomaine.dz …. Ou bien Fw/etc/mail/local-host-names local-host-names contient la liste des domaines dont sendmail reçoit les mails. • Le domaine officiel: Djwissal.dz Lorsqu’un e-mail est émis, le message contient ce nom de domaine par défaut.
Problèmes de sécurité(1) • Divers problèmes: • pertes de messages • par l ’agent de transport ( le MTA ) • par l ’utilisateur • par un incident matériel • Écoute des messages • Falsification des messages
Securité (2) Réponses: • extension DSN informe l’expéditeur sur ce qui est arrivé au message. • Chaque relais sait indiquer si le message est envoyé correctement ou non au relais suivant. • Limitation possible du nombre de relais par SMTP. • Utilisation du Chiffrement entre les serveurs (PGP).
SPAM (1) : Le problème • Courrier non sollicité envoyé à plusieurs personnes ( idem au prospectus des boites aux lettres ) • Les adresses sont récupérées via les News, les listes de diffusion, les pages Web ( analyse des champs mailto ). • Apparu avec l ’explosion du nombre d ’utilisateur de l ’Internet ( solutions apparues en 1997 ). • Un commerce florissant ( vente de fichiers d ’utilisateurs… )
SPAM (2) - Solutions • Reconnaître l ’auteur d ’un SPAM • Adresse « abuse » • Filtrage au niveau personnel • Filtrage au niveau d ’un site • liste noir des « spammeurs » connus • interdire le relayage • refuser les adresses invalides • refuser les adresses IP d’expéditeurs non valides • L ’avenir : règles anti-spam , initiative MAPS RBL ( Mail Abuse Protection System - realtime Blackhole List ) de P.Vixie ( constitution d ’une arborescence DNS composée des @IP de domaines spammeurs - d.c.b.a.maps.vix.com )
un autre serveur de messagerie POSTFIX • Un Agent de transfert de messages comme sendmail . • C’est un serveur qui est caractérisé par sa rapidité par rapport a d’autres serveurs. • Sa configuration et très simple par rapport à d’autres (notamment sendmail).
Configuration de postfix • Les fichiers de configurations se trouvent sur le répertoire /etc/postfix. • Le fichier principale est /etc/postfix/main.cf
Le fichier main.cf • #Informations sur les répertoires locaux. • Queue directory = /var/spool/postfix • Command_directory = /usr/local/sbin • Daemon_directory = /usr/local/libexec/postfix
Le fichier main.cf • #possession des fichiers de postfix: • Mail_owner = postfix • #nom de la machine et du domaine : • Myhostname = alex.linux.dz • #pour l’envoi du courrier • Myorigine = $myhostname • #mode de transport • Default_transport = smtp
Le fichier main.cf • #gestion des alias • Alias_map = hash :/etc/postfix/alias • Alias_database = hash : /etc/postfix/alias • #délivrance du courrier • Mail_box_command = /usr/local/bin/procmail