Penguin
Diff: HowToSendmailUUCP
EditPageHistoryDiffInfoLikePages

Differences between current version and predecessor to the previous major change of HowToSendmailUUCP.

Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History

Newer page: version 3 Last edited on Sunday, November 28, 2004 1:05:14 am by AristotlePagaltzis
Older page: version 2 Last edited on Friday, June 7, 2002 1:07:33 am by perry Revert
@@ -1,477 +1 @@
-  
-  
-  
-  
-  
-  
-  
-Sendmail+UUCP HOWTO  
-  
-  
-  
-!!!  
-Sendmail + UUCP HOWTO  
-<address >  
-<u >Author:</u > Jamal Hadi Salim (jamal@glcom.com or hadi@cyberus.ca)</address >  
-  
-  
-!  
-History:  
-  
-  
-Initial edition July/96: works only with non-bind edition of sendmail  
-  
-  
-  
-Oct 01 /96: works with the redhat supplied binary  
-  
-  
-  
-Oct 07 /96: added/modified a tip on how to compile non-bind sendmail  
-  
-  
-  
-Oct 25 /96: added/modified a tip on how to keep sendmail getHostbyAddr()  
-happy via a dummy /etc/hosts entry  
-  
-  
-  
-Mar 15 /97: I am amazed at the response/feedback i am receiving so i decided  
-to refine this further. Fixed some small errors; added diagram + references.  
-  
-  
-  
-Oct 25/97: Htmlise+ add blurb on DNS capable machines  
-  
-  
-  
-  
-----  
-  
-  
-After finally settling down and properly reading TFM (the Bat Book,  
-to be precise) i have solved the Caramilk secret! The steps below have  
-been tested with the binary supplied by !RedHat. Perhaps i should send this  
-tip to the maintainer of the Sendmail FAQ too since there is absolutely  
-no mention of UUCP interworking with sendmail there.  
-  
-  
-!!  
-What this Document tries to show you  
-How to setup a single machine, reffered to as ''me.com ''in the example,  
-with no direct access to the internet to route mail for you via sendmail  
-and UUCP to a 'smarter host' eg your ISP.  
-Optionally you can configure this machine to feed other machines i.e  
-you are their 'smart' host or gateway.  
-  
-!!  
-What this Document does not tell you  
-I have been receiving incredible number of questions regarding topics which  
-are beyond the focus of this HOWTO. The purpose of this document is not  
-to describe them so please try not send me any questions on the following:  
-  
-  
-!  
-a) How to setup UUCP.  
-Refer to many fine references on this, including:  
-  
-  
-UUCP HOWTO (Vince Skahan, )  
-  
-  
-  
-Using and managing UUCP (Ed Ravin et al -- publisher O'reilly) which i  
-think is the best authority on UUCP  
-  
-  
-  
-Linux Network Administrator Guide (Olaf Kirch)  
-  
-  
-  
-!  
-b) how to setup DNS.  
-Refer to the many fine references on this, including:  
-  
-  
-Caching named mini howto (Nicolai Langfeldt)  
-  
-  
-  
-The bat book (Sendmail;Costalles, Allman, Rickert;publisher O'reilly)  
-  
-  
-  
-DNS and BIND (Publisher O'reilly)  
-  
-  
-  
-TCP/IP Network Administration (Hunt, Craig;Publisher O'reilly)  
-  
-  
-  
-Linux Network Administrator Guide (Olaf Kirch)  
-  
-  
-  
-sendmail Theory and Practice (Avolio and Vixie; publisher Digital press)  
-  
-  
-  
-!  
-c) how to setup databases (other than the mailertable) to work with sendmail.  
-Refer to the many fine references on this, including:  
-  
-  
-The bat book (Sendmail;Costalles, Allman, Rickert -- publisher O'reilly)  
-  
-  
-  
-TCP/IP administration (Publisher O'reilly)  
-  
-  
-  
-Sendmail Theory and Practice (Avolio and Vixie; publisher Digital press)  
-  
-  
-  
-Docs bundled with sendmail d) how to write or modify rulesets or mailers.  
-  
-  
-  
-All the above references in c)  
-  
-  
-  
-You can also find help on the following __newsgroups__:  
-comp.mail.sendmail  
-comp.mail.uucp  
-comp.os.linux.networking  
-__IRC channels__  
-#linux, #unix  
-  
-----  
-  
-!!  
-THE SETUP  
-This is for a system, hypothecally named ''me.com'', whose mail is sent  
-out only via UUCP. ''mysmarthost ''is the ISPs hostname as set up in  
-the __uucp sys file __and ''me.com ''is the hostname we use or are  
-known by in the MX records on the internet.  
-''mysmarthost'' hooks to the internet. We really dont care how it  
-does it, we just know it knows how to get us there.  
-''me.com'', whose setup we describe in the example, feeds sites  
-''down.com ''and ''system1.org ''and their subnodes. ''me.com ''connects  
-to ''down.com'' via TCP/IP and connects to ''system1.org ''via raw  
-UUCP using a phone line.  
-The setup description is shown below:  
-  
- ------------------------  
- | |  
- | Internet |  
- | |  
- -----------------------  
- |  
- | PPP/dedicated line running TCP-IP  
- |  
- -------------  
- | |  
- |mysmarthost | Authoritative name server for  
- | | *.me.com, *.down.com, *.system1.org  
- | |  
- --------------  
- |  
- | UUCP via a phone line receive for  
- | system1.org, *.system1.org,*.down.com, down.com  
- | as well as me.com and *.me.com  
- ------------  
- | * ***** * |  
- ------------ | * me.com * | ------  
- | * * | |  
- | | * ***** * | |  
- | ------------ |  
- |UUCP via phone line | uucp via TCP/IP  
- | |  
- ----------- -----------  
-| | | |  
-|system1.org| | down.com |-------  
-| | | | |  
- ---------- ------------ |  
- | |  
- | |  
- | | LAN: smtp to nodes  
- | UUCP phone line  
- | |  
------------ -------------  
-| | | |  
-|system1's| | down's |  
-|subnodes | | LAN |  
-| | ------------  
-----------  
-  
-  
-!!  
- pre-requisites  
-__1)__ If you are already running DNS or have a  
-pointer to a DNS server (in your /etc/resolv.conf) and are on a live connection  
-to the net then skip this part. You are safe. You dont have to do any 'smart'  
-thing skip to __2)__  
-If you are on a machine using uucp for mail then you dont really need  
-to compile bind/resolv into sendmail;  
-  
-!  
-How to survive name canonicalization on a stand-alone machine with no DNS  
-<u >PART I</u >  
- If you get a pre-compiled sendmail with BIND in it you can still  
-live with it (As is the case with Redhat supplied sendmail).  
-  
-  
-a) Refer to my solution for this based on the m4 file described (my  
-favorite). Try to use this option unless you really insist on b) or c)  
-below OR  
-  
-  
-b)If you talk to me i could supply you with a non-BIND compiled version  
-(8.8.5). Perhaps !RedHat should consider supplying two sendmail binaries  
-(like slakware) One with BIND and the other with no BIND. OR  
-  
-  
-c) The quickest solution to get sendmail with no bind is to edit ''src/conf.h''  
-lines below to read as i have shown:  
-  
-  
-''# ifndef NAMED_BIND conf.h:# define NAMED_BIND 0 /* use Berkeley  
-Internet Domain Server */''  
-  
-  
-<u >PART II</u >:  
-Sendmail would however normally insist on doing name look ups to resolve  
-the host part using ''gethostbyaddr()'' for each email it sends (even  
-if you tell it not to canonify names).  
-  
-  
-a) use an ''RFC1597'' IP address (10...-10.255.255.255, 172.16..-172.31.255.255,  
-192.168..-192.168.255.255)  
-Edit ''/etc/hosts ''and add the following as a sample for the host  
-myhost  
-''10...1 myhost.me.com myhost'' or  
-b) If you use NIS (and NIS is compiled into sendmail as seems to be  
-the case in Redhat. ) make sure the ''/etc/nsswitch.conf ''file contains:  
-''hosts: files dns'' and in ''/etc/hosts'' and add the following  
-as a sample for the host myhost [[again using RFC1597 IP addressing scheme ]  
-''10...1 myhost.me.com myhost''  
-  
-  
-__NOTE: __---- In both a) and b) above it is critical that you list  
-the long (fully qualified) in the /etc/hosts file used. i.e the line should  
-read ''10...1 myhost.me.com myhost'' and NOT ''10...1 myhost ''you  
-will also need to define the sendmail __$w __macro to hold ''myhost.me.com''  
-add the Following line to your ''/etc/sendmail.cf ''after it is  
-generated __''Djmyhost.me.com''__ (or you can use __MASQUAREADE_AS(myhost.me.com)__  
-in the ''.mc'' below)  
-  
-  
-__NOTE__!!!!! ''myhost'' as a domain name is given as an example;  
-you dont have to use it as is. Pick your own hostname if you dont have  
-one already.  
-  
-----____  
-  
-  
-__2)__ Ensure that you have makemap and it is  
-capable of supporting hash and or the more common dbm format or even  
-btree format (The Redhat version does not support dbm). Makemap is normaly  
-distributed with sendmail.  
-  
-  
-  
-!  
-SETUP (the mc file)  
-I) create your .mc file using your favorite editor; i'll call this file  
-''my.mc''  
-  
-  
-__a) No DNS -- standalone__  
-  
-----  
-i''nclude(`../m4/cf.m4')''  
-''VERSIONID(`me.com's 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)''  
-  
-----  
-  
-  
-Let's dissect this:  
-  
-  
-''include(`../m4/cf.m4')'' requests for the m4 macro found in ../m4/cf.m4  
-to be include to resolve some things  
-  
-  
-  
-''VERSIONID(`me.com's setup with uucp created by xxxx')dnl'' This  
-is used to distinguish the different versions of .cf file you might end  
-up creating.  
-  
-  
-  
-''OSTYPE(linux)'' This is used to define/redefine linux specific stuff.  
-It is safe to have it here.  
-  
-  
-  
-''FEATURE(nodns)dnl ''This says we dont have a DNS server (so in effect  
-we are using uucp only for mail. Sendmail must be compiled not to use bind)  
-This is now obsolete. I will let it stay here just in case you use an older  
-version of sendmail.  
-  
-  
-  
-''FEATURE(nocanonify)dnl ''This says Don't pass addresses to ''$[[ ...  
-$]'' for canonification. Normally if you have BIND compiled in sendmail  
-would try and expand the alias/IP address to a canonical name using DNS.  
-You dont wanna do this if all you have are feeds which connect to you via  
-UUCP i.e you are a stand alone.  
-  
-  
-  
-''FEATURE(always_add_domain)dnl'' This adds the local domain host name  
-even on locally delivered mail Not necessary i just like it; __''This  
-might not be a safe feature since spammers, with proper setup conditions,  
-can abuse you''__.  
-  
-me.com is not connected to the net via tcp/ip so it is safe  
-  
-  
-''FEATURE(mailertable, hash /etc/mailertable)dnl'' the file ''/etc/mailertable''  
-is going to be a ''hash ''database where we will store routing information  
-of certain sites. If you dont have anyone who you feed uucp to then you  
-dont need this. More on this later. If you wanted to use the ''dbm ''format  
-you would have'' FEATURE(mailertable, dbm /etc/mailertable)dnl ''If  
-you wanted to use the ''btree'' format you would have ''FEATURE(mailertable,  
-btree /etc/mailertable)dnl''  
-  
-  
-  
-''MAILER(local)dnl MAILER(smtp)dnl MAILER(uucp)'' These are the mailers  
-we use.  
-  
-  
-  
-''define(`SMART_HOST', uucp-dom:mysmarthost) ''Our smart host is our  
-ISP who is defined in the uucp __sys__ file as ''system mysmarthost''.  
-Any messages that we cant handle (i.e ones for domains or mailers we dont  
-understand) will be passed on to our smarthost/ISP to figure out. note  
-we use uucp-dom as the uucp mailer. This particular mailer uses smtp  
-rewriting rules.  
-  
-  
-  
-  
-__b) DNS on__  
-  
-----  
-''include(`../m4/cf.m4')''  
-''VERSIONID(`me.com's 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) create your sendmail.cf file  
-a) backup your old ''/etc/sendmail.cf'' file  
-b) overwrite the sendmail.cf with the new one: ''m4 my.mc > /etc/sendmail.cf''  
-c) verify that the sendmail.cf file was correctly created based on  
-your specifications.  
-Some of the gotchas that i came across were: - ''missing uucp-dom  
-mailer ''This was because i didnt have the smtp mailer entry. Actually,  
-i understand it is important to have it defined before the uucp  
-  
-  
-!  
-III) create your /etc/mailertable  
-if you dont have uucp sites feeding off you skip this step  
-  
-  
-a) create/edit the file /etc/mailertable  
-  
-  
-sample /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''  
-  
-----  
-  
-  
-This says anything that is addressed to ''system1.org'' or to ''*.system1.org  
-''that we receive will be sent using the ''uucp-dom'' mailer and be  
-delivered to ''system1'' (defined in the the uucp __sys __file) in  
-other words we are doing the mail routing for ''*.system1.org ; ''similar  
-for ''down.com ''and its subnodes except for the additional filtering;  
-we bounce back any mail for down's subnode ''up.down.com ''using sendmail's  
-built-in ''error ''mailer with the message __''"Host is unknown at  
-me.com"''__; This is because we have been asked to do this by the admin  
-at ''down.com.'' To bounce unknown subdomains to us we use the last  
-line in the mailertable (which is what all unknown nodes default to).  
-b) create the database with __makemap__  
-  
-  
-if you use ''hash'':  
-''makemap hash /etc/mailertable < /etc/mailertable''  
-if you use ''dbm:''  
-''makemap dbm /etc/mailertable </etc/mailertable''  
-if you use'' btree:''  
-''makemap btree /etc/mailertable </etc/mailertable''''''  
-  
-  
-do this every time you change the file.  
-''''  
-  
-!  
-IV) restart sendmail  
-  
-!  
-V) test sendmail  
-i) sendmail -bv user@destination  
-ii) using sendmail -bt and enter various addresses using 3,  
-ruleset to see where they end up and the various rulesets and cf walks  
-taken.  
-  
-  
-__You are set!__  
-  
-  
-  
-----  
-  
-!  
-TODO  
-  
-  
-1) Add info on setting up system down.com (so as to show how to  
-take care of those smtp nodes)  
-2) Add info on how to setup news to be delivered via UUCP  
-(preferably INN). This might require changing the title of the doc
+Describe [HowToSendmailUUCP ] here.