ATRID
Tout lecteur ou utilisateur de ce document reconnat avoir pris connaissance de ce quaucune garantie nest
donne quant son contenu, tous points de vue, notamment vracit, prcision et adquation pour toute
utilisation ;
il nest procd aucune modification autre que cosmtique, changement de format de reprsentation,
traduction, correction dune erreur de syntaxe vidente, ou en accord avec les clauses ci-dessous ;
le nom, le logo et les coordonnes de lauteur devront tre prservs sur toutes les versions drives du
document tous les endroits o ils apparaissent dans loriginal, les noms et logos dautres contributeurs ne
pourront pas apparatre dans une taille suprieure celle des auteurs prcdents, des commentaires ou
additions peuvent tres insrs condition dapparatre clairement comme tels ;
les traductions ou fragments doivent faire clairement rfrence une copie originale complte, si possible
une copie facilement accessible ;
les traductions et les commentaires ou ajouts insrs doivent tre dats et leur(s) auteur(s) doi(ven)t tre
identifiable(s) (ventuellement au travers dun alias) ;
cette licence est prserve et sapplique lensemble du document et des modifications et ajouts ventuels
(sauf en cas de citation courte), quelquen soit le format de reprsentation ;
quel que soit le mode de stockage, reproduction ou diffusion, toute version imprime doit contenir une
rfrence une version numrique librement accessible au moment de la premire diffusion de la version
imprime, toute personne ayant accs une version numrise de ce document doit pouvoir en faire une copie
numrise dans un format directement utilisable et si possible ditable, suivant les standards publics, et
publiquement documents en usage ;
La transmission de ce document un tiers se fait avec transmission de cette licence, sans modification, et en particulier sans addition de
clause ou contrainte nouvelle, explicite ou implicite, lie ou non cette transmission. En particulier, en cas dinclusion dans une base de
donnes ou une collection, le propritaire ou lexploitant de la base ou de la collection sinterdit tout droit de regard li ce stockage et
concernant lutilisation qui pourrait tre faite du document aprs extraction de la base ou de la collection, seul ou en relation avec dautres
documents.
Toute incompatibilit des clauses ci-dessus avec des dispositions ou contraintes lgales, contractuelles ou judiciaires implique une limitation
correspondante : droit de lecture, utilisation ou redistribution verbatim ou modifie du document.
Adapt de la licence Licence LLDD v1, octobre 1997, Libre reproduction Copyright Bernard Lang [F1450324322014] URL :
http://pauillac.inria.fr/~lang/licence/lldd.html
Chapitre 1. Introduction
Le courrier lectronique est couramment utilis pour vhiculer des messages. En 1982, les propositions du rseau
ARPANET pour le format et le transport des messages ont t publis dans les RFC 822 et 821. Le CCITT a
cr la norme X.400 base sur le modle OSI mais celle-ci nest quasiment plus utilise, car son implmentation
a t juge trop difficile par les industriels. Aujourdhui, lchange de courriers lectronique sur Internet utilise
les recommandations de la RFC 822 et de ses dclinaisons.
Le protocole utilis pour le transfert de courrier est SMTP (Simple Mail Transfert Protocol). Il sagit dun protocole simple sappuyant sur TCP (port 25), dont les ordres sont donns par des chanes de caractres ASCII. Pour
palier certains problmes (taille des messages, "timeouts") li SMTP, une nouvelle version baptise ESMTP
a t propose par la RFC 1425. Les clients, souhaitant utiliser cette version, commencent lchange des messages par la chane "EHLO" au lieu de "HELO". Si la demande est rejete, le client utilise lancienne version du
protocole. Dautres ajouts ont t effectus sur ce protocole, donn dans les RFC 1652, 1830, 1845, ?
On distingue deux types de programmes pour la gestion du courrier lectronique, les MUA (Mail User Agent)
sont les programmes en interaction avec lutilisateur, pour permettre la composition et la lecture des messages.
Les MTA (Mail Transfert Agent) soccupent des changes de messages en suivant le protocole SMTP et de la
distribution.
Le logiciel sendmail est un MTA. Il a t crit dans les annes 80 par Eric Allman lUniversit de Berkeley . Il
existe dautres programmes de transport de courrier comme MMDF, Smail, Zmailer et Qmail pour ne citer que
les plus utiliss. Il existe plusieurs versions de sendmail, le prsent cours portant sur la version V8 (8.9 lors de
lcriture du support).
Signification
Identit SMTP
DATA
RSET
annule le message
VRFY
HELP
QUIT
fin de la session
250 HELP
HELO serveur.orsay.atrid.fr
250 serveur.orsay.atrid.fr Hello root@serveur.orsay.atrid.fr [192.168.1.1], pleased to meet you
MAIL FROM:<root@serveur.orsay.atrid.fr>
250 <root@serveur.orsay.atrid.fr>... Sender ok
RCPT TO:<gpolart@serveur.orsay.atrid.fr>
250 <gpolart@serveur.orsay.atrid.fr>... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
Le message.
.
250 MAA14449 Message accepted for delivery
QUIT
221 serveur.orsay.atrid.fr
Connection closed by foreign host.
Lors de cette session, sendmail a gnr un enregistrement dans le fichier de trace /var/log/maillog :
Chaque ligne de lentte commence par un mot cl suivi du caractre ":". Le contenu de lentte peut varier en
fonction du logiciel utilis pour composer le message. Certains mots cls sont obligatoires alors que dautres sont
optionnels.
Le corps du message dbute aprs la premire ligne vide. Si une ligne utilisant le mot cl "Subject:" apparat dans
le corps, celle ci est renvoye dans lentte.
Pour envoyer le courrier, le MTA inclut le message (entte et corps) dans une enveloppe. Il y a une enveloppe par
destinataire du courrier. Lenveloppe contient les adresses du destinataire et de lexpditeur.
o config.mc est le fichier source contenant les macro commandes et config.cf le fichier de configuration de
sendmail.
Pour tester ce nouveau fichier, on copie la configuration sur /etc/sendmail.cf et on lance sendmail :
/usr/sbin/sendmail -bd -q1h
Loption -bd demande sendmail de fonctionner en mode dmon et dattendre des requtes sur le port TCP 25.
Loption -q1h donne la priode de traitement des messages en attente dans la file dattente.
Sendmail utilise un ensemble de rgles dinterprtation des adresses pour savoir quelle action entreprendre pour
distribuer le courrier au bon endroit. Ces rgles sont regroupes dans des jeux de rgles numrots et interprts
dans lordre des numros. Le programme se rserve certains numros pour son utilisation :
Numro
Signification
Le but de ces rgles est de permettre de traiter les adresses mises par les programme de cration de messages.
On peut avoir des adresses de dpart du type :
From: g.polart@atrid.fr (Gilles POLART-DONAT)
From: Gilles POLART-DONAT <g.polart@atrid.fr>
Le programme doit interprter ces lignes pour extraire ladresse mettre sur lenveloppe.
En excutant la commande sendmail -bt, il est possible de visualiser les rgles utilises et de procder des tests.
Les lignes situes entre divert(-1) et divert(0) ne seront pas traites (commentaires).
La directive VERSIONID permet de spcifier un numro de version du fichier gnr.
La directive OSTYPE permet de spcifier les spcificits du systme dexploitation. Elle permet dinclure le fichier
portant le nom du systme situ dans le rpertoire ostype.
La directive FEATURE permet dinclure des fonctionalits optionnelles. Elle fait appel aux fichiers du rpertoire
feature. Dans notre exemple, nous liminons le traitement des adresses UUCP et nous choisissons procmail
comme distributeur local.
Les directives MAILER permettent de spcifier les programmes de distribution de courrier. Il faut que ces directives apparaissent en dernier dans le fichier de configuration. Dans notre cas, nous autorisons lutilisation de la
distribution locale la machine et par SMTP.
Cette configuration permet simplement de grer les boites aux lettres des utilisateurs dclars sur la machine et
de recevoir et dmettre du courrier vers lextrieur.
10
Par exemple :
# Basic system aliases - these MUST be present.
MAILER-DAEMON: postmaster
postmaster:
root
# General redirections for pseudo accounts.
bin:
root
daemon:
root
games:
root
ingres:
root
nobody:
root
system:
root
toor:
root
uucp:
root
# Well-known aliases.
manager:
root
dumper:
root
operator:
root
# trap decode to catch security attacks
decode:
root
# Person who should get roots mail
#root:
gpolart
FaxMaster:
root
gilles.polart:
autre.autre:
machin.bidule:
gpolart
autre
machin@machine
liste:
owner-liste:
admin-request:
Le fichier dalias contient des alias simples ou des dfinitions de listes de diffusions.
11
Les alias simples permettent de spcifier une nouvelle orthographe pour les noms des utilisateurs (par exemple
pour avoir une politique commune de gestion des noms de boites aux lettres indpendante des noms des utilisateurs)
La dfinition dune liste de diffusion permet, en crivant la liste denvoyer le mme message tous les abonns. Lalias owner-liste est utilis par sendmail en cas de problme dmission vers une des adresses de la
liste. Lalias admin-request est gnralement utilis pour les requtes administratives sur la liste (ajout ou
suppression dabonns).
Il faut excuter la commande newaliases pour crer la base de donnes des alias aprs toute modification du
fichier /etc/aliases.
12
Par exemple :
Mar 25 11:12:08 serveur sendmail[17103]: TAA15260: to=<admin@bastion.orsay.atrid.fr>, delay=15:50:31, xdelay=00:00:00, mailer=esmtp, relay=bastion.orsay.atrid.fr., stat=Deferred: Connection refused by bastion.orsay.atrid.fr.
Signification
from
enveloppe de lexpditeur
to
enveloppe du destinataire
delay
mailer
relay
stat
tat de la livraison
xdelay
dure de la transaction
size
taille du message
msgid
identificateur du message
13
Ce tableau donne, pour chaque agent de distribution, le nombre et la taille des messages entrants ou sortants. La
variable M est lindice interne de sendmail pour sa table des agents de distribution.
Il peut tre utile denvoyer chaque jour les statistiques au responsable de la messagerie et de remettre zro le
fichier denregistrement :
mailstats | mail -s "Statistiques" postmaster
cp /dev/null /var/log/sendmail.st
14
2 caractres pour obtenir un nom de fichier unique (de A ~ pour la premire lettre et de A Z pour la seconde)
qf<qid> : contient lentte du message et les information ncessaires la livraison, la date de destruction et la
raison pour laquelle le message nest pas dlivr.
Sendmail parcours ce rpertoire priodiquement pour tenter de dlivrer les messages en attente.
15