Title: La messagerie sur Internet
1La messageriesur Internet
2- 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é
3Fonctionnement 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
4Relayage
Envoi dun 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
5Lecture 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
6Format 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 _at_domaine.dz cest le format le plus
simple. - user (user amine) _at_ domaine.dz la même adresse
avec un commentaire (user amine). - user amine_at_ domaine.dz la partie user
amine est considérée comme un seul mot. - Etc..
7Format des messages
Analogie
Enveloppe
Fromuser1_at_domaine1.dz Date 4 mars 2002 To
user2_at_domaine2.dz Bonjour, etc
En-Tête
message
Corps
8Format des messages
- Lenveloppe contient linformation utilisée par
lagent de transfert pour remettre le message à
sa destination final. - Structure dun message
- En-tête contient des informations de contrôle
et didentification mais qui ne sont pas utilisé
par lagent de transfert pour router le message. - Ligne blanche
- Corps du message
- suite de lignes terminées par CR/LF
9Format 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.
10Format des messages
- LAdresse électronique identifie de manière
unique chaque boite aux lettres. - Personne_at_Machine.Domaine jean_at_smtphost.dim.jussi
eu.fr - Personne_at_Domaine Gautier_at_urec.cnrs.fr
- les adresses littérales sont déconseillées
jean_at_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)
11- Autre types dadresses
- Adresse UUCP site1!site2!!siten!user
- user_at_site.uucp --gt nécessite une passerelle
uucp/Internet - Adresses Bitnet user_at_site ou site est un nom de
machine - user_at_site.bitnet
- Adresse decnet usermachine
- Adresses X400ltCfr/Aadm/Psection/Nusergt
12Simple 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.
13Structure 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 lt 64 caractères
- nom de domaine lt 64 caractères
- nombre de destinataires lt 100
- ligne à ligne avec CR/LF
- ligne lt 1000 caractères.
- Les besoins d extensions et l arrivée de mime
ont donné lieu à gt Extended SMTP (RFC 1425) - L envoi dun binaire n est pas possible sans
structuration préalable.
14Envoi-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.
15Courrier 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
16Courrier 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...
17POP 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.
18Session SMTP (1)
- Depuis l'ordinateur machin.cerist.dz vers
mail.transfer.dz - Commande Mail -v user_at_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 gtgtgt (ce n'est
pas dans le protocole) - machin appelle en IP la machine mail
- ce n'est pas encore le dialogue
- user_at_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 105934 0100
19Session SMTP (2)
- les stations entament le dialogue
- 220 ESMTP spoken here
- gtgtgt 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
- gtgtgt MAIL Fromltuser_at_cerist.dzgt SIZE200
- 250 ltuser_at_cerist.dzgt... Sender ok
- machin donne le nom du destinataire
- gtgtgt RCPT Toltuser_at_transfer.dzgt
- 250 ltuser_at_transfer.dzgt... Recipient ok
20Session SMTP (3)
- machin indique qu'il va transférer le message
- gtgtgt DATA 354 Enter mail, end with "." on a line
by itself la lettre avec son entête et son corps
est envoyée ici - mail indique qu'il la bien remis à user
- 250 KAA18774 Message accepted for delivery
user_at_transfer.dz... Sent (KAA18774 Message
accepted for delivery) - machin désire terminer la transaction (QUIT)
- Closing connection to dom.dom.dz gtgtgt QUIT 221
mail.transfer.dz closing connection
21Structure 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
105113 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 ltart_at_domaine.dzgt Mon, 5 Feb 1996
105112 0100 (MET) - Date Tue, 30 Jul 2002 133309 -0400
- Message-Id lt200207301733.g6UHX9p15704_at_transfer.dz
gt - From user_at_cerist
- Reply-to postmaster_at_cerist.dz
- To amine_at_wissal.dz
- Subject Salut
22Lettre 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 ).
23Lettre reçue (3)
- Destinataire
- To user_at_transfer.dz
- Copie conforme
- Cc user2_at_transfer.dz
- Sujet du courrier
- Subject SALUT
- Date d'envoi (départ - attention à la
synchronisation des horloges) - Date Fri, 10 Jan 92 153916 0000
- Origine
- From utilisateur_at_domaine.dz
- Ligne blanche de fin d'en-tête et de début de
corps - Salut, comment tu va
24ESMTP 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
25Le 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 dinté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.
26ESMTP(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
27Configuration 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
28Configuration 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.
29Configuration 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 quelle 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.
30Définition dune variable dans sendmail.cf
La commande de définition
La valeur de la variable
DDdom.com
La variable à définir
31Quelque commandes de sendmail.cf
- Command Syntaxe Signification
- Version Level Vlevel/vendor Specify version
level. - Define Macro Dxvalue Set macro x to value.
- Define Class Ccword1 word2... Set class c to
word1 word2.... - Define Class Fcfile Load class c from file.
- Set Option Ooptionvalue Set option to value.
- Trusted Users Tuser1 user2... Trusted users
are user1 user2....
32Quelque commandes de sendmail.cf
- Command Syntaxe Signification
- Define Mailer Mname, fieldvalue Define mailer
name. - Define Header H?mflag?nameformat Set header
format. - Set Ruleset Sn Start ruleset number n.
- Define Rule Rlhs rhs comment Rewrite lhs patterns
to
33Quelques 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 lemtteur
- 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.
34Quelques 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 quelle 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 dassigner a la classe des
valeurs a partir dun fichier - Fwnon-fichier
- Ou nom-fichier contient des valeurs sur chaque
ligne
35Quelques exemples
- Définition des options
- Une option est défini après la commande O, elle
permet de définir lenvironnement de sendmail,
par exemple, les chemins daccè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 TempFileMode0600
- default timeout interval
- O Timeout.queuereturn5d
36Règles de réécriture
- Les règles de réécritures sont le cur de la
configuration du fichier sendmail.cf. - Cest 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 lagent de remise des messages
(smtp). - Le format dune règle
- Rltmotifgt lttransformationgt ltcommentairegt
- Sendmail analyse ladresse, 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.
37Exemple dune réécriture dune adresse
dupont_at_machine
Utilisation des alias
Henri.Dupont_at_machine
Ajout du domaine
Henri.Dupont_at_machine.truc.net
Suppression du nom de la machine
Henri.Dupont_at_truc.net
38Variables 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
- Lorsquun e-mail est émis, le message contient ce
nom de domaine par défaut.
39Problè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
40Securité (2)
- Réponses
- extension DSN informe lexpé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).
41SPAM (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 )
42SPAM (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 dexpé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 _at_IP de domaines
spammeurs - d.c.b.a.maps.vix.com )
43un autre serveur de messagerie POSTFIX
- Un Agent de transfert de messages comme sendmail
. - Cest un serveur qui est caractérisé par sa
rapidité par rapport a dautres serveurs. - Sa configuration et très simple par rapport à
dautres (notamment sendmail).
44Configuration de postfix
- Les fichiers de configurations se trouvent sur le
répertoire /etc/postfix. - Le fichier principale est /etc/postfix/main.cf
45Le 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
46Le fichier main.cf
- possession des fichiers de postfix
- Mail_owner postfix
- nom de la machine et du domaine
- Myhostname alex.linux.dz
- pour lenvoi du courrier
- Myorigine myhostname
- mode de transport
- Default_transport smtp
47Le 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
48FIN