| 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 |