Exemple de configuration de Sendmail

Notez cet article

Dans cet exemple, nous nous contentons d’une configuration simple, dans laquelle le serveur SMTP reçoit des messages d’Internet et du réseau local (192.168.1.0/24).
Tous les utilisateurs sont autorisés à envoyer du courrier sur Internet, et le serveur ne gère qu’un seul domaine, mail.dom.com.
Cette architecture correspond à celle d’une petite entreprise recevant quelques dizaines de messages électroniques par jour.
La figure ci-dessous illustre la configuration de la messagerie.

 

Les adresses électroniques utilisées dans cette organisation correspondent aux comptes des utilisateurs de la machine UNIX mail.dom.com. Ces adresses sont les suivantes :
postmaster@mail.dom.com
jc.charles@mail.dom.com
a.pierre@mail.dom.com

Au vue de l’organisation du système de messagerie, on suppose que la machine dispose d’un serveur POP pour les clients du réseau local 192.168.1.0/24.
Pour une telle configuration, nous avons besoin des fichiers suivants dans /etc/mail :
· sendmail.mc
· sendmail.st, créé grâce à # touch sendmail.st
· aliases
· access
· local-host-names ou sendmail.cw

Le fichier sendmail.mc sert à construire le fichier de configuration de Sendmail. Il comporte les éléments suivants :
divert(-1)
dnl
dnl Configuration élémentaire SMTP
dnl
dnl
divert(0)
include(`/usr/share/sendmail-cf/m4/cf.m4′)dnl
VERSIONID(`Sendmail pour mail.dom.com’)dnl
OSTYPE(`linux’)dnl
define(`confMAX_MESSAGE_SIZE’, `5000000′)dnl
define(`STATUS_FILE’, `/etc/mail/sendmail.st’)dnl
define(`confDOMAIN_NAME’, `mail.dom.com’)dnl
define(`ALIAS_FILE’, `/etc/mail/aliases’)dnl
FEATURE(use_cw_file)dnl
FEATURE(`access_db’,`hash -o /etc/mail/access’)dnl
FEATURE(always_add_domain)dnl
FEATURE(local_procmail)dnl
MAILER(smtp)dnl

Note : A partir de la version 8.12, vous devez utiliser la syntaxe suivante pour le dispositif access :
FEATURE(`access_db’,`hash -T -o /etc/mail/access.db’)dnl

A partir du fichier sendmail.mc, vous construisez la configuration de Sendmail comme suit :
# cd /etc/mail
# m4 sendmail.mc >sendmail.cf

L’ordre des instructions M4 a son importance. Terminez toujours par l’instruction MAILER. Le divert(-1) ignore toutes les lignes qui le suivent, tandis que le divert(0) rétablit le flux standard des sorties. L’instruction include inclut les macros utilisatrices M4 nécessaires au fonctionnement élémentaire de Sendmail.VERSIONID définit un texte d’identification, et OSTYPE précise Linux comme système d’exploitation du serveur. La valeur confMAX_MESSAGE_SIZE est mise à 5 millions. Elle définit la taille maximale des messages transitant sur le relais. Cette valeur est exprimée en octets. Il s’agit de la taille globale des messages, en-têtes et enveloppes MIME incluses. N’espérez donc pas transporter une pièce jointe d’une taille de 5 Mo, et coontentez-vous d’un peu plus de 4 Mo pour la capacité maximale d’une pièce jointe.STATUS_FILE précise l’emplacement du fichier des statistiques de courrier. Ce fichier est utilisable via la commande mailstats. La variable confDOMAIN_NAME définit le nom du serveur. Elle n’est normalement utilisée que lorsque la machine ne sait pas résoudre son propre nom d’hôte. Nous ne l’indiquons que par précaution.

ALIAS_FILE indique l’emplacement du fichier des aliases. Comme vous trouverez souvent ce fichier dans /etc/, il est préférable de le mettre dans /etc/mail de façon à tout regrouper dans le même répertoire. L’instruction use_cw_file précise qu’il faut utiliser le fichier local-host-names pour référencer les nom de domaines locaux.

Le dispositif access_db incorpore les autorisations de relayage à la configuration de Sendmail. Cette base comprend les machines et réseaux autorisés à utiliser le serveur SMTP. Il est donc nécessaire de construire une base de données access.db à partir d.un fichier texte access. Des explications détaillées à ce sujet sont fournies plus loin dans ce chapitre. L’instruction always_add_domain ajoute le nom du domaine à une adresse, même si celle-ci est livrée localement. Cela se révèle particulièrement pratique pour le courrier généré directement depuis le serveur. FEATURE(local_procmail) demande l’utilisation de procmail comme agent de livraison local, qui est normalement la configuration par défaut.

MAILER(smtp) indique que vous utilisez le gestionnaire de courrier SMTP. Cette commande doit être la dernière du fichier mc car elle contient des instructions qui remplacent le contenu de certaines des commandes précédentes.

Le fichier aliases sert à faire la correspondance entre les adresses électroniques et le compte UNIX. Il contient les éléments suivants :
postmaster: root
MAILER-DAEMON: root
postmaster@mail.dom.com: root
jc.charles@mail.dom.com: charles
a.pierre@mail.dom.com: pierre
tous: root,charles,pierre

La base aliases.db est construite grâce à /usr/sbin/sendmail -bi -v ou la commande newaliases. A partir du moment où un utilisateur dispose d’un compte sur la machine, il dispose d’une adresse électronique de la forme login@fqdn. Par exemple, root@mail.dom.com.

Il est intéressant de créer des aliases, ou synonymes, pour des raisons de clarté ou de simplicité. Les messages système sont toujours redirigés vers le compte superutilisateur root. L’utilisateur charles dispose de deux adresses e-mail, charles@mail.dom.com, correspondant à sa boîte aux lettres physique, et son synonyme jc.charles@mail.dom.com, plus précis. L’utilisateur pierre obéit au même schéma.

Finalement, l’alias tous pointe vers tous les comptes utilisateur du serveur. Cela simplifie grandement l’envoi groupé. Un message envoyé à tous@mail.dom.com est reçu par l’ensemble des utilisateurs du serveur.

Le fichier local-host-names définit le domaine de messagerie local, ici mail.dom.com. L’entrée ci-dessous est insérée dans le fichier local-host-names :
mail.dom.com

Les messages à destination de ce domaine sont délivrés localement via l’agent de livraison procmail. Pour utiliser ce fichier, il faut disposer de l’instruction FEATURE(use_cw_file) dans le fichier mc.
Si vous souhaitez gérer la totalité du domaine dom.com, il vous suffit d’ajouter l’entrée suivante dans local-host-names :
dom.com

Lorsque vous modifiez ce fichier, vous devez faire relire à Sendmail sa configuration :

# kill -HUP `head -1 /var/run/sendmail.pid`

Les anciennes versions de Sendmail utilisent à la place de local-host-names le nom de fichier suivant : sendmail.cw

Pour des raisons de compatibilité, il est parfois utile de conserver ce nom. Il suffit pour cela d’insérer l’instruction suivante dans le fichier mc :
define(`confCW_FILE’,`/etc/mail/sendmail.cw’)dnl

N’oubliez pas de reconstruire le fichier sendmail.cf après modification du fichier mc ni de faire relire à Sendmail sa configuration.

Le fichier access contient la liste des machines et réseaux autorisés à utiliser le serveur SMTP comme relais. Les entrées ci-dessous sont insérées dans ce fichier :
127.0.0.1 RELAY
192.168.1 RELAY
localhost RELAY
localhost.localdomain RELAY

Ce fichier permet de construire la base à accès calculé access.db :
# makemap -v hash access.db <access

Dans le fichier access, vous trouvez la machine locale sous ses trois formes : l’adresse IP, le nom d’hôte et le FQDN (Fully Qualified Domain Name). La plupart du temps, il est recommandé d’autoriser la machine locale à utiliser le serveur SMTP.

Laisser un commentaire