Page suivante - Page précédente - Table des matières

3. Configuration de sendmail

3.1 Le fichier de configuration principal

La configuration de Sendmail repose sur un ensemble de règles assez complexes. Bien que cela puisse s'avérer trés puissant, il n'est pas courant de fabriquer ex-nihilo un sendmail.cf. Il faudrait de surcroit y passer pas mal de temps. Si vous êtes motivé, lancez vous dans la lecture de la bible disponible chez O'Reilly.

Au lieu de forger à la main les règles, on utilise le pré-processeur de macros m4 pour fabriquer un fichier de configuration à partir des éléments préts à l'emploi qui sont fournis avec sendmail.

Jetons un oeil sur les premières lignes du sendmail.mc :


include(/usr/lib/sendmail.cf/m4/cf.m4)
VERSIONID(`sendmail.mc - roessler@guug.de')
OSTYPE(debian)
define(`ALIAS_FILE',`/etc/mail/aliases')

Tout d'abord, on inclut cf.m4. Ce fichier m4 contient de nombreuses macros utiles pour la suite. Ne vous trompez pas dans les chemins d'accès. Ceux que nous donnons ici correspondent typiquement à un système GNU/Linux Debian. La macro OSTYPE positionne les valeurs par défaut de certaines variables. Si vous n'utilisez pas une Debian, remplacez ici "debian" par "linux". ALIAS_FILE fournit à sendmail l'emplacement du fichier d'alias.

Les lignes suivantes forcent l'utilisation des fonctionnalités genericstable et précisent où trouver les fichiers nécessaires :


FEATURE(masquerade_envelope)
FEATURE(genericstable, `hash -o /etc/mail/genericstable')
GENERICS_DOMAIN_FILE(`/etc/mail/genericsdomain')

masquerade_envelope réclame qu'une mise en forme du type en-tête soit appliquée à l'enveloppe des messages à expédier. Est concernée l'adresse vers laquelle les agents de transport extérieurs dirigeront leurs messages d'avertissement ou leurs avis d'échecs. Les fichiers generics* seront détaillés plus loin.

A présent, on définit un hôte intelligent ( "smart agent" ), c'est à dire une machine capable de gérer le courrier sortant à notre place. Il ne s'agit pas nécessairement des serveurs POP ou IMAP de l'ISP. La hotline vous aidera le cas échéant à dissiper les doutes.


define(`SMART_HOST',`relai-de-sortie.mon.fournisseur')

Remplacez relai-de-sortie.mon.fournisseur par le nom complet ( FQDN ) correspondant à votre fournisseur d'accés.

Les deux dernières lignes incluent les définitions des "mailer" grâce auxquels sendmail détermine comment manipuler les différents types de courrier :


MAILER(local)
MAILER(smtp)

Pour générer le fichier sendmail.cf à partir du sendmail.mc, exécutez les commandes suivantes en tant qu'utilisateur root :


# m4 sendmail.mc> _sendmail.cf
# mv -f _sendmail.cf sendmail.cf

Notez la technique qui consiste à enregistrer la sortie de m4 dans un fichier temporaire avant de l'installer au bon endroit. On évite ainsi que sendmail ne lise des fichiers de configuration incomplets !

3.2 Modification des adresses

On commence par préciser à sendmail les adresses à considérer comme locales. Pas de difficultés : rentrez le nom complet de votre machine dans le fichier /etc/mail/genericsdomain. Pour obtenir ce nom, exécutez la commande suivante :


 $ hostname -f

.

Passons aux règles de reécriture proprement dites : /etc/mail/genericstable. Ce fichier est formé de deux colonnes séparées par des blancs. La première contient les adresses locales et la seconde les adresses électroniques qui doivent être employées à la place. Le fichier devrait ressembler à ça :


harry   harryx@mon.fai
maude   maudey@son.fai
root    francois@mon.fai
news    francois@mon.fai

Il devrait y avoir une entrée pour chaque compte sur la machine isolée de façon à ce que le courrier sortant du système comporte des informations d'en-tête correctes.

Afin d'améliorer les performances, sendmail n'utilise pas directement ce fichier mais une version hachée. Pour la créer, exécutez la commande suivante :


# makemap -r hash genericstable.db < genericstable

Notez que les règles issues de genericstable ne s'appliquent pas au courrier local ni à celui que vous recevez de l'extérieur. La traduction n'a lieu que si un message est transmis au relai de votre FAI.

3.3 Alias

Le fichier d'alias contient des adresses supplémentaires qui ne sont valables que pour les messages locaux. Ceci s'avère utile pour les comptes de maintenance tels root qui reçoivent des messages créés automatiquement par le système d'exploitation.

Le point de départ d'un /etc/mail/aliases pourrait ressembler à ça :


root: francois
news: root
postmaster: root
mail: root
www: root
nobody: /dev/null
MAILER-DAEMON: nobody

Dans l'exemple ci-dessus, le courrier à destination des utilisateurs root, news, postmaster, mail, et www sont renvoyés vers francois, tandis que ceux pour nobody et MAILER-DAEMON seront redirigés vers le /dev/null.

De même que le genericstable, le fichier aliases peut contenir beaucoup de données. Comme il serait inefficace que sendmail utilise le fichier texte tel quel, le mécanisme employé pour le genericstable s'applique encore : on génère une base de données hachée. Au lieu de la commande makemap, rentrez cette fois la commande newaliases. Tout fonctionne automagiquement.


Page suivante - Page précédente - Table des matières