发新话题
打印

[原创]solaris smtp邮

[原创]solaris smtp邮


[这个贴子最后由wzy9681在 2003/01/14 09:03am 编辑]

Solaris8中带SMTP认证的sendmail配置
(在outlook express5~6、outlook 2000及foxmail4.0中测试通过)
使用的软件:
Solaris 8 x86
Sendmail-8.12.6
cyrus-sasl-1.5.28
qpopper4.0.3
gcc-3.0.3-sol8-intel-local
bison-1.75-sol8-intel-local
使用的路径:
#PATH=/usr/sbin:/usr/bin:/usr/ucb:/usr/local/bin:/usr/ccs/bin:;export ATH
使用gcc代替cc
#mv /usr/ucb/cc /usr/ucb/cc.orig
#ln /usr/local/bin/gcc /usr/ucb/cc
一、准备工作 
1.首先要下载sasl库,该函数库提供了安全认证所需函数,下载地址是(ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/ ,版本1.5.28,注意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.28.tar.gz到你选定的目录gunzip cyrus-sasl-1.5.28.tar.gz 
#tar xvf cyrus-sasl-1.5.28.tar
2.安装sasl
#cd cyrus-sasl-1.5.28
#./configure --enable-login --with-pwcheck --disable-gssapi --disable-digest --disable-cram --disable-krb4 --enable-plain
#disable的那些solaris不支持的
#make
#make install
3.说明:
Outlook Expresss使用LOGIN的认证方法,sasl库缺省并不支持这种方式,所以要在生成配置文件时特别加入,另外,Outlook的口令验证方式也不是缺省的方式,所以也需要加入--with-pwcheck的选项。
4.新建目录/var/pwcheck
#mkdir /var/pwcheck
       此目录供pwcheck命令使用,该命令是一个后台程序,负责检查用户的输入口令,
       以root权限使用shadow口令文件。
5.在/usr/lib/sasl目录下建立文件Sendmail.conf,加入如下一行:
pwcheck_method:pwcheck
如果该文件已经存在,直接修改即可(注意:该文件的实际位置是/usr/local/lib/sasl/Sendmail.conf)。
到此,sasl库函数的安装就完成了。
三、编译和配置sendmail
1.解压sendmail软件到你希望的目录,进入sendmail-8.12.6目录。按如下步骤操作:
#gzip sendmail.8.12.6.tar.gz
#tar -xvf sendmail.8.12.6.tar
#cd sendmail-8.12.6
2.进入devtools/Site/目录并创建site.config.m4文件
#cd devtools/Site/
#vi site.config.m4
在该文件中加入如下两行文字,把SMTP认证功能编译到sendmail中:
APPENDDEF(`confENVDEF',`-DSASL')
APPENDDEF(`conf_sendmail_LIBS',`-lsasl')
以下两行来自www.sendmail.org上对sun solaris 8的说明
APPENDDEF(`confMAPDEF', `-DLDAPMAP')
APPENDDEF(`confLIBS', `-lldap')
注意:行末没有空格,逗号前后没有空格。前后引号`'并不相同。
3. (可选)备份/etc/mail/sendmail.cf 和/usr/lib/sendmail的执行文件。
4.  回到sendmail-8.12.3目录,再进入sendmail目录,开始编译sendmail:(如果不是第一次编译,需要加入-c选项,sh Build -c清除以前的配置)
#sh Build 
5.  进入sendmail-8.12.3目录下的 cf/cf/把与操作系统对应的.mc文件复制为sendmail.mc,这里选择solaris
#cd ../cf/cf/
#cp generic-solaris.mc sendmail.mc
6.  编辑sendmail.mc,加入你需要的FEATURE. 
TRUST_AUTH_MECH(`LOGIN LAIN DIGEST-MD5')dnl
define(`confAUTH_MECHANISMS', `LOGIN LAIN DIGEST-MD5')dnl
dnl define(`confDEF_AUTH_INFO', `/etc/mail/auth/auth-info')
FEATURE(`no_default_msa')dnl
DAEMON_OPTIONS(`Port=25, Name=MTA')dnl
DAEMON_OPTIONS(`Port=587,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文件中,在这个例子中并不需要这个功能,所以注释掉了。
7.  生成sendmail.cf文件
#sh Build sendmail.cf
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.6目录,再进入sendmail目录,运行"sh Build install",完成最后的安装,或使用如下命令也可:
#make;make install

11. 现在安装基本结束, 重新启动机器或sendmail后运行下面命令测试sendmail:
#telnet localhost 25
#ehlo localhost
注意有没有以下的信息出现.
250-xxxxxxxx
250-xxxxxxx
250-AUTH LOGIN PLAIN
250-xxxxxx

可能会略有不同,不过你选定的认证方式AUTH LOGIN PLAIN一定要有的。如果显示没有问题,服务器端的配置你已经成功了。
因为上边编译sasl时已经禁止了DIGEST-MD5,虽然在cf中包含DIGEST-MD5,但这里并不出现DIGEST-MD5。(即使在编译sasl时不禁止DIGEST-MD5,它也不会出现,这是我的测试结果)
如果没有出现上面的信息,请运行“sendmail -O loglevel=14 –bs”仔细检查问题所在。
12. 结束服务器端的配置之前,我们还要做一件事,运行pwcheck这个daemon程序,这样才能完成用户认证功能。“pwcheck &”该文件位于sasl的安装目录下,可将其复制到/usr/bin目录下。可以将其写入启动脚本以便自动运行。

四、Outlook Express 5.0 的配置
1.打开你的Outlook Express,修改你的账号属性,在服务器选项,选取我的smtp服务器需要认证选项,然后进入配置。
2.不要选取安全口令认证,sendmail并不支持这个选项。是选取使用pop3同样的口令还是选择另外输入用户和密码,这就看你的爱好和设置了,这不是关键。如果你在服务器上有一个真实账号,不妨选取使用同样的口令,如果没有账号,选用其他的用户口令同样可以。


发表回复】【查看CU论坛原帖】【关闭

 sunmarmot 回复于:2002-12-10 15:01:20
好东东,加~~~~~~~~~~~`油~~~~~~~~!!!


 wzy9681 回复于:2002-12-10 15:05:44
可以好好休息几天了。呵呵


 段誉 回复于:2002-12-10 15:18:35
我倒,这么快就休息了?
我有几个问题请教一下:
1、对于客户端这块,如何修改自己的密码?我以前是让用户telnet到主机上修改密码的--把用户的shell设置成/usr/bin/passwd。
2、第二版里面的DB/Bison干吗用的?在你编译的时候,我没看到有相关的选项啊。
3、你能确认Outlook Express 5(及以上版本)和Foxmail能同时使用吗?

多谢解答!我这里不敢测试,唯有先问明白了,才能进一步的去做,:)


 段誉 回复于:2002-12-10 15:28:28
还没进这屋吗?


 duxf 回复于:2002-12-10 15:31:32
谢谢!


 laixi 回复于:2002-12-10 15:32:20
可以
db是用access来控制relay的,在编译sendmai的时候要用
outlook express 5 (以上)可以用,foxmail没有试过



 sonorous 回复于:2002-12-10 15:55:52
已收藏


 wzy9681 回复于:2002-12-10 15:56:31
对于修改密码我也没有什么好办法。跟你一样用telnet。我下一步想装个webmail。
bison是我以前安装的,是我实现proftpd时装上的,我并不清楚到底在这里有没有用处。但我现在的环境是这个,所以也就列出来了。
db4是我在编译sendmail.cf时发现了很多错误后安装的。至于它到底起什么作用只有机器自己知道,反正我不知道。
目前,我只测试过outlook2000和express5/6,等我测一下foxmail,把结果告诉你。


 jodgen 回复于:2002-12-10 15:57:07
我的系统是solaris 9 for sparc的,上面已经运行了sendmail+qpoper,运行了几个月了,现在垃圾邮件泛滥,是否可以加入sasl,有什么问题要注意?

sasl的文章其他地方好像找不到阿


 wzy9681 回复于:2002-12-10 15:58:26
段公子是哈尔滨的?俺是哈工大毕业的


 wzy9681 回复于:2002-12-10 16:13:24
引用:
下面引用由jodgen在 2002/12/10 03:57pm 发表的内容:
我的系统是solaris 9 for sparc的,上面已经运行了sendmail+qpoper,运行了几个月了,现在垃圾邮件泛滥,是否可以加入sasl,有什么问题要注意?
sasl的文章其他地方好像找不到阿

sasl是必须的。我也是因为这垃圾邮件问题才下决心搞这个sasl的。
编译sasl主要是参数要设正确,编译过程应该不报错才成


 jodgen 回复于:2002-12-10 16:51:56
请问你是如何知道sasl这个东东的,我在其他地方好像没见过哎


 wzy9681 回复于:2002-12-10 17:01:14
引用:
下面引用由jodgen在 2002/12/10 04:51pm 发表的内容:
请问你是如何知道sasl这个东东的,我在其他地方好像没见过哎

我先是知道垃圾邮件这个名词,然后,我又知道smtp认证,从网上搜smtp认证,发现sasl。
不过,你要是问我怎么知道smtp认证,我。。。。。。


 wzy9681 回复于:2002-12-10 17:46:21
顶!


 段誉 回复于:2002-12-10 21:27:40
哦,楼主,我们是同门啊,:)


 jodgen 回复于:2002-12-10 21:46:56
网上最多的smtp认证是qmail


 wzy9681 回复于:2002-12-11 09:07:09
段校友,你好


 段誉 回复于:2002-12-12 17:48:01
校友,你好!
你的foxmail测试的如何了?


 wzy9681 回复于:2002-12-13 08:00:29
foxmail没有问题。但我只测试了一次,不过这也足够了吧


 wzy9681 回复于:2002-12-13 08:00:59
是foxmail4、0


 wzy9681 回复于:2002-12-13 11:47:41
段,你看到了?吗


 段誉 回复于:2002-12-13 19:13:26
多谢校友,我看到了。回头我写个升级的方案,把单位的服务器升级一下,再次感谢,:)


 wzy9681 回复于:2002-12-13 19:55:13
好说。谁叫我们同们呢


 wzy9681 回复于:2002-12-13 20:04:18
我又补充了一点东西,忘了写了,后来在帮ulx在做这个时我才想起来。已经编辑到本主题的第一帖里面了。


 peng 回复于:2002-12-13 21:15:38
   在这一点上,solaris不如redhat省事了,redhat 7.1以上的版本,server方式安装自带sasl,上家编译就可以用了。我以前的基于sendmail的mail server在solaris机器上的,都让我移植到了redhat 7.2上了。:)


 ulx 回复于:2002-12-14 00:23:08
wzy兄,你老人家把什么好东西忘啦今天还真要多谢你,缠了你一下午,谢谢啦,改天贴张美女出来慰劳一下你.


 wzy9681 回复于:2002-12-14 10:00:20
引用:
下面引用由ulx在 2002/12/14 00:23am 发表的内容:
wzy兄,你老人家把什么好东西忘啦今天还真要多谢你,缠了你一下午,谢谢啦,改天贴张美女出来慰劳一下你.

看来你晚上也没闲着


 lzyking 回复于:2003-01-10 18:23:56
用这个方法和软件可以在 solaris7 x86 上成功做吗


 坚持向左 回复于:2003-01-10 20:00:19
收藏先


 无双 回复于:2003-01-10 20:02:39
引用:
下面引用由peng在 2002/12/13 09:15pm 发表的内容:
在这一点上,solaris不如redhat省事了,redhat 7.1以上的版本,server方式安装自带sasl,上家编译就可以用了。我以前的基于sendmail的mail server在solaris机器上的,都让我移植到了redhat 7.2上了。:)

freebsd呢
以前邮件服务器用得很多的




 laoxia 回复于:2003-01-11 01:24:37
贴子迷人,头像勾人


 burningsky 回复于:2003-04-08 09:56:01
我照楼主的步骤做:
1,下载cyrus-sasl-1.5.28.tar.gz
2,解包,没问题。
3,./configure --enable-login --with-pwcheck
   没问题。
4,make  出现如下错误
make[2]: *** [checkpw.lo] Error 1
make[2]: Leaving directory `/data/cyrus-sasl-1.5.28/lib'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/data/cyrus-sasl-1.5.28'
make: *** [all-recursive-am] Error 2
我硬着头皮没理它,继续。
5,make install 又出现如下错误
make[1]: *** [checkpw.lo] Error 1
make[1]: Leaving directory `/data/cyrus-sasl-1.5.28/lib'
make: *** [install-recursive] Error 1
我又硬着头皮没理它,继续。
6,后面的步骤,包括安装sendmail8.12.8都无问题出现
7,测试sasl,没有起作用。

请问上面的报错信息是什么意思?
Thank You Advance!


 firebird 回复于:2003-04-08 10:47:39
强烈要求楼主吧webmail也集成进去。

LUPA社区系统帐号.转贴文章之用.

TOP