14.2 Log Transactions with -X

Beginning with V8.2 sendmail , the -X command-line switch can be used to record all input and output, SMTP traffic, and other significant transactions. The form of the -X (transaction) command-line switch looks like this:

 -X   file   

Space between the -X and the file is optional. The file can be specified as either a full or a relative pathname. For security the -X command-line switch always causes sendmail to give up its privileges unless it was run by root . If the transaction file cannot be opened for writing, the following error is printed and no logging is done:

 cannot open   file   

Otherwise, the file is opened in append mode, and each line that is written to it looks like this:

   pid what detail   

The pid is the process identification number of the sendmail that added the line. The what is one of these three symbols:

<<<

This is input. It is either text that is read on the standard input, or parts of an SMTP dialog that were read on a socket connection.

>>>

This is output. It is either something that sendmail printed to its standard output, or something that it sent over an SMTP connection.

= = =

This is an event. The only two events that are currently logged are CONNECT for connection to a host and EXEC for execution of a delivery agent.

To illustrate , consider sending a mail message to yourself and to a friend at another site:

 %  /usr/sbin/sendmail -X /tmp/xfile -oQ`pwd` yourself,friend@remote.host   To: yourself,friend@remote.host   Subject: test   This is a test.   .  

These few lines of input produce a long /tmp/xfile . The first few lines of that file are illustrative :

 29559 <<< To: yourself,friend@remote.host 29559 <<< Subject: test 29559 <<< 29559 <<< This is a test. 29559 <<< . 29561 =  == CONNECT remote.host 29561 <<< 220 remote.host ESMTP Sendmail 8.9.3; Fri, 13 Dec 2002 08:06:47 -0600 (MDT) 29561 >>> EHLO your.host 29561 <<< 250-remote.host Hello you@your.host [206.54.76.122], pleased to meet you 29561 <<< 250-8BITMIME 29561 <<< 250-SIZE 29561 <<< 250-DSN 29561 <<< 250-VERB 29561 <<< 250-ONEX 29561 <<< 250 HELP 29561 >>> MAIL From:<your@your.host> SIZE=65 29561 <<< 250 <your@your.host>... Sender ok 29561 >>> RCPT To:<friend@remote.host> 29561 <<< 250 Recipient ok 29561 >>> DATA 29561 <<< 354 Enter mail, end with "." on a line by itself 29561 >>>  The first line of data here,  29561 >>>  the second line of data here,  29561 >>>  and so on.  

Notice that the process ID changes. After sendmail collects the message, it performs a fork (2) and exec (2) to handle the actual delivery.

Because these transaction files include message bodies, they should be guarded . Never use the -X switch with the daemon unless you are prepared for a huge file and the possibility of disclosing message contents to nonprivileged users.



Sendmail
sendmail, 4th Edition
ISBN: 0596510292
EAN: 2147483647
Year: 2002
Pages: 1174

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net