Mini-HOWTO Sendmail+UUCP Hadi Salim, jamal@glcom.com ou hadi@cyberus.ca 25 octobre 1997 1. Introduction. Apr�s m'�tre finalement calm� et apr�s avoir lu le FM (le Livre de la Chauve Souris, pour �tre pr�cis) j'ai r�solu l'�nigme de Caramilk ! Les �tapes suivantes ont �t� test�es avec les binaires fournis dans la RedHat. Peut-�tre devrais-je soumettre aussi ces astuces au mainteneur de la FAQ Sendmail dans la mesure o� 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, d�not�e par me.com dans l'exemple, ne poss�dant aucun acc�s direct � Internet pour router le courrier �lectronique 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 �tes leur 'machine intelligente' (NDT : r�f�r�e par smarthost dans le reste du document) ou encore passerelle. 1.2 Ce que ce document ne vous dit pas J'ai re�u un nombre incroyable de questions concernant des sujets d�passant le cadre de ce HOWTO. Le but de ce document n'est pas de les d�crire, donc merci d'essayer de ne pas m'envoyer de questions sur ce qui suit : Comment configurer UUCP. Consultez une des nombreuses r�f�rences bien faites, telles ques : UUCP HOWTO (Vince Shakan) Using and managing UUCP (Ed Revin et al -- �ditions O'Reilly) qui est je pense la meilleure r�f�rence sur UUCP Linux Network Administrator Guide (Olaf Kirch) Comment configurer le DNS. Consultez une des nombreuses r�f�rences bien faites, telles ques : Caching named mini howto (Nicolai Langfeldt) The bat book (Sendmail;Costalles, Allman, Rickert ; �ditions O'Reilly) DNS and BIND (Editions O'Reilly) TCP/IP Network Administration (Hunt, Craig ; �ditions O'Reilly) Linux Network Administrator Guide (Olaf Kirch) sendmail Theory and Practice (Avolio et Vixie ; �ditions Digital press) Comment configurer des bases de donn�es (autres que la mailertable) pour fonctionner avec sendmail. Consultez une des nombreuses r�f�rences bien faites, telles ques: The bat book (Sendmail ; Costalles, Allman, Rickert -- �ditions O'Reilly) TCP/IP administration (Editions O'Reilly) Sendmail Theory and Practice (Avolio et Vixie ; �ditions Digital press) Documentations attach�es � sendmail Comment �crire ou modifier des ensembles r�gle ou des mailers Toutes les r�f�rences 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 syst�me, hypoth�tiquement appel� me.com, dont le courrier est envoy� uniquement via UUCP. mysmarthost est le nom de la machine de mon FAI tel qu'il est configur� 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 connect� � 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 d�crivons dans l'exemple, alimente les sites down.com et system1.org et leurs sous-noeuds. me.com se connecte � down.com via TCP/IP et se connecte � system1.org via une connexion UUCP directe par une ligne t�l�phonique. La description de la configuration est indiqu�e �i-dessous : ------------------------ | | | Internet | | | ----------------------- | | Ligne d�di�e � PPP utilisant TCP-IP | ------------- | | |mysmarthost | Serveur de noms autoritaire pour | | *.me.com, *.down.com, *.system1.org | | -------------- | | UUCP par r�ception ligne t�l�phonique pour | system1.org, *.system1.org,*.down.com, down.com | ainsi que me.com et *.me.com ------------ | * ***** * | ------------ | * me.com * | ------ | * * | | | | * ***** * | | | ------------ | |UUCP via ligne t�l�phonique | uucp via TCP/IP | | ----------- ----------- | | | | |system1.org| | down.com |------- | | | | | ---------- ------------ | | | | | | | | LAN : smtp vers le noeud | UUCP ligne t�l�phonique | | ----------------- ---------------- | | | | |Sous-noeuds de | | R�seau local | |de system1 | | de down | | | ---------------- ----------------- Pr�requis 1) Si vous avez d�j� un DNS qui marche ou avez un pointeur sur un DNS (dans votre /etc/resolv.conf) et avez une connexion directe au r�seau alors passez cette partie. Vous �tes sauf. Vous n'avez pas de choses "intelligentes" � faire. 2) Si vous �tes sur une machine utilisant uucp pour le courrier alors vous n'avez pas vraiment besoin de compiler bind/resolv dans sendmail ; Comment survivre � la mise sous forme canonique sur une machine ind�pendante sans DNS 2.1 PARTIE I Si vous prenez un sendmail pr�-compil� avec BIND dedans vous pouvez toujours y arriver (comme c'est le cas avec le sendmail de RedHat). a) Vous r�f�rer � ma solution pour �a bas�e sur le fichier m4 d�crit (mon favori). Essayez d'utiliser cette option � moins que vous teniez � b) ou c) ci-dessous. OU b) Si vous me contactez je pourrais vous fournir une version non compil�e avec BIND (8.8.5). Peut-�tre que RedHat devrait consid�rer 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'�diter les lignes de src/conf.h ci-dessous comme je l'ai montr� : # ifndef NAMED_BIND conf.h:# define NAMED_BIND 0 /* use Berkeley Internet Domain Server */ 2.2 PARTIE II Sendmail devrait cependant normallement insister � faire les requ�tes de noms pour r�soudre la partie machine en utilisant gethostbyaddr() pour chaque mail qu'il envoie (m�me 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 compil� dans sendmail comme cela semble �tre 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 (compl�tement qualifi�) dans le fichier /etc/hosts utilis�. i.e la ligne doit �tre 10.0.0.1 myhost.me.com et NON 10.0.0.1 myhost vous aurez aussi besoin de d�finir la macro sendmail $j pour qu'elle contienne myhost.me.com ajoutez ce qui suit � votre fichier /etc/sendmail.cf apr�s qu'il ait �t� g�n�r� 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 donn� � titre d'exemple ; vous n'avez pas � l'utiliser tel quel. Choisissez-vous votre propre nom de machine si vous n'en avez pas d�j� un. 2) Assurez-vous que vous avez makemap et qu'il est capable de supporter hash et/ou le format plus commun dbm ou m�me le format btree (La version RedHat ne supporte pas dbm). Makemap est normallement distribu� avec sendmail. 2.3 CONFIGURATION (le fichier mc) I) cr�ez votre fichier .mc avec votre �diteur favori ; j'appellerai ce fichier my.mc a) Pas de DNS -- machine ind�pendante 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 r�soudre certaines choses. VERSIONID(`me.com setup with uucp created by xxxx --no dns ') C'est utilis� pour distinguer les diff�rentes versions du fichier .cf que vous pourriez finir par cr�er. OSTYPE(linux) Ca sert � d�finir/red�finir les choses sp�cifiques � 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 �tre compil� pour ne pas utiliser bind). C'est devenu obsol�te. Je vais le laisser ici juste au cas o� vous utiliseriez une version plus ancienne de sendmail. FEATURE(nocanonify)dnl Cela veut dire Ne passez pas les addresses � la r�gle $[ ... ]$ pour la mise en forme canonique. Normallement si vous avez BIND compil� dans sendmail, il essayerait et d�velopperait l'alias/l'adresse IP en un nom canonique gr�ce 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 ind�pendante. FEATURE(always_add_domain)dnl Ceci ajoute le nom de domaine local m�me au mail local. Ce n'est pas n�cessaire mais j'aime bien ; Ce n'est peut-�tre pas prudent dans la mesure o� les spammeurs, avec une configuration appropri�e, peuvent vous emb�ter. me.com n'est pas connect� au r�seau via tcp/ip donc c'est sans danger. FEATURE(mailertable, hash /etc/mailertable)dnl Le fichier /etc/mailertable sera une base de donn�e hash�e o� 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 l�-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 d�fini 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 �trangers) seront envoy�s � notre smarthost/FAI qui s'en d�brouillera. Notez que nous utilisons uucp-dom comme mailer uucp. Ce mailer particulier utilise des r�gles de r��critures 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) Cr��z 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 �t� correctement cr�� sur les bases de vos sp�cifications. Les quelques probl�mes que j'ai eus sont : le mailer uucp-dom manquant C'�tait 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) Cr��z votre fichier /etc/mailertable Si vous n'alimentez pas de sites uucp vous pouvez omettre cette �tape. a) cr��z/�ditez le fichier /etc/mailertable exemple de fichier /etc/mailertable : system1.org uucp-dom:system1 .system1.org uucp-dom:system1 down.com uucp-dom:down up.down.com error: Host is unknown at me.com .down.com uucp-dom:down .me.com error: Host unknown at me.com Cela veut dire que tout ce qui est adress� � system1.org ou � *.system1.org et que nous recevons sera envoy� � 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 int�gr� � sendmail avec le message "Host is unknown at me.com" ; Tout �a parceque l'administrateur de down.com nous l'a demand�. Pour renvoyer les sous-domaines qui nous sont inconnus nous utilisons la derni�re ligne de mailertable (ce que sont nous les sous-noeuds par d�faut). b) cr�ez la base de donn�es 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 � faire � chaque fois que vous modifiez le fichier. IV) Red�marrez sendmail V) Testez sendmail i) sendmail -bv user@destination ii) utilisez sendmail -bt et entrez plusieurs adresses en utilisant la r�gle 3,0 pour voir o� elles arrivent et les diff�rentes r�gles et cheminements "cf" pris. Vous y �tes ! 3. A faire 1) Ajouter des informations sur la mise en place du syst�me 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 pr�f�rence). Cela n�cessitera peut-�tre de changer le titre du document.