sendmail address rewriting mini-HOWTO
Thomas Roessler,
[email protected]
v0.0, 6 May 1998
Ce document d�crit bri�vement la mise en place du fichier de configu�
ration de sendmail pour un acc�s individuel � l'Internet via le r�seau
t�l�phonique commut�.
11.. IInnttrroodduuccttiioonn
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_�_m_e 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 :
� Le nom du serveur de courrier de votre Fournisseur d'Acc�s Internet
� Votre adresse �lectronique
On attend de la configuration � venir :
1. que l'envoi de courrier entre utilisateurs locaux soit possible,
2. que le reste de l'Internet voit les adresses des utilisateurs
telles qu'elles sont d�finies au niveau du FAI ( et non les
adresses locales ! ).
Pour atteindre cet objectif, on utilisera la fonctionnalit�
genericstable de sendmail.
22.. FFiicchhiieerrss iimmpplliiqquu��ss
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�me
� genericstable - r�gles de traduction
� sendmail.cf - fichier de configuration de sendmail
� sendmail.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.
33.. CCoonnffiigguurraattiioonn ddee sseennddmmaaiill
33..11.. LLee ffiicchhiieerr ddee ccoonnffiigguurraattiioonn pprriinncciippaall
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')
______________________________________________________________________
Remplacez _r_e_l_a_i_-_d_e_-_s_o_r_t_i_e_._m_o_n_._f_o_u_r_n_i_s_s_e_u_r 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 !
33..22.. MMooddiiffiiccaattiioonn ddeess aaddrreesssseess
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 _c_h_a_q_u_e 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 _p_a_s 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.
33..33.. AAlliiaass
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
_b_e_a_u_c_o_u_p 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.
44.. RR��ff��rreenncceess
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 ).