Service des réseaux d'information

Configuration de sendmail

Adapter un fichier de configuration pour sendmail ?... Mais c'est très simple ! (1)

ou

Mais oui, vous savez adapter un fichier de configuration pour sendmail ! (2)

B. Debande, J.P. Kuypers & P. Maes
Concerne
Ceux qui, devant gérer un MTA avec sendmail, doivent modifier un sendmail.cf. Ce qui suit est basé sur le sendmail.cf pour MAIN MACHINES (main.mc 1.17 90/01/04 SMI) fourni avec les SunOS 4.1. Les propositions faites sont cependant utilisables mutatis mutandis pour d'autres configurations, notamment pour les machines auxiliaires.
Lectures préliminaires :
a brief tutorial on sendmail rules, Ch. Hedrick, 1985.
un manuel expliquant le sendmail.cf, par exemple : System & Network Administration, Sun, 27 mars 1990 (800-3805-10), chapitres 20 (pp. 635-649) et 23 (pp. 713-755).
la note ILAN.14b - 19 février 1991.
Remerciements
Nous tenons à remercier Hubert Broze pour son amicale collaboration.
Remarque
Les présentes propositions supposent l'usage du DNS (Domain Name System) et des enregistrements MX (Mail Exchanger).
Propositions de modification :
Définitions : ! les définitions ne peuvent avoir de # derrière elles, il faut mettre les commentaires sur d'autres lignes.
Dmentite.ucl.ac.be # Macro domaine
Cmentite.ucl.ac.be # Class domaine
DUucl.ac.be # Macro du domaine UCL
CUucl.ac.be # Class du domaine UCL
Dj$w.$m # Macro nom officiel du domaine, donnera (par exemple) lewsun.md.ucl.ac.be
DMether # Macro mailer relais principal
éventuellement (par exemple) :
Dwmon_hostname  # facultatif car normalement fourni par l'appel système hostname (ou équivalent)
DV... # Macro version du sendmail.cf (apparaît dans l'en-tête des messages)
CW anim bmd cell chex cmfa # Class des entités qu'on prend en charge,
CW diab emds horm ims infm # entite incluse ou non.
CW ipl isto mblg mexp mint nefy reso smd stac trop ucmd
Ensembles de règles : Deux ensembles à considérer : S0 et S1
Ensemble S0 :
Recherche du mailer qui va prendre le courrier en charge.
L'endroit où doivent se mettre les règles est déterminant. La diversité des fichiers de configuration ne permet pas de donner des indications valables pour tous. Voici cependant quelques voies.
  1. S'il y a un ruleset zero preamble proprement dit, les ajoutes peuvent être mises directement derrière celui-ci.
  2. Ces ajoutes devraient être mises après des règles du genre :
    R@                     ...               handle <> form
    R$*<@[$+]>$*           ...               numeric internet spec
    R$*<@$*$=w.UUCP>$*     ...               thishost.UUCP
     
  3. Ces ajoutes devraient être mises avant la règle du genre :
    R$*<@$*.LOCAL>$*       $#error $:...
     
