On suppose que votre acc�s � l'Internet repose sur le principe le plus couramment rencontr� de nos jours : une connexion au r�seau d'un fournisseur d'acc�s via une liaison PPP au dessus d'une liaison s�rie. Le courrier qui vous est destin� est r�cup�r� aupr�s d'un serveur POP ou IMAP tandis que le courrier sortant est transmis via SMTP. Comme vous ne poss�dez pas de nom de domaine, tout doit transiter par la m�me adresse.
On suppose vous avez d�j� install� une version r�cente du sendmail d'Eric Allman. A l'�criture de ces lignes, la version courante est la 8.8.8. Elle devrait fonctionner sans probl�mes.
Le texte fait parfois r�f�rence � certaines sp�cificit�s des distributions GNU/Linux de Debian. Les utilisateurs de syst�mes diff�rents adapteront.
V�rifiez que vous disposez bien des informations suivantes :
On attend de la configuration � venir :
Pour atteindre cet objectif, on utilisera la fonctionnalit�
genericstable
de sendmail.
On regroupe tous les fichiers de configuration de sendmail dans un
r�pertoire particulier sous /etc
: /etc/mail
. Sendmail
s'attendant � les trouver en /etc
, /etc/sendmail.cf
sera
un lien symbolique vers /etc/mail/sendmail.cf
.
On trouvera dans /etc/mail
:
aliases
- des adresses suppl�mentaires genericsdomain
- diverses informations sur la configuration du
syst�megenericstable
- r�gles de traduction sendmail.cf
- fichier de configuration de sendmailsendmail.mc
- la matrice du sendmail.cf
.Certains de ces fichiers s'accompagnent de fichiers .db
contenant
les bases de donn�es hach�es que sendmail utilise directement.
L'arborescence d'origine de sendmail est cens�e se trouver en
/usr/lib/sendmail.cf
ainsi que c'est le cas avec les
distributions GNU/Linux Debian. Reportez vous � la documentation de votre
distribution si celle-ci diff�re.
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 - [email protected]') 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')
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
m4
dans un
fichier temporaire avant de l'installer au bon endroit. On �vite ainsi que
sendmail ne lise des fichiers de configuration incomplets !
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 [email protected] maude [email protected] root [email protected] news [email protected]
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.
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.
Les sources de sendmail sont fournies avec une documentation abondante.
Lisez la donc, et �tudiez plus particuli�rement le fichier
/cf/README
.
Si vous souhaitez explorer davantage les options de configuration de sendmail, procurez vous la r�f�rence en la mati�re par Bryan Costales, Eric Allman et Neil Rickert : "Sendmail" ( O'Reilly, 1993 ).