Previous Section Next Section

IP_SRCROUTE

Add IP source-routing to $_ tune with confENVDEF

Mail is normally transported over networks with TCP/IP. At the IP layer, packets are usually constructed to be point-to-point—from one host to another. IP packets can also be constructed to contain source-routing information—from one host, through a second, then to a final host.

Although such source routing (when used) is generally legitimate, it can also be used to generate fraudulent mail. V8.7 and above sendmail attempts to extract source-routing information from the initial connection's IP information. If any is found, sendmail adds that information to the $_ defined-macro ($_) for use in the Received: header (Received:). The $_ defined-macro is usually used like this:

Received: from $s ($_) ...

where $_ will contain information such as the following when IP source-routing information is found:

IP source-routing information
             
 
 user@host.domain [!@hostC@hostB:hostA]
   
 RFC1413 identd information

IP source-routing information is presented inside square brackets. If routing is strict, the information is prefixed with an exclamation mark. The format of the information is made to resemble that of source-route addressing (see also the DontPruneRoutes option, DontPruneRoutes). In this example the IP packets will go first to hostC, then to hostB, and finally to hostA.

The inclusion of code to support this reporting is determined by the IP_SRCROUTE definition in your Build m4 file:

APPENDDEF(`confENVDEF', `-DIP_SRCROUTE=1') turn on support
APPENDDEF(`confENVDEF', `-DIP_SRCROUTE=0') turn off support

It is predefined correctly for all supported systems in sendmail/conf.h. If you wish to disable this, you can. But, in general, you should need to redefine it only if you are porting sendmail to a completely new system. Be sure to read sendmail/README for the latest information about IP_SRCROUTE.

If you are running a precompiled sendmail binary, you can use the -d0.10 debugging command-line switch (-d0.10) to determine if IP_SRCROUTE support is defined (if it appears in the list, it is defined).

    Previous Section Next Section