Securing Sendmail

Sendmail is a Mail Transport Agent (MTA) that uses the Simple Mail Transport Protocol (SMTP) to deliver electronic messages between other MTAs and to email clients or delivery agents. Although many MTAs are capable of encrypting traffic between one another, most do not, so sending email over any public networks is considered an inherently insecure form of communication.

For more in formation about how email works and an overview of common configuration settings, see the chapter titled Email in the Official Red Hat Linux Reference Guide. This section assumes a basic knowledge of how to generate a valid /etc/mail/sendmail.cf by editing the /etc/mail/sendmail.mc and running the m4 command as explained in the Official Red Hat Linux Reference Guide.

It is recommended that anyone planning to implement a Sendmail server address the following issues.

Limiting Denial of Service Attack

Because of the nature of email, a determined attacker can flood the server with mail fairly easily and cause a denial of service. By setting limits to the following directives to /etc/mail/sendmail.mc the effectiveness of such attacks will be limited limited.

NFS and Sendmail

Never put the mail spool directory, /var/spool/mail/, on an NFS shared volume.

Because NFS does not maintain control over user and group IDs, two or more users can have the same UID and therefore recieve and read each other's mail.

Mail-only Users

To help prevent local user exploits on the Sendmail server, it is best for mail users to only access the Sendmail server using an Email program. Shell accounts on the mail server should not be allowed and all user shells in the /etc/passwd file should be set to /bin/false (with the possible exception of the root user.