作者:小鬼快乐momomo | 来源:互联网 | 2014-05-28 08:57
Sendmail是使用简单邮件传输协议(SMTP)的邮件传输代理(MTA)。它在其它MTA和电子邮件客户或分发代理之间传送电子消息。虽然一些MTA能够加密彼此间的通信,但多数却不能,因此通过公共网络发送邮件被认为是一种带有固有不安全因素的通信方式。关于电子
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 ? 单个消息的可接受大小的最大限度(以字节为单位)。
NFS 和 Sendmail
决不要把邮件假脱机目录 /var/spool/mail/ 放在 NFS 共享文件卷上。
在 NFSv2 和 NFSv3 中,系统对用户组群 ID 没有控制。因此,几个 UID
相同的用户可以收到和阅读彼此的邮件。NFSv4 使用 Kerberos 而不是使用基于 UID 的用户认证。所以在 NFSv4
中就不会出现这种情况。
只使用电子邮件程序访问 Sendmail 服务器
要防止本地用户利用 Sendmail 服务器上的漏洞,最好是让邮件用户只使用电子邮件程序来访问 Sendmail
服务器。邮件服务器上的 Shell 帐号不应该被允许,/etc/passwd 文件中的所有用户 shell 都应该被设置为
/sbin/nologin(根用户可能是个例外)。