smtp-auth 中对 PLAIN 方式的支持????

发表于:2007-06-08来源:作者:点击数: 标签:
现在我的 服务器 用gadfly做的smtp-auth。目前我使用checkpassword验证密码,支持LOGIN方式的吧。客户端是Outlook时正常使用,客户端是 linux 的ximian时提示说服务器不支持PLAIN方式而无法发送,哪位说说该怎么添加这种支持??? 我现在尝试添加cmd5checkp

现在我的服务器用 gadfly 做的 smtp-auth 。目前我使用 checkpassword 验证密码,支持 LOGIN 方式的吧。客户端是 Outlook 时正常使用,客户端是 linux 的 ximian 时提示说服务器不支持 PLAIN 方式而无法发送,哪位说说该怎么添加这种支持???

我现在尝试添加 cmd5checkpw ,试验中。。。

 gadfly 回复于:2003-06-06 11:19:09
晕,澄清一下,不是我做的,auth qmail-smtpd.c加了我的patch而已。

plain方式?难道用的不是base64编码方式?

用sniffer看看,到底是不是做过编码的auth

 IPphone 回复于:2003-06-06 11:35:47
呵呵,表述错误,不好意思!


???你的意思是看服务器是不是做过编码的auth ?     


我找到这么一段说明:
There are 2 patches available, one by me, supporting all the auth types (LOGIN, PLAIN, CRAM-MD5). You can get it from: http://members.elysium.pl/brush/qmail-smtpd-auth/

There is also older one, by Mrs. Brisby, supporting only LOGIN type, available at:
http://www.nimh.org/ 


gadfly, 这说明那个 qmail-smtpd.c 只支持 LOGIN 方式的了。对不对?

我安装了 cmd5checkpw ,在建立了 /etc/poppasswd 文件并设置好后,在服务器上用 /var/qmail/bin/qmail-popup host /bin/cmd5checkpw pwd 测试到该程序可用。然后我在 smtp-auth 的启动脚本里加入 /bin/cmd5checkpw /bin/true 并重起。可是那个 linux 客户端仍然提示服务器不支持 CRAM-MD5 的错误,郁闷~~~~

 IPphone 回复于:2003-06-06 15:21:27
gadfly , 我监听了一下服务器的 SMTP 通讯,发现下面一些信息:


EHLO user007
250-mydomain.com
250-AUTH=LOGIN
250-AUTH LOGIN
250-PIPELINING
250 8BITMIME
AUTH LOGIN
334 VXNlcm5hbWU6
d2luZHc=
334 UGFzc3dvcmQ6
Nzg3MTMz
235 go ahead
MAIL FROM: 
250 ok
RCPT TO: 
250 ok
DATA


我看不出来你说的东东阿~~我不懂那些的,请不吝赐教阿!谢了先!

 gadfly 回复于:2003-06-06 16:12:40
也许是你的哪个客户端的问题。

这是base64编码的方式。
[quote:4b11976fc2]
AUTH LOGIN 
334 VXNlcm5hbWU6 
d2luZHc= 
334 UGFzc3dvcmQ6 
Nzg3MTMz 
[/quote:4b11976fc2]
像这些都是base64编码后的用户名,密码和提示字符串。

我对auth的传递方式也不是特别清楚,你可以查查esmtp rfc。也许它指的是其它的编码方式?

另外,你把脚本替换回去,用sniffer看看,是如何认证的。

 IPphone 回复于:2003-06-07 14:20:35
另外一个是这样的记录:

220 mydomain.com ESMTP
EHLO user007
250-mydomain.com
250-PIPELINING
250-AUTH LOGIN CRAM-MD5 PLAIN
250 8BITMIME
AUTH LOGIN
334 VXNlcm5hbWU6
d2luZHc=
334 UGFzc3dvcmQ6
Nzg3MTMz
235 ok, go ahead (#2.0.0)
MAIL FROM: 
250 ok
RCPT TO: 
250 ok
DATA

看来也是base64 编码的啊,只是这些都只是我在 Outlook 客户端上的测试数据,不是那个 ximian 客户端的。
后来我在 ximian 的设置里面选择了 NT ,(奇怪的设置,呵呵。ximian是支持好几种方式的)那样就可以正常发送邮件了。我在rfc1869 里面也没有查询到有关 PLAIN 与 LOGIN、CRAM-MD5 的说明,始终没弄明白原理。不过问题既然解决先就这样吧,呵呵。Thanks!

 yayong 回复于:2003-06-09 13:35:10
本质上AUTH PLAIN和AUTH LOGIN是一样的
用户名和口令都是base64编码的明文,只不过协议命令不一样罢了

因此要说他们的区别就必须知道SASL协议了:

SASL协议里面并没有定义AUTH LOGIN,而是定义了与之相同的AUTH PLAIN
但偏偏Oultook自创AUTH LOGIN,谁让MS太NB,因此sasl的一些实现版本里面就有了AUTH LOGIN

原文转自:http://www.ltesting.net