Le domaine entite.ucl.ac.be ($m) est considéré comme un domaine particulier du domaine ucl.ac.be ($U). Il ne nécessite pas de groupe de règles propre.
Pour les adresses à traiter et domaines pris en charge, deux groupes de règles :
  1. celles propres aux personnes :
    1. dont le mbox est ici
    2. membres d'une entité qu'on prend en charge et dont le mbox est ailleurs
  2. celles se rapportant aux adresses génériques relatives à entite.ucl.ac.be et aux entités qu'on prend en charge
 #formats 1a
 #   Rident_pers<@entite.$=U>    $#local $:user
 #   Rident_pers<@$=m>           $#local $:user
 # exemples sur sci1.sri :
 Rhecquet<@slig.$=U>             $#local $:mhecquet
 Rkuypers<@$=m>                  $#local $:jpk

 #formats 1b
 #    Rident_pers<@entite.$=U>   $#ether $@host $:ident_pers<@entite.$1>
 #    Rident_pers<@$=m>          $#ether $@host $:ident_pers<@$1>
 # exemples sur sci1.sri :
 Rclaes<@ilv.$=U>                $#ether $@doyens1.iag $:Claes<@ilv.$1>
 Rstein<@slig.$=U>               $#ether $@lewsun.md   $:Stein<@slig.$1>

 #formats 2
 # Rpostmaster<@$=W.$=U>         $#local $:user
 # Rresponsable<@entite.$=U>     $#local $:user
 # Rresponsable<@$=m>            $#local $:user
 # Rresponsable<@entite.$=U>     $#ether $@host $:ident_pers<@entite.$1>
 # Rresponsable<@$=m>            $#ether $@host $:ident_pers<@$1>
 # R$+<@entite.$=U>              $#local $:user
 # R$+<@$=m>                     $#local $:user
 # R$+<@entite.$=U>              $#ether $@host $:ident_pers<@entite.$2>
 # R$+<@$=m>                     $#ether $@host $:ident_pers<@$2>
 # exemples sur sci1.sri :
 Rpostmaster<@$=W.$=U>           $#local $:pde
 Rresponsable<@sig.$=U>          $#local $:paternos
 Rresponsable<@$=m>              $#local $:jpk
 R$+<@sig.$=U>                   $#local $:penning
 R$+<@$=m>                       $#local $:jeanmart
 R$+<@cgl.$=U>                   $#ether $@page.$2 $:Swille<@page.$2>
Remarque : Afin d'éviter que des adresses ident_pers<@entite.ucl.ac.be ne soient simplifiées en ident_pers et que le système ne prenne alors ident_pers pour user, il faut empêcher la suppression du domaine entite.ucl.ac.be ($m) lorsque celui-ci suit immédiatement @.
Si l'ensemble S0 contient une règle du genre :
R$*<@LOCAL>        $@ $>30 $1
il y a lieu, dans l'ensemble S3 ou un ensemble qui y est appelé, de modifier la règle :
R$*<@$*$=m>$*      $1<@$2LOCAL>$4
comme suit :
R$*<@$+$=m>$*      $1<@$2LOCAL>$4
Si l'ensemble S0 contient une règle du genre :
R$*<@$=m>$*        $@ $>29 $1$3
il y a lieu de la mettre en commentaire.
Pour tous les autres domaines, ajouter les règles :
R$*<@$*.$+.>$*    $#error $:$2.$3. : Illegal dot terminated domain.
R$*<@$*.$+>$*     $#$M $@$2.$3. $:$1<@$2.$3>$4
qui remplaceront, le cas échéant, la règle :
R$*<@$*.$+>$*     $#$M $@$R $:$1<@$2.$3>$4
Ensemble S1 :
Sender Field Pre-rewriting. On y réécrira correctement, par appel à l'ensemble S49, la ligne From: des users.
 R$-               $@ $>49 $1              user_name -> adresse complète
Ensemble S49 :
Les messages qui sortent d'ici doivent avoir leur ligne From: correcte. Il faut donc changer le user_name en identificateur_personnel@entite.ucl.ac.be.
 #format    Ruser       $@ident_pers<@entite.$U>
 #    ou    Ruser       $@ident_pers<@$m>   (si user != ident_pers, sinon rien)
 # exemples sur sci1.sri :
 Rpaternos              $@Paternostre<@sig.$U>
 Rjpk                   $@Kuypers<@$m>
Pour le client POP de PC-NFS Lifeline :
 CX host1 host2 ...              # Définition d'une Class (X par exemple)
                                 # regroupant les hôtes clients.
Ensemble S1 : Ajouter les règles suivantes
 R$+<@$=X>                 $@ $>49 $1
 R$+<@$=X.$=U>             $@ $>49 $1
Pour le client POP Eudora (Macintosh) :
Ensemble S1 : Ajouter la règle suivante
 R$-<@$*LOCAL>             $@ $>49 $1  user_name@mon_hostname.entite.ucl.ac.be
Pour le client POP POPmail (DOS) :
Ensemble S1 : Ajouter la règle suivante
 R$-<@[130.104.xxx.yyy]>   $@ $>49 $1  user_name@[my_IP_address]
(1) en hommage à E. Aisberg
(2) en hommage à Fr. Klinger

Page : UCL | SRI | Pointeurs utiles.


15 mai 1996.
Responsable : Jean-Pierre Kuypers <Kuypers@sri.ucl.ac.be>