在 Solaris 9 平台上配置 Sendmail作者:Eric Rinker 我写本文档的目的是为了介绍如何在运行 Solaris 9 操作系统的计算机上对 Sendmail 进行更改的基本知识。本文档适用于对 UNIX 操作系统标准原则具有丰富实践知识的工程师。为了更好地理解本文档,您需要知道如何编辑文件和运行程序,而且需要超级用户权限。 电子邮件的工作原理(邮件传输代理)有两种类别的应用程序可用于处理电子邮件:邮件用户代理 (Mail User Agent, MUA) 和邮件传输代理 (Mail Transfer Agent, MTA)。 邮件用户代理是有助于创建、查看和处理电子邮件的应用程序。示例包括 UNIX 环境中的 mail 或 elm,以及 Windows 环境中的 Eudora 或 Outlook。Netscape 和 Explorer 都是可以作为 MUA 的 Internet 浏览器。 邮件传输代理从一台计算机传输电子邮件;通常,每台计算机仅使用一个 MTA。Sendmail 可充当此角色,而计算机上的其他 MTA 包括 Exim、Postfix 和 Qmail。 Sendmail 的发展过程Sendmail 是世界上出现最早、使用最广泛的 MTA。它是大多数 UNIX 分发(包括 HP 的 HP-UX、IBM 的 AIX 和 Sun Microsystems 的 Solaris 操作系统)的缺省 MTA。由于 Sendmail 已经存在很长时间,因此其配置和维护工作非常复杂,但 Sendmail 几乎无所不能的优点弥补了这些缺陷。 Sendmail 最早出现在 30 多年前,如今已发展成为一种强健且功能丰富的方法,可用于在不同位置之间传输电子邮件。最初设计 Sendmail 时,洗衣机大小的硬盘驱动器才提供 64 KB 的可用存储空间,因此 Sendmail 尽一切可能来节省空间。为了做到简明扼要,Sendmail 配置文件使用了隐含参数,例如,用 "Fw" 表示“接收邮件的域”,用 "DH" 表示“获取所有本地电子邮件的人”。虽然有办法弄明白隐含参数的含义,但对于新用户来说则非常不容易理解。为了实现向后兼容,这些隐含参数仍存在于如今各种 Sendmail 版本的配置文件中。 多年来,由于向 Sendmail 中添加了各种功能,因此配置过程变得越来越复杂。为了更便于管理员进行管理,Sendmail 使用基于 m4 的编译和配置模型。管理员与生成和配置过程之间的这一层使 Sendmail 更易于设置和维护,而无需升级旧程序以处理新的交互方法。 配置本文档不可能涵盖有关 Sendmail 的所有内容,否则,文档将会包含数百页的冗长内容。我们只是着重介绍了三种常见配置:邮件服务器、传入中继和仅传出。 修改 Sendmail 的行为时,并不直接更改
在我们的示例中,我们会将 cd /usr/lib/mail/cf 首先,在所有三种配置中共享公共元素。文件至少包含以下内容: OSTYPE(`solaris8')dnl DOMAIN(`generic')dnl MAILER(`local')dnl MAILER(`smtp')dnl
邮件服务器是用于传入邮件的典型服务器。它为 user@domain 接收邮件,将邮件传送到用户的本地邮箱,并处理邮件队列中的邮件以传送到外部世界。 您只需进行一处更改,即:将被认为是本地帐户的每个域添加到 最终结果: OSTYPE(`solaris8')dnl MAILER(`local')dnl MAILER(`smtp')dnl传入中继 传入中继是位于公司防火墙外部的公司电子邮件服务器的常见配置。这些中继将电子邮件传递到防火墙内部的预定义服务器(公司的邮件服务器),而不存储电子邮件。此设置非常适合实现过滤,因为此计算机不处理典型邮件服务器的其他任务。 要配置传入中继,首先需要添加中继服务器信息。在这种情况下,我们要将所有邮件中继到 define(`SMART_HOST', 'relay.mydomain.com')dnl 接下来,必须允许通过此计算机中继邮件。最好仅为内部服务器所服务的域中继邮件。以下选项指示 sendmail 将 /etc/mail/relay-domains 文件用作允许通过此服务器发送或接收邮件的域的列表: FEATURE(`relay_entire_domain')dnl 操作已完成。此服务器现在会将 /etc/mail/relay-domains 文件中的所有域(本地帐户除外)中继到 最终结果: OSTYPE(`solaris8')dnl DOMAIN(`solaris-antispam')dnl define(`SMART_HOST', 'relay.mydomain.com')dnl FEATURE(`relay_entire_domain')dnl MAILER(`local')dnl MAILER(`smtp')dnl仅传出 出于安全考虑,最好不要随意设置邮件中继。每台计算机都需要使用 MTA 发送电子邮件,并且某些程序要求能够通过 SMTP 服务器中继电子邮件。根据这些要求,通过将 Sendmail 配置为仅附加到回送地址,既可以为本地服务中继邮件,又可以防止系统成为开放式中继。 要使 Sendmail 仅传出邮件,Sendmail 不能接受来自任何远程主机的邮件。为此,我们强制 Sendmail 仅使用本地回送地址。 DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA') 不需要任何其他选项;缺省情况下,Sendmail 将邮件从本地计算机传输到外部世界。 最终结果: OSTYPE(`solaris8')dnl 接下来做什么有关中继服务器选项的详细信息,请参见 sendmail.org 的提示 Allowing controlled SMTP relaying in Sendmail 8.9 and later(在 Sendmail 8.9 和更高版本中允许受控的 SMTP 中继)。具体来说,请查看如何使用 access_db 选项以获取更强健的防垃圾邮件过滤中继服务器。 现在您已经知道如何进行更改,可以确定需要进行哪些类型的更改。首先应阅读
致谢作者感谢 Sun Microsystems 的 John Beck 帮助审阅本文档。 2003 年 4 月 除非另行颁发许可,否则此处所有技术手册中的代码(包括文章、常见问题解答和样例)只能在本许可下使用。 |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||