Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

带SMTP认证功能的sendmail配置

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]

环境:


Redhat linux 6.0(内核2.2.14) 
sendmail-8.10.2 
cyrus-sasl-1.5.21 
Outlook express 5.0 

一、准备工作

  1.首先要下载sasl库,该函数库提供了安全认证所需函数,下载地址是(ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/ ),版本1.5.21。

  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目前还不支持这个功能。 

  每一种软件的认证方法是不一样的,编译sasl库的时候和配置sendmail略有不同。我就大家最常见的Outlook Express 5.0的设置方法介绍如下。

二、安装sasl库

  1.解压cyrus-sasl-1.5.21.tar.gz到你选定的目录

  2.cd cyrus-sasl-1.5.21

  3 ./configure --enable-login --with-pwcheck

  Outlook Expresss使用LOGIN的认证方法,sasl库缺省并不支持这种方式,所以要在生成配置文件时特别加入,另外,Outlook的口令验证方式也不是缺省的方式,所以也需要加入--with-pwcheck的选项。

  下面就可以编译和安装sasl库了。


make 
make install 

  4.缺省情况下,所有的库函数安装到/usr/local/lib目录下,但sendmail使用的库函数是在目录/usr/lib下的,所以需要做一些调整。


cd /usr/lib 
ln /usr/local/lib/sasl/ ./sasl -s 
cp /usr/local/lib/libsa* . 

  也可以避开这一步,在第3步时候运行configure脚本前,修改其中的缺省路径就可以了。

  打开configure文件找到这一行ac_default_prefix=/usr/local(在文件前几行),改为ac_default_prefix=/usr 就可以了,这样更方便一些。

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

  6.在/usr/lib/sasl目录下建立文件Sendmail.conf,加入如下一行

pwcheck_method:pwcheck 

  这样sasl库函数的安装就完成了。

三、编译和配置sendmail

  1.解压sendmail软件到你希望的目录,进入sendmail-8.10.2目录。

  在devtools/Site/目录下创建config.site.m4文件,加入如下两行文字,把SMTP认证功能编译到sendmail中。


APPENDDEF(`confENVDEF, `-DSASL) 
APPENDDEF(`conf_sendmail_LIBS, `-lsasl) 

  2.回到sendmail-8.10.2目录,再进入sendmail目录,开始编译sendmail。

  ./Build -c(如果不是第一次编译,需要加入-c选项,清除以前的配置)编译成功后,运行./Build install安装软件。

  3.下一步需要改写Sendmail的配置文件。回到上一级目录,再进入cf/cf目录,找到合适的.mc文件(具体做法

  参见其他文章,这些不在本文讨论范围中)。按照你的要求适当修改,加入如下几行:


TRUST_AUTH_MECH(`LOGIN PLAIN DIGEST-MD5) 
define(`confAUTH_MECHANISMS, `LOGIN PLAIN DIGEST-MD5) 
dnl define(`confDEF_AUTH_INFO, `/etc/mail/auth/auth-info) 
FEATURE(`no_default_msa) 
DAEMON_OPTIONS(`Port=25, Name=MSA, M=Ea) 

  说明:"TRUST_AUTH_MECH"的作用是使sendmail不管access文件中如何设置,都能relay那些通过LOGIN,PLAIN或DIGEST-MD5方式验证的邮件。

  "confAUTH_MECHANISMS"的作用是确定系统的认证方式。

  "confDEF_AUTH_INFO"的作用是当你的计算机作为客户机时,向另外一台有smtp认证功能的主机进行认证,用户和密码存放在auth-info文件中,在这个例子中并不需要这个功能,所以注释掉了。

  4.编译生成/etc/mail/sendmail.cf文件

m4 xxxx.mc >/etc/mail/sendmail.cf

  不过记住一定要备份旧的sendmail.cf文件,否则就可能麻烦了。

  5.现在基本上可以了,启动sendmail让我们来测试一下吧

sendmail -bd -q20m 

  运行下面命令


telnet localhost 25 
ehlo localhost 

  注意有没有以下的信息出现.


250-xxxxxxxx 
250-xxxxxxx 
250-AUTH LOGIN PLAIN DIGEST-MD5 
250-xxxxxx 


 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:Linux组网入门(3):E-Mail服务器   下一篇:Linux组网入门(5):DNS服务器

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章