
  Mini-HOWTO Sendmail+UUCP
  Hadi Salim, jamal@glcom.com ou hadi@cyberus.ca
  25 octobre 1997

  1.  Introduction.

  Apres  m'etre finalement calme et apres avoir lu le FM (le Livre de la
  Chauve Souris, pour etre precis) j'ai resolu l'enigme  de  Caramilk  !
  Les etapes suivantes ont ete testees avec les binaires fournis dans la
  RedHat. Peut-etre devrais-je soumettre aussi ces astuces au mainteneur
  de  la  FAQ  Sendmail  dans  la  mesure  ou  il  n'y  a aucune mention
  d'interconnexion entre UUCP et Sendmail dedans.

  1.1.  Ce que ce document essaye de vous montrer

  Comment  configurer  une  simple  machine,  denotee  par  me.com  dans
  l'exemple,  ne  possedant aucun acces direct a Internet pour router le
  courrier electronique pour vous via sendmail et UUCP vers une 'machine
  plus  intelligente'  i.e.  :  votre  ISP.   Vous pouvez optionellement
  configurer cette machine pour fournir d'autres machines  i.e.  :  vous
  etes  leur 'machine intelligente' (NDT : referee par smarthost dans le
  reste du document) ou encore passerelle.

  1.2.  Ce que ce document ne vous dit pas

  J'ai recu un nombre incroyable  de  questions  concernant  des  sujets
  depassant le cadre de ce HOWTO. Le but de ce document n'est pas de les
  decrire, donc merci d'essayer de ne pas m'envoyer de questions sur  ce
  qui suit :

  1.2.1.  Comment configurer UUCP.

  Consultez une des nombreuses references bien faites, telles ques :

  UUCP HOWTO (Vince Shakan)

  Using  and managing UUCP (Ed Revin et al -- editions O'Reilly) qui est
  je pense la meilleure reference sur UUCP

  Linux Network Administrator Guide (Olaf Kirch)

  1.2.2.  Comment configurer le DNS.

  Consultez une des nombreuses references bien faites, telles ques :

  Caching named mini howto (Nicolai Langfeldt)

  The bat book (Sendmail;Costalles, Allman, Rickert ; editions O'Reilly)

  DNS and BIND (Editions O'Reilly)

  TCP/IP Network Administration (Hunt, Craig ; editions O'Reilly)

  Linux Network Administrator Guide (Olaf Kirch)

  sendmail  Theory  and  Practice  (Avolio  et  Vixie ; editions Digital
  press)

  1.2.3.  pour fonctionner avec sendmail.  Comment configurer des  bases
  de donnees (autres que la mailertable)

  Consultez une des nombreuses references bien faites, telles ques:

  The bat book  (Sendmail  ;  Costalles,  Allman,  Rickert  --  editions
  O'Reilly)

  TCP/IP administration (Editions O'Reilly)

  Sendmail  Theory  and  Practice  (Avolio  et  Vixie ; editions Digital
  press)

  Documentations attachees a sendmail

  1.2.4.  Comment ecrire ou modifier des ensembles regle ou des mailers

  Toutes les references du dessus en XXX

  Vous  pouvez  aussi  trouver  de  l'aide dans les groupes de nouvelles
  suivants:

  comp.mail.sendmail comp.mail.uucp comp.os.linux.networking

  Canaux IRC

  #linux, #unix

  2.  La configuration

  C'est  pour  un  systeme,  hypothetiquement  appele  me.com,  dont  le
  courrier  est envoye uniquement via UUCP. mysmarthost est le nom de la
  machine de mon FAI tel qu'il est configure dans le fichier uucp sys et
  me.com  est  le  nom de machine que nous utilisons ou sous lequel nous
  sommes connus dans les enregistrements MX sur  Internet.   mysmarthost
  est connecte a Internet. Nous nous moquons vraiment de savoir comment,
  nous savons juste qu'elle sait comment nous y conduire.  me.com,  dont
  la configuration que nous decrivons dans l'exemple, alimente les sites
  down.com et system1.org et leurs sous-noeuds.  me.com  se  connecte  a
  down.com  via  TCP/IP  et  se connecte a system1.org via une connexion
  UUCP directe  par  une  ligne  telephonique.   La  description  de  la
  configuration est indiquee ci-dessous :

          ------------------------
          |                       |
          |     Internet          |
          |                       |
          -----------------------
                      |
                      | Ligne dediee a PPP utilisant TCP-IP
                      |
                  -------------
                  |            |
                  |mysmarthost | Serveur de noms autoritaire pour
                  |            | *.me.com, *.down.com, *.system1.org
                  |            |
                  --------------
                      |
                      | UUCP par reception ligne telephonique pour
                      | system1.org, *.system1.org,*.down.com, down.com
                      | ainsi que me.com et *.me.com
                   ------------
                  | * *****  *  |
     ------------ | * me.com *  | ------
                  | *        *  |      |
     |            | * *****  *  |      |
     |             ------------        |
     |UUCP via ligne telephonique      | uucp via TCP/IP
     |                                 |
   -----------                  -----------
  |           |                |           |
  |system1.org|                | down.com  |-------
  |           |                |           |      |
   ----------                  ------------       |
       |                                          |
       |                                          |
       |                                          |
       | LAN_: smtp vers le noeud            | UUCP ligne telephonique
       |                                          |
  -----------------                             ----------------
  |               |                             |              |
  |Sous-noeuds de |                             | Reseau local |
  |de system1     |                             | de down      |
  |               |                             ----------------
  -----------------

  Prerequis

  1)  Si vous avez deja un DNS qui marche ou avez un pointeur sur un DNS
  (dans votre /etc/resolv.conf) et avez une connexion directe au  reseau
  alors  passez  cette partie. Vous etes sauf. Vous n'avez pas de choses
  "intelligentes" a faire.

  2) Si vous etes sur une machine utilisant uucp pour le courrier  alors
  vous   n'avez   pas  vraiment  besoin  de  compiler  bind/resolv  dans
  sendmail ;

  Comment survivre a la  mise  sous  forme  canonique  sur  une  machine
  independante sans DNS

  2.1.  PARTIE I

  Si  vous  prenez  un sendmail pre-compile avec BIND dedans vous pouvez
  toujours y arriver (comme c'est le cas avec le sendmail de RedHat).

  a) Vous referer a ma solution pour ca basee sur le fichier  m4  decrit
  (mon  favori). Essayez d'utiliser cette option a moins que vous teniez
  a b) ou c) ci-dessous. OU

  b) Si vous me contactez je  pourrais  vous  fournir  une  version  non
  compilee avec BIND (8.8.5). Peut-etre que RedHat devrait considerer la
  fourniture de deux binaires sendmail (comme slackware) un avec BIND et
  l'autre sans BIND.  OU

  c)  La  solution  la  plus rapide pour avoir un sendmail sans bind est
  d'editer les lignes de src/conf.h ci-dessous comme je l'ai montre :

  # ifndef NAMED_BIND conf.h:#  define  NAMED_BIND  0  /*  use  Berkeley
  Internet Domain Server */

  2.2.  PARTIE II

  Sendmail  devrait cependant normallement insister a faire les requetes
  de noms pour resoudre la partie machine en  utilisant  gethostbyaddr()
  pour chaque mail qu'il envoie (meme si vous lui dites de ne pas mettre
  les noms sous forme canonique).

  a) utiliser une adresse IP  de  la  RFC1597  (10.0.0.0-10.255.255.255,
  172.16.0.0-172.31.255.255,     192.168.0.0-192.168.255.255)     Editez
  /etc/hosts et ajoutez ce qui suit comme exemple pour la machine myhost
  10.0.0.1 myhost.me.com myhost OU

  b)  Si  vous utilisez NIS (et NIS est compile dans sendmail comme cela
  semble etre le cas dans  la  RedHat.)  assurez  vous  que  le  fichier
  /etc/nsswitch.conf  contienne : hosts: files dns et dans /etc/hosts et
  ajoutez ce qui suit comme exemple pour la machine myhost  toujours  en
  utilisant l'adressage IP de la RFC1597 10.0.0.1 myhost.me.com myhost

  NOTE  :  Dans a) et dans b) ci-dessus il est vital que vous listiez le
  long (completement qualifie) dans le fichier /etc/hosts utilise.   i.e
  la  ligne doit etre 10.0.0.1 myhost.me.com et NON 10.0.0.1 myhost vous
  aurez aussi besoin de  definir  la  macro  sendmail  $j  pour  qu'elle
  contienne   myhost.me.com   ajoutez   ce  qui  suit  a  votre  fichier
  /etc/sendmail.cf apres qu'il ait ete genere  Dmyhost.me.com  (ou  vous
  pouvez  utiliser  MASQUERADE_AS(myhost.me.com) dans le fichier .mc ci-
  dessous)

  NOTE !!!!! myhost comme nom de domaine est donne a titre  d'exemple  ;
  vous  n'avez  pas  a l'utiliser tel quel. Choisissez-vous votre propre
  nom de machine si vous n'en avez pas deja un.

  2) Assurez-vous  que  vous  avez  makemap  et  qu'il  est  capable  de
  supporter hash et/ou le format plus commun dbm ou meme le format btree
  (La version RedHat ne supporte  pas  dbm).  Makemap  est  normallement
  distribue avec sendmail.

  2.3.  CONFIGURATION (le fichier mc)

  I) creez votre fichier .mc avec votre editeur favori ; j'appellerai ce
  fichier my.mc

  a) Pas de DNS -- machine independante

  include(`../m4/cf.m4')
  VERSIONID(`me.com setup with uucp created by xxxx --no dns ')
  dnl OSTYPE(linux)
  FEATURE(nodns)dnl
  FEATURE(nocanonify)dnl
  FEATURE(always_add_domain)dnl
  FEATURE(mailertable, hash /etc/mailertable)dnl
  MAILER(local)dnl
  MAILER(smtp)dnl
  MAILER(uucp)
  define(`SMART_HOST', uucp-dom:mysmarthost)

  Dissequons ceci :

  include(`../m4/cf.m4') requiert l'inclusion de  la  macro  m4  qui  se
  trouve dans ../m4/cf.m4 afin de resoudre certaines choses.

  VERSIONID(`me.com  setup  with  uucp created by xxxx --no dns ') C'est
  utilise pour distinguer les differentes versions du  fichier  .cf  que
  vous pourriez finir par creer.

  OSTYPE(linux)  Ca  sert  a  definir/redefinir les choses specifiques a
  Linux. Il est prudent de l'avoir ici.

  FEATURE(nodns)dnl Cela veut dire que nous n'avons pas de  serveur  DNS
  (comme  nous  n'utilisons  uucp  que  pour le mail. Sendmail doit etre
  compile pour ne pas utiliser bind). C'est devenu obsolete. Je vais  le
  laisser ici juste au cas ou vous utiliseriez une version plus ancienne
  de sendmail.

  FEATURE(nocanonify)dnl Cela veut dire Ne passez pas les addresses a la
  regle  $[ ... ]$ pour la mise en forme canonique. Normallement si vous
  avez BIND  compile  dans  sendmail,  il  essayerait  et  developperait
  l'alias/l'adresse  IP en un nom canonique grace au DNS. Vous n'en avez
  pas besoin si tout ce que vous avez ne sont que  des  approvionnements
  par UUCP i.e. : vous avez une machine independante.

  FEATURE(always_add_domain)dnl Ceci ajoute le nom de domaine local meme
  au mail local. Ce n'est pas necessaire mais j'aime  bien  ;  Ce  n'est
  peut-etre  pas  prudent  dans  la  mesure  ou  les spammeurs, avec une
  configuration appropriee, peuvent  vous  embeter.   me.com  n'est  pas
  connecte au reseau via tcp/ip donc c'est sans danger.

  FEATURE(mailertable,     hash    /etc/mailertable)dnl    Le    fichier
  /etc/mailertable sera une base de donnee hashee ou nous allons stocker
  les informations de routage de certains sites. Si vous n'approvisionez
  personne vous n'en avez pas besoin. J'en  dirai  plus  la-dessus  plus
  tard.   Si   vous   vouliez   utiliser   le  format  dbm  vous  auriez
  FEATURE(mailertable, dbm /etc/mailertable)dnl Si vous vouliez utiliser
  le    format    btree    vous    auriez   FEATURE(mailertable,   btree
  /etc/mailertable)dnl

  MAILER(local)dnl MAILER(smtp)dnl MAILER(uucp) Ce sont les mailers  que
  nous utilisons.

  define(`SMART_HOST',  uucp-dom:mysmarthost)  Notre  smarthost est chez
  notre FAI, il est defini dans le fichier sys comme system mysmarthost.
  Tous les messages que nous ne pouvons pas traiter (i.e : ceux dont les
  domaines ou les mailers nous sont etrangers) seront  envoyes  a  notre
  smarthost/FAI qui s'en debrouillera. Notez que nous utilisons uucp-dom
  comme mailer  uucp.  Ce  mailer  particulier  utilise  des  regles  de
  reecritures de type smtp.

  b) Avec DNS

  include(`../m4/cf.m4')
  VERSIONID(`me.com setup with uucp created by xxxx --dns enabled')dnl
  OSTYPE(linux)
  FEATURE(always_add_domain)dnl
  FEATURE(mailertable, hash /etc/mailertable)dnl
  MAILER(local)dnl
  MAILER(smtp)dnl
  MAILER(uucp)
  define(`SMART_HOST', uucp-dom:mysmarthost)

  II) Creez votre fichier sendmail.cf

  a) Sauvegardez votre ancien fichier /etc/sendmail.cf
  b)  Remplacez  votre  fichier  sendmail.cf  avec le nouveau : m4 my.mc
  /etc/sendmail.cf
  c) Verifiez que le fichier sendmail.cf a ete correctement cree sur les
  bases de vos specifications.
  Les quelques problemes que j'ai eus sont : le mailer uucp-dom manquant
  C'etait parceque je n'avais pas mis le  mailer  smtp.  En  fait,  j'ai
  compris que c'est important de le mettre avant l'uucp.

  III) Creez votre fichier /etc/mailertable
  Si vous n'alimentez pas de sites uucp vous pouvez omettre cette etape.
  a)  creez/editez  le  fichier  /etc/mailertable  exemple  de   fichier
  /etc/mailertable :

  system1.org uucp-dom:system1
  down.com uucp-dom:down
  up.down.com  error: Host is unknown at me.com

  Cela  veut  dire  que  tout  ce  qui  est  adresse  a system1.org ou a
  *.system1.org et que nous recevons sera envoye a system1 en  utilisant
  uucp-dom  en  autres  termes  nous  faisons  le  routage  de mail pour
  *.system1.org; idem pour down.com et ses sous-noeuds sauf  en  ce  qui
  concerne  le  filtrage  additionnel ; nous renvoyons tout mail pour le
  sous-noeud de down up.down.com en utilisant le mailer error integre  a
  sendmail  avec  le  message  "Host  is  unknown  at  me.com" ; Tout ca
  parceque l'administrateur de down.com nous l'a demande. Pour  renvoyer
  les  sous-domaines  qui  nous sont inconnus nous utilisons la derniere
  ligne de mailertable (ce que sont nous les sous-noeuds par defaut).

  b) creez la base de donnees avec makemap

  si  vous   utilisez   hash   :   makemap   hash   /etc/mailertable   <
  /etc/mailertable  si  vous utilisez dbm : makemap dbm /etc/mailertable
  </etc/mailertable   si   vous   utilisez   btree   :   makemap   btree
  /etc/mailertable </etc/mailertable

  a faire a chaque fois que vous modifiez le fichier.

  IV) Redemarrez sendmail

  V)  Testez  sendmail  i)  sendmail  -bv  user@destination ii) utilisez
  sendmail -bt et entrez plusieurs adresses en utilisant  la  regle  3,0
  pour  voir ou elles arrivent et les differentes regles et cheminements
  "cf" pris.  Vous y etes !

  3.  A faire

  1) Ajouter des informations sur la mise en place du  systeme  down.com
  (afin  de  montrer  comment  prendre  en compte de ces noeuds smtp) 2)
  Ajouter des informations sur comment mettre en place  la  distribution
  de  news  via  UUCP (INN de preference). Cela necessitera peut-etre de
  changer le titre du document.

