5.7. 保护 Sendmail 的安全

Sendmail 是使用简单邮件传输协议(SMTP)的邮件传输代理(MTA)。它在其它 MTA 和电子邮件客户或分发代理之间传送电子消息。虽然一些 MTA 能够加密彼此间的通信,但多数却不能,因此通过公共网络发送邮件被认为是一种带有固有不安全因素的通信方式。

关于电子邮件的工作原理以及普通配置的总览,请参阅《红帽企业 Linux 参考指南》的“电子邮件”这一章。本节假定你已具备如何通过编辑 /etc/mail/sendmail.mc 和运行 m4 命令来生成有效的 /etc/mail/sendmail.cf 的基本知识,这些在《红帽企业 Linux 参考指南》中都有说明。

推荐任何打算实现 Sendmail 服务器的用户解决以下问题。

5.7.1. 限制“拒绝服务”攻击

由于电子邮件的性质,一个决意要攻击某个服务器的攻击者可以轻易地使用邮件来极大地增加服务器的系统开销,从而导致拒绝服务的攻击。通过设置 /etc/mail/sendmail.mc 的以下目录的限度,这类攻击的有效性就会大受限制。

5.7.2. NFS 和 Sendmail

决不要把邮件假脱机目录 /var/spool/mail/ 放在 NFS 共享文件卷上。

在 NFSv2 和 NFSv3 中,系统对用户组群 ID 没有控制。因此,几个 UID 相同的用户可以收到和阅读彼此的邮件。NFSv4 使用 Kerberos 而不是使用基于 UID 的用户认证。所以在 NFSv4 中就不会出现这种情况。

5.7.3. 只使用电子邮件程序访问 Sendmail 服务器

要防止本地用户利用 Sendmail 服务器上的漏洞,最好是让邮件用户只使用电子邮件程序来访问 Sendmail 服务器。邮件服务器上的 Shell 帐号不应该被允许,/etc/passwd 文件中的所有用户 shell 都应该被设置为 /sbin/nologin(根用户可能是个例外)。