• Aucun résultat trouvé

14.6.4 Les fichiers et répertoires de sendmail

Dans le document Le système Linux cours enligne en pdf (Page 95-98)

Comme on l’a vu précédemment, les fichiers et les répertoires de sendmail dépendent de la version de sendmail utilisé, mais aussi du système. Nous nous restreindrons donc seulement à la version de sendmail ≥ 8.9.X sur un système Linux.

14.6.4.1 - Les fichiers

• fichier sendmail fichier binaire exécutable • fichier sendmail.cf fichier de configuration

• fichier sendmail.hf fichier d’aide lors du dialogue SMTP • fichier sendmail.st fichier de statistiques

• fichier aliases fichier contenant les alias en clair • fichier aliases.db version “compilée” des alias

• fichier .forward fichier permettant de renvoyer les courriers d’un utilisateur.

14.6.4.2 - Les répertoires

• répertoire mqueue la file d’attente.

• répertoire mail ce répertoire contient les boites aux lettres. 14.6.4.3 - Le fichier « aliases »

Ce fichier permet de définir des listes de diffusion. Il est possible de diriger des courriers destinés à une adresse vers une autre adresse. Les alias permettent aussi de rediriger des mails sur des programmes. Ce fichier doit respecter la syntaxe suivante :

Format 1 : alias : adresse_locale => L'utilisateur est sur la machine.

Format 2 : alias : adresse_distante => L'utilisateur est sur une autre machine mdup : casimir@ileauxenfants.fr

Format 3 : alias : fichier => Il faut indiquer un nom absolu de fichier. Sendmail rajoute les messages dans le fichier. Le fichier doit exister, être accessible en lecture pour tout le monde. Il ne doit pas être exécutable.

phill : /var/spool/mail/phill

Format 4 : alias : "| ligne de comande" => Sendmail passe le message comme entrée standard de la commande.

Format 5 : alias::include:fichier => Le message est transmis à tous les utilisateurs indiqués dans le fichier. Ces listes de distribution peuvent être mises à jour par les utilisateurs. Le fichier d'alias permet aussi de faire des listes de diffusion en mettant plusieurs utilisateurs séparés par de virgules pour un alias :

superliste : rahan, drocourt@iut-amiens.fr

Un alias owner-superliste : rahan (facultatif) indique rahan comme étant responsable de la liste de diffusion superliste ; si un membre de cette liste ne peut pas âtre joint, rahan recevra un message d'erreur.

Ligne trop longue

Si vous avez une ligne trop longue (~ 2000 caractères) dans le fichier /etc/aliases : (vous le savez en tapant "newaliases" qui vous répond "alias line too long")

1ere possibilité :

Décomposer la la ligne en plusieurs lignes : fichier aliases :

grand-alias: petit-alias1, petit-alias2 petit-alias1: membre1,membre2... petit-alias2: membre100,membre101...

2eme possibilité :

Découper le fichier aliases en plusieurs fichiers : fichier aliases : grand-alias: :include:/etc/mail/long-alias fichier /etc/mail/long-alias : membre1 membre2 ... membre101 3eme possibilité :

Créer un script qui construit dynamiquement la liste des membres depuis le fichier group ou le fichier passwd => fichier aliases : mon_group: "|un_script mon_group"

Ce script doit avoir une gestion des erreurs, et il doit aussi definir le champ "from" avec "-f" 14.6.4.4 - Le fichier « .forward »

Ce fichier permet lui aussi de rediriger les mails d’un utilisateur sur une autre boîte aux lettres, ou bien un programme. Celui-ci est propre à chaque utilisateur et se trouve dans le home directory de l’utilisateur. L’utilisation de ce fichier peut être la cause de problèmes, notamment des boucles de courrier :

L’utilisateur A renvoie son courrier à l’utilisateur B et l’utilisateur B renvoie son courrier à l’utilisateur A.

14.6.4.5 - La file d’attente

Comme tous les mails ne peuvent pas être délivré immédiatement, sendmail les enverra plus tard, il doit donc les sauver dans un répertoire : la file d’attente. Ce répertoire contient les messages tant qu’ils n’ont pas été délivrés.

Un message est mis dans la file d’attente :

• Lorsque la machine destination n’est pas joignable ou en panne. Le courrier sera délivré quand la machine destination sera de nouveau en service.

• Quand un message est destiné à plusieurs destinataires, certains messages peuvent être délivrés d’autres non. Ceux qui ont échoués seront sauvés dans la file d’attente pour une remise différée.

• Lorsqu’un message est coûteux en terme de distance, le message sera sauvé dans la file d’attente, en attendant que le réseau soit moins chargé.

Le répertoire de file d’attente contient deux type de fichiers, les fichiers commençant par df ( data file ) qui contiennent les messages et les fichiers commençants par qf ( queue file ) qui contiennent les entêtes, mais aussi des informations concernant le traitement du message.

Il est possible de connaître les messages en cours d'attente grâce à la commande mailq, qui donne par exemple :

[root]# mailq

/var/spool/mqueue (1 request)

----Q-ID---- --Size-- ---Q-Time--- ---Sender/Recipient--- g01776l10337 4136 Tue Jan 1 08:07 MAILER-DAEMON

(<newsletter@mailer.megahardcoresex.com>... reply: read error) <newsletter@mailer.megahardcoresex.com> [root]#

14.6.4.6 - Emplacement des fichiers et répertoires sur le système Fichier ou répertoire emplacement

Fichier sendmail /usr/sbin/sendmail Fichier de configuration /etc/(mail/)sendmail.cf

Fichier de statistiques /var/log/sendmail.st Fichier des alias /etc/(mail/)aliases Fichier d’aide de SMTP /usr/lib/sendmail.hf Répertoire des fichiers de configuration /etc/mail

Répertoire de la file d’attente /var/spool/mqueue Répertoire contenant les boites aux lettres /var/spool/mail

La Figure 7 illustre l’intégration et la position de sendmail dans l’architecture de courrier d’une machine Unix.

mail elm mailx

Sendmail Sendmail.cf UUCP SMTP local ….. UUCP SMTP ….. aliases .forward

mail elm mailx Sendmail

Sendmail.cf

….. Ligne série Réseau IP

Boîte aux lettres

Figure 7

14.6.5 - Le fichier de configuration sendmail.cf

Ce fichier est un fichier texte qui permet de configurer le sendmail. Il se trouve généralement dans le répertoire /etc ou /etc/mail, mais cela peut varier selon le système. Ce fichier se décompose en plusieurs sections :

• Définition de macros, • Définition de mailers, • Règles de réécriture, • Diverses options.

Le premier caractère de chaque ligne détermine la syntaxe de la ligne. Le caractère # introduit une ligne de commentaire. Les lignes vides sont autorisées. Le problème de ce fichier réside dans sa complexité, pour cette raison, on ne le modifie quasiment jamais mais on préfère passer par un fichier m4 qui est un fichier traité par le pré-processeur m4, à partir duquel sera généré le fichier "sendmail.cf" final.

Dans le document Le système Linux cours enligne en pdf (Page 95-98)