• Aucun résultat trouvé

Relations avec l’OS

Dans le document Cours d’introduction `a TCP/IP (Page 155-158)

4 Exemple de MTA - “Sendmail” et son en- en-vironnement

4.2 Relations avec l’OS

Sendmail a de multiples relations avec le syst`eme d’exploitation, comme lafigure 5 tente de le r´esumer :

Outil externe pour délivrer le mail aux utilisateurs

... ...

File d’attente des messages en UUCP

/var/mail/userX

$HOME/.forward

/var/spool/mqueue /etc/mail/sendmail.cf

/etc/mail/aliases

/etc/mail/userdb

X.400 SMTP/ESMTP

syslogd

Sendmail

figure VIII.05

– L’activit´e op´erationnelle desendmailest consign´ee `a l’aide desyslog13, ce qui explique la pr´esence de la ligne suivante trouv´ee dans le fichier /etc/syslog.conf:

mail.info /var/log/maillog

– UUCP,X.400,SMTP sont autant de moyens de propager le courrier. Ces supports peuvent cohabiter au sein d’une mˆeme configuration ; autant de “Mailer” s´electionn´es en fonction de l’adresse du destinataire (cf sendmail.cf).

– /etc/sendmail.cf est le fichier de configuration de sendmail. Tout syst`eme Unix est livr´e avec une configuration standard qu’il faut adap-ter `a la situation locale ; c’est en g´en´eral `a cet instant que les adminis-trateurs syst`emes deviennent pensifs. . .(voir pourquoi au paragraphe 5).

– /etc/aliasesest une base de synonymes. Quand sendmailre¸coit un courrier, il tente de reconnaˆıtre le nom du destinataire dans cette base et si c’est le cas de lui appliquer la transformation prescrite.

Un certain nombre d’alias sont requis par la[RFC 1123], d’autres sont conseill´es par la [RFC 2142]. Un court extrait du-dit fichier :

13Chapitre III du cours de programmation — ´El´ements de serveurs

# Basic system aliases -- these MUST be present MAILER-DAEMON: postmaster

postmaster: root

# Well-known aliases -- these should be filled in!

root: user

Cela signifie par exemple que chaque fois q’un courrier est envoy´e au

“postmaster” de ce site, sendmail transforme “postmaster” en “root”, puis “root” en “user”. Si cette derni`ere chaˆıne ne fait pas l’objet d’une autre transformation par cette table, il s’agit d’un utilisateur de la machine courante.

L’entretien de la table des alias est de la responsabilit´e de l’admi-nistrateur de la machine. La table des alias d’un domaine est un fi-chier strat´egique qu’il convient de mettre `a jour soigneusement (droits d’acc`es, utilisateurs inexistants, boucles. . .).

A chaque changement dans cette table l’administrateur doit fabriquer` une table d’acc`es rapides (“hash table”) `a l’aide de la commande

“sendmail -bi” souvent li´ee `a “newaliases”

– /etc/userdb Cette table, “User Database” permet au sendmail d’ef-fectuer une traduction de chaˆıne sur les noms des utilisateurs pour les courriers sortants. Cette disposition permet de traduire un nom de login en “Prenom.Nom”, donc d’avoir une adresse de retour de la forme

“Prenom.Nom@domaine” ce qui fait toujours plus chic !

– /var/spool/mqueue. Dans ce r´epertoire sont stock´es les mails en at-tente d’une d´elivrance. Il peuvent y rester plusieurs jours (c’est un param`etre de la configuration du sendmail), on peut visualiser cette file d’attente avec la commandemailq.

Si un grand nombre de courriers sont en attente, et ¸ca peut ˆetre le cas pour les machines relais, la section du disque dur qui supporte cette partition (ici /var) doit faire l’objet d’un dimensionnement en cons´equence, sous peine d’obligersendmail`a refuser les mails faute de place disque.

– /var/mail/userX. Chaque utilisateur de la machine locale (il peut ne pas y en avoir sur un serveur) a une boˆıte aux lettres (“mail box”) rep´er´ee comme un fichier ayant comme nom son login. Par exemple /var/spool/mail/root.

Ce fichier est mis `a jour automatiquement par le MTA local en cas d’arriv´ee de courrier.

De mˆeme que pour le r´epertoire de file d’attente, le r´epertoire des boˆıtes aux lettres des utilisateurs doit faire l’objet d’une attention

par-Relations avec l’OS 141 ticuli`ere de la part de l’administrateur ; la prolif´eration des “documents

attach´es” aux courriers ´electroniques est un fl´eaux contre lequel il est difficile de se pr´emunir sauf `a agrandir perp´etuellement la taille de la partition /var. . .! :(

– ${HOME}/.forward : avant d’ˆetre finalement d´elivr´e dans la boˆıte aux lettres de l’utilisateurs, sendmail lit le contenu de ce fichier, ${HOME}

´etant le r´epertoire racine des fichiers de l’utilisateur en question.

Le fichier.forward est la base personnelle d’alias pour chaque utilisa-teur, ¸ca permet de renvoyer son courrier vers d’autres sites, voire aussi d’effectuer des transformations avant de stocker les mails (procmail).

Si le .forward contient la chaˆıne suivante :

moi@un-autre-site.ailleurs

Tous les courriers envoy´e `a cette utilisateurs sont renvoy´es `a l’adresse indiqu´ee.

Ou encore :

"|exec /usr/local/bin/procmail"

Qui permet d’invoquer l’usage du programmeprocmail, celui-ci est un puissant filtre qui permet de faire un tri des courriers ´electroniques par mots clefs (indispensable pour g´erer les “mailing-lists”abondantes).

Enfin on peut remarquer qu’aucun signal n’est pr´evu pour indiquer

`a sendmail qu’il faut relire son fichier de configuration, c’est voulu par le concepteur. Lors de la mise au point de ce fichier, il faut arrˆeter (“

kill -TERM pid-du-sendmail”) puis relancer (/usr/sbin/sendmail -bd -q30m) manuellement. . .

Dans le document Cours d’introduction `a TCP/IP (Page 155-158)