您当前的位置: 首页 > CERNET > 疑难解答
带SMTP认证的sendmail配置
  
准备工作  安装sasl库  编译和配置sendmail  Outlook Express 5.0 的配置

  带SMTP认证的sendmail配置使用的软件:

  Redhat 7.2, 内核2.4.7-10
  Sendmail-8.12.3
  cyrus-sasl-1.5.27

  一、准备工作

  1.首先要下载sasl库,该函数库提供了安全认证所需函数,下载地址是(ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/ ),版本1.5.27,
注意2.X 版本无法与sendmail结合,因为API还未做修改.

  2.下载sendmail(http://www.sendmail.org),版本在8.10.0以上的sendmail才支持SMTP认证功能。

  3.注意选择客户端电子邮件软件。并不是所有的客户端电子邮件软件都支持SMTP认证功能,

  几种常见的版本要求是这样的:
  Netscape Messenger 的版本要4.6以上
  Outlook和Outlook Express要5.0版本以上
  Eudora pro的版本要在4.3以上
  Foxmail 的版本要在4.0以上
  每一种软件的认证方法是不一样的,编译sasl库的时候和配置sendmail略有不同。这里就大家最常见的Outlook Express 5.0和Foxmail的设置方法介绍如下。

  二、安装sasl库

  1解压cyrus-sasl-1.5.27.tar.gz到你选定的目录
  快速安装
  gzip cyrus-sasl-1.5.27.tar.gz
  tar -xvf cyrus-sasl-1.5.27.tar
  cd cyrus-sasl-1.5.27
  ./configure -prefix=/usr --enable-login --with-pwcheck --with-digest
  make
  make install
  现在编译已经完成。
  说明:
  1) Outlook Expresss使用LOGIN的认证方法,sasl库缺省并不支持这种方式,所以要在生成配置文件时特别加入,另外,Outlook的口令验证方式也不是缺省的方式,所以也需要加入--with-pwcheck的选项

  2) 缺省情况下,所有的库函数安装到/usr/local/lib目录下,但sendmail使用的库函数是在目录/usr/lib下的。如果上面的prefix选择/usr, 库函数就会放在/usr/lib下了。否则如果采用默认路径(/usr/local ),需要在缺省情况下,所有的库函数安装/usr/local/lib目录下,但sendmail使用的库函数是在目录/usr/lib下的,所以需要做一些调整。
  cd /usr/lib
  ln /usr/local/lib/sasl/ ./sasl -s
  cp /usr/local/lib/libsa* .
  也可以避开这一步,在运行configure脚本前,修改其中的缺省路径就可以了。用vi打开configure文件找到这一ac_default_prefix=/usr/local(在文件前几行),改为ac_default_prefix=/usr 就可以了,这样更方便一些。

  2.在目录下新建目录/var/pwcheck
  mkdir /var/pwcheck
  此目录供pwcheck命令使用,该命令是一个后台程序,负责检查用户的输入口令,以root权限使用shadow口令文件。

  3.在/usr/lib/sasl目录下建立文件Sendmail.conf,加入如下一行:
  pwcheck_method:pwcheck
  如果该文件已经存在,直接修改即可。到此,sasl库函数的安装就完成了。

  三、编译和配置sendmail

  1. 解压sendmail软件到你希望的目录,进入sendmail-8.12.3目录。按如下步骤操作:
  gzip sendmail.8.12.3.tar.gz
  tar -xvf sendmail.8.12.3.tar
  cd sendmail-8.12.3

  2. 进入devtools/Site/目录并创建site.config.m4文件
  cd devtools/Site/
  vi site.config.m4
  在该文件中加入如下两行文字,把SMTP认证功能编译到sendmail中:
  APPENDDEF(`confENVDEF',`-DSASL')
  APPENDDEF(`conf_sendmail_LIBS',`-lsasl')
  *APPENDDEF(`confLIBDIRS',`-L/usr/local/lib')
  *APPENDDEF(`confINCDIRS',`-I/usr/local/include')
  带*的是可选的。
  注意:行末没有空格,逗号前后没有空格。最后两行中的/usr/local需要根据具体的sasl库函数的安装目录决定。

  3. 回到sendmail-8.12.3目录,再进入sendmail目录,开始编译sendmail:sh Build (如果不是第一次编译,需要加入-c选项,sh Build -c清除以前的配置)

  4.进入sendmail-8.12.3目录下的 cf/cf/
  cd ..
  cd cf/cf/
  把与操作系统对应的.mc文件复制为sendmail.mc,这里选择linux
  cp generic-linux.mc sendmail.mc

  5.编辑sendmail.mc,加入你需要的FEATURE.
  TRUST_AUTH_MECH(`LOGIN PLAIN DIGEST-MD5')dnl
  define(`confAUTH_MECHANISMS', `LOGIN PLAIN DIGEST-MD5')dnl
  *dnl define(`confDEF_AUTH_INFO', `/etc/mail/auth/auth-info')
  FEATURE(`no_default_msa')dnl
  DAEMON_OPTIONS(`Port=25, Name=MSA, M=Ea')dnl
  注意:FEATURE要加在MAILER语句的前面。
  说明:
  "TRUST_AUTH_MECH"的作用是使sendmail不管access文件中如何设置,都能relay那些通过LOGIN,
  PLAIN或DIGEST-MD5方式验证的邮件。
  "confAUTH_MECHANISMS"的作用是确定系统的认证方式。
  "confDEF_AUTH_INFO"的作用是当你的计算机作为客户机时,
  向另外一台有smtp认证功能的主机进行认证,用户和密码存放在auth-info文件中,在这个例子中并不需要这个功能,所以注释掉了。

  6.生成sendmail.cf文件
  sh Build sendmail.cf

  7.(可选)备份/etc/mail/sendmail.cf 和sendmail的执行文件。

  8.把sendmail.cf安装到/etc/mail/sendmail.cf,submit.cf安装到/etc/mail/submit.cf;可以使用复制的方法,更简单的方法是在cf/cf/下运行:sh Build install-cf

  9.由于sendmail安全的要求,需要建立以smmsp为名字的组和以smmsp为名字的用户,具体参考sendmail/SECURITY文档:
groupadd smmsp usradd -g smmsp smmsp

  10. 回到sendmail-8.12.3目录,再进入sendmail目录,运行"sh Build install",完成最后的安装。

  11..现在基本上可以了, 进入/etc/rc.d/init.d,启动sendmail测试:
  cd /etc/rc.d/init.d
  sendmail start
  ps -aux 可以看到启动的进程。
  运行下面命令测试sendmail:
  telnet localhost 25
  ehlo localhost
  注意有没有以下的信息出现.
  250-xxxxxxxx
  250-xxxxxxx
  250-AUTH LOGIN PLAIN DIGEST-MD5
  250-xxxxxx
  可能会略有不同,不过你选定的认证方式AUTH LOGIN PLAIN DIGEST-MD5一定要有的。如果显示没有问题,服务器端的配置你已经成功了。如果没有出现上面的信息,请运行sendmail -O loglevel=14 -bs仔细检查问题所在。

  12.结束服务器端的配置之前,我们还要做一件事,运行pwcheck这个daemon程序,这样才能完成用户认证功能。

  四、Outlook Express5.0的配置

  1.打开你的Outlook Express,修改你的账号属性,在服务器选项,选取我的smtp服务器需要认证选项,然后进入配置。

  2.不要选取安全口令认证,sendmail并不支持这个选项。是选取使用pop3同样的口令还是选择另外输入用户和密码,这就看你的爱好和设置了,这不是关键。如果你在服务器上有一个真实账号,不妨选取使用同样的口令,如果没有账号,选用其他的用户口令同样可以。

  
  

相关文章:

中国教育和科研计算机网版权与免责声明
①凡本网未注明稿件来源的所有文字、图片和音视频稿件,版权均属本网所有,任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发表。已经本网协议授权的媒体、网站,在下载使用时必须注明"稿件来源:中国教育和科研计算机网",违者本网将依法追究责任。
② 本网注明稿件来源为其他媒体的文/图等稿件均为转载稿,本网转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。

Copyright(c) 1994-2020 CERNIC,CERNET 京ICP备15006448号-16 京网文[2017]10376-1180号
关于假冒中国教育网的声明 | 版权所有:中国教育和科研计算机网网络中心