FreeBSD 使用手册
上一页 | 第29章 　电子邮件 | 下一页

# 29.10 SMTP 验证

作者：James Gorham.

在您的邮件服务器上启用 SMTP 验证有很多好处。 SMTP 验证可以让 sendmail 多一重安全保障， 而且也使得使用不同机器的漫游用户能够使用同一个邮件服务器， 而不需要每次都修改它们的邮件客户端配置。

1. 从 ports 安装 `security/cyrus-sasl2`。 这个 port 位于 `security/cyrus-sasl2`。 `security/cyrus-sasl2` port 支持很多可以在编译时指定的可选项。 由于我们要使用 SMTP 身份验证， 因此要确认没有禁用 `LOGIN` 选项。

2. 安装完 `security/cyrus-sasl2` 之后， 编辑 `/usr/local/lib/sasl2/Sendmail.conf` (如果不存在则建立一个) 并在其中增加下列配置：

       pwcheck_method: saslauthd

3. 接下来， 安装 `security/cyrus-sasl2-saslauthd`， 编辑 `/etc/rc.conf` 并加入下列配置：

       saslauthd_enable="YES"

   最后启用 saslauthd 服务：

       # /usr/local/etc/rc.d/saslauthd start

   这个服务将充当 sendmail 使用 FreeBSD 的 `passwd` 数据库来完成身份验证时的代理人角色。 这避免了为每个需要使用 SMTP 身份验证的用户建立对应的用户名和口令的麻烦， 也确保了登录与邮件的口令一致。

4. 现在编辑 `/etc/make.conf` 文件，添加如下行：

       SENDMAIL_CFLAGS=-I/usr/local/include/sasl -DSASL
       SENDMAIL_LDFLAGS=-L/usr/local/lib
       SENDMAIL_LDADD=-lsasl2

   这些配置将告诉系统在联编 sendmail 时使用适当的配置选项来在编译过程中连入 `cyrus-sasl2`. 在重新编译 sendmail 之前， 请确认已经安装了 `cyrus-sasl2`。

5. 重新编译 sendmail 运行如下命令：

       # cd /usr/src/lib/libsmutil
       # make cleandir && make obj && make
       # cd /usr/src/lib/libsm
       # make cleandir && make obj && make
       # cd /usr/src/usr.sbin/sendmail
       # make cleandir && make obj && make && make install

   如果 `/usr/src` 和共享库没有大的变化并且它们都必须可用，sendmail 编译应该没有任何问题。

6. sendmail 被重新编译和安装后， 编辑您的 `/etc/mail/freebsd.mc` 文件 (或者无论您选择使用的您的哪个 `.mc` 文件。许多管理员选择使用跟 hostname(1) 一样的唯一的 `.mc` 文件输出)。添加这些行在这个文件：

       dnl set SASL options
       TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
       define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl

   这些选项配置有不同的方法，对于 sendmail 验证用户。 如果您想要使用除 pwcheck 之外的方法，请参考相关文档。

7. 最后，在 `/etc/mail` 运行 make(1)。 它将建立您的新 `.mc` 文件并建立一个 `.cf` 文件命名为 `freebsd.cf` (或者您想使用您的其它名字的 `.mc`文件)。接着使用命令 `make install restart`，这将复制文件到 `sendmail.cf`，并且正确的重新启动 sendmail。 更多有关这个过程的信息，您可以参考 `/etc/mail/Makefile` 文件。

如果所每个步骤都做对了， 您应该可以通过您的邮件客户端进入您的登录信息并且传送一个测试信息。 更多的分析，设置 sendmail 的 `LogLevel` 到 13 并且查看 `/var/log/maillog` 中的信息。

如欲了解更多的信息， 请参看 sendmail 网站上的 关于 SMTP 验证 的介绍。

上一页 | 起始页 | 下一页
拨号连接时使用邮件传送 | 上一级 | 邮件用户代理

本文档和其它文档可从这里下载：ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题，请先阅读文档，如不能解决再联系<questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.