Home -- Michael's Blog :: Just Do IT -- Manuals

22.10. SMTP 验证

作者:James Gorham.

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

  1. 从 ports 中安装 security/cyrus-sasl。 您可以从 security/cyrus-sasl 找到它。 security/cyrus-sasl 有一系列编译时可选的选项, 包括我们将要使用的验证方式等等。请务必选择 pwcheck

  2. 安装完 security/cyrus-sasl 之后, 编辑 /usr/local/lib/sasl/Sendmail.conf (如果不存在则建立) 并在其中增加:

    pwcheck_method: passwd
    

    这个方法将允许sendmail 依照你的FreeBSD passwd数据库进行验证 . 这将为每个用户建立一个新用户名设置和口令使用 SMTP验证减少麻烦, 并且保证登陆和邮件口令是相同的 .

  3. 现在编辑/etc/make.conf文件,添加如下行 :

    SENDMAIL_CFLAGS=-I/usr/local/include/sasl1 -DSASL SENDMAIL_LDFLAGS=-L/usr/local/lib SENDMAIL_LDADD=-lsasl
    

    这些行将给sendmail合适的配置选项,为在编译时间链接到cyrus-sasl. 确定cyrus-sasl 被安装之前重新编译 sendmail.

  4. 重新编译sendmail运行如下命令:

    # cd /usr/src/usr.sbin/sendmail
    # make cleandir # make obj # make # make install
    

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

  5. 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 define(`confDEF_AUTH_INFO', `/etc/mail/auth-info')dnl
    

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

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

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

你也许希望添加如下行到/etc/rc.conf文件, 这将允许服务在重起之后自动运行:

sasl_pwcheck_enable="YES"
sasl_pwcheck_program="/usr/local/sbin/pwcheck"

这将保证SMTP_AUTH初始化在系统启动时自动运行 .

更多的信息, 请参看sendmail 相关页 SMTP 验证.

Michael's Blog :: Just Do IT -- manuals