1.5 Red Hat Enhancements

If you have a look at the spec file you can see that Red Hat has provided several patches. These are:

Patch0: sendmail-8.9.3-redhat.patch <--- this patch configures the source code correctly for the Red Hat Linux file system structure

Patch1: sendmail-8.9.3-cf.patch <--- this patch configures the default mail delivery agent (procmail) and sets up a status file

Patch2: sendmail-8.7.1-makemapman.patch <--- this patch edits the makemap.8 man page

Patch3: sendmail-8.7.1-smrsh.patch <--- this patch implements changes resulting from a security announcement from CERT

Patch4: sendmail-8.9.3-db1.patch <--- this patch upgrades the db functionality included with sendmail

Patch5: sendmail-8.8.7-rmail.patch <--- this patch removes undesirable command switches

Patch6: sendmail-8.9.3-smrsh.patch <--- this patch defines binary locations and adds a config for smrsh (sendmail restricted shell) which is the default configuration with Red Hat sendmail.

In addition to these patches Red Hat has also provided an initial, default, configuration. You do not have to use it but it's there. Let's have a look at it:

   divert(-1) 
   dnl This is the macro config file used to generate the /etc/sendmail.cf 
   dnl file. If you modify this file you will have to regenerate the 
   dnl /etc/sendmail.cf by running this macro config through the m4 
   dnl preprocessor: 
   dnl 
   dnl m4 /etc/sendmail.mc > /etc/sendmail.cf 
   dnl 
   dnl You will need to have the sendmail-cf package installed for this
   dnl to work. 
   include(`@@PATH@@/m4/cf.m4') 
   define(`confDEF_USER_ID',``8:12'') 
   OSTYPE(`linux') 
   undefine(`UUCP_RELAY') 
   undefine(`BITNET_RELAY') 
   define(`confAUTO_REBUILD') 
   define(`confTO_CONNECT', `1m') 
   define(`confTRY_NULL_MX_LIST',true) 
   define(`confDONT_PROBE_INTERFACES',true) 
   define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail') 
   FEATURE(`smrsh',`/usr/sbin/smrsh') 
   FEATURE(mailertable) 
   FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable') 
   FEATURE(redirect) 
   FEATURE(always_add_domain) 
   FEATURE(use_cw_file) 
   FEATURE(local_procmail) 
   MAILER(procmail) 
   MAILER(smtp) 
   FEATURE(`access_db') 
   FEATURE(`blacklist_recipients') 
   dnl We strongly recommend to comment this one out if you want to protect 
   dnl yourself from spam. However, the laptop and users on computers
   dnl that do not hav 24x7 DNS do need this. 
   FEATURE(`accept_unresolvable_domains') 
   dnl FEATURE(`relay_based_on_MX')
   

We will examine this file and what it does in detail in a later section of this document. For now it's important to note that depending on what type of environment you're in, this may be an appropriate or completely inappropriate configuration. In either case you aren't tied irrevocably to this file. It may be changed or replaced as needed.

Some of the other files included in the src.rpm are:

sendmail.init <--- this is the initialization script which will be placed in /etc/rc.d/init.d/ to start sendmail when the machine is booted

sendmail.sysconfig <--- this file will end up in /etc/sysconfig after installation

sendmail.8.9.3.tar.gz <--- this is the actual source code for sendmail

check.tar <--- this file contains Claus Assman's anti-UCE hacks

aliases <--- this is the standard /etc/aliases file

The default installation (Workstation or Server) of sendmail does not install the sendmail-cf RPM. By default the intention is for you to use linuxconf to configure sendmail. This may be an appropriate choice for the average user but for the purposes of this document we will want to deal with sendmail using the tools designed by sendmail's creators. This means that most of what we will be doing will involve using m4 to change or modify sendmail's configuration. This method is incompatible with the use of linuxconf so if you intend to use linuxconf to maintain your sendmail configuration you will not be using m4 and vice versa.