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 ).