Sendmail 是使用简单邮件传输协议(SMTP)的邮件传输代理(MTA)。它在其它 MTA 和电子邮件客户或分发代理之间传送电子消息。虽然一些 MTA 能够加密彼此间的通信,但多数却不能,因此通过公共网络发送邮件被认为是一种带有固有不安全因素的通信方式。
关于电子邮件的工作原理以及普通配置的总览,请参阅《红帽企业 Linux 参考指南》的“电子邮件”这一章。本节假定你已具备如何通过编辑 /etc/mail/sendmail.mc 和运行 m4 命令来生成有效的 /etc/mail/sendmail.cf 的基本知识,这些在《红帽企业 Linux 参考指南》中都有说明。
推荐任何打算实现 Sendmail 服务器的用户解决以下问题。
由于电子邮件的性质,一个决意要攻击某个服务器的攻击者可以轻易地使用邮件来极大地增加服务器的系统开销,从而导致拒绝服务的攻击。通过设置 /etc/mail/sendmail.mc 的以下目录的限度,这类攻击的有效性就会大受限制。
confCONNECTION_RATE_THROTTLE — 服务器每秒能够接受的连接数量。按照默认设置,Sendmail 不限制连接数量。如果限度被设置并到达,以后的连接就会被延迟。
confMAX_DAEMON_CHILDREN — 服务器能够分出的子进程的最大数量。按照默认设置,Sendmail 不限制子进程的数量。如果限度被设置并达到,以后的连接就会被延迟。
confMIN_FREE_BLOCKS — 必须为服务器保留的用来接受邮件的空闲块的最少数量。默认为100块。
confMAX_HEADERS_LENGTH — 消息头的可接受大小的最大限度(以字节为单位)。
confMAX_MESSAGE_SIZE — 单个消息的可接受大小的最大限度(以字节为单位)。