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 information about how email works and an overview of common
configuration settings, refer to the chapter titled
Email in the
Red Hat Enterprise 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
Red Hat Enterprise Linux Reference Guide.
It is recommended that anyone planning to implement a Sendmail server
address the following issues.
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 in
/etc/mail/sendmail.mc, the effectiveness of such
attacks are limited.
confCONNECTION_RATE_THROTTLE
— The number of connections the server can receive per
second. By default, Sendmail does not limit the number of connections. If a
limit is set and reached, further connections are delayed.
confMAX_DAEMON_CHILDREN
— The maximum number of child processes that can be spawned by
the server. By default, Sendmail does not assign a limit to the number of
child processes. If a limit is set and reached, further connections
are delayed.
confMIN_FREE_BLOCKS
— The minimum number of free blocks which must be available
for the server to accept mail. The default is 100 blocks.
confMAX_HEADERS_LENGTH
— The maximum acceptable size (in bytes) for a message header.
confMAX_MESSAGE_SIZE
— The maximum acceptable size (in bytes) for any one message.
Never put the mail spool directory,
/var/spool/mail/, on an NFS shared
volume.
Because NFSv2 and NFSv3 do not maintain control over user and group
IDs, two or more users can have the same UID, and receive and read
each other's mail. With NFSv4 using Kerberos, this is not the case,
since the SECRPC_GSS kernel module does not
utilize UID-based authentication.
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 /sbin/nologin (with the possible exception of
the root user).