[exim-conf] баг с smtp auth ?

Dmitry A.Deineka axl на itl.ua
Вт Фев 27 13:33:58 EET 2007


Таки баг.

Разбираюсь с утренним попаданием в RBL:

exim -bh 84.96.74.32
220 iTL.UA ESMTP Server Ready.
ehlo noc.mediationtelecom.net
 >>> verifying EHLO/HELO argument "noc.mediationtelecom.net"
 >>> matched host name
 >>> host in pipelining_advertise_hosts? yes (matched "*")
 >>> host in auth_advertise_hosts? yes (matched "*")
 >>> host in tls_advertise_hosts? yes (matched "*")
250-mail.itl.ua Hello noc.mediationtelecom.net [84.96.74.32]
250-SIZE 52428800
250-8BITMIME
250-ETRN
250-PIPELINING
250-AUTH PLAIN LOGIN
250-STARTTLS
250 HELP
auth login
 >>> using ACL "acl_check_auth"
 >>> processing "warn"
 >>> check set acl_c10 =
 >>> warn: condition test succeeded
 >>> processing "deny"
 >>> check condition = ${if eq{$acl_c10}{}{no}{yes}}
 >>>                 = no
 >>> deny: condition test failed
 >>> processing "accept"
 >>> accept: condition test succeeded
334 VXNlcm5hbWU6
L3dlYm1hc3Rlcg==
334 UGFzc3dvcmQ6

 >>> srv_auth_login authenticator:
 >>>   $auth1 = /webmaster
 >>>   $auth2 =
 >>>   $1 = /webmaster
 >>>   $2 =
 >>> expanded string: 1
235 Authentication succeeded

В configure все прозрачно:
         srv_auth_login:
                 driver                  = plaintext
                 public_name             = LOGIN
                 server_prompts          = Username:: : Password::
                         server_condition        = 
${perl{imap_login}{217.12.192.20}{143}{$auth1}{$auth2}}
                 server_set_id           = $auth1


Баг в exim.pl или Mail::IMAPClient. Я не знаток перла ну совсем. Поэтому 
делаем кривой тестовый прогон:

#!/usr/local/bin/perl
     use Mail::IMAPClient;
     #my($host, $port, $account, $password) = @_;
     $host='217.12.192.20';
     $port='143';
     $account='/webmaster';
     $password='';

     if ($imap = Mail::IMAPClient->new(
         Server          => $host,
         Port            => $port,
         User            => $account,
         Password        => $password
     )) {
         $imap->logout();
         print 'Success\n';
     } else {
         print 'Fail\n';
     }

mail# perl test.pl
Success\nmail#


Т.е. получается, что если не указан пароль, то авторизация через IMAP 
будет всегда успешной, несмотря на то, что IMAP уверенно отвечает, что 
недостаточно параметров для авторизации:

A01 LOGIN /webmaster
A01 NO Error in IMAP command received by server.

Но Mail::IMAPClient успешно не возвращает ошибку. Для справки - 
установлен p5-Mail-IMAPClient-2.2.9 Perl5 module to talk to a IMAP4rev1 
(RFC2060) server.



Пошел выносить себя из RBL...






Victor Ustugov пишет:
>>
>> Вопрос - а из-за чего после 535 Incorrect authentication data успешно
>> проходит дальнейшая сессия ?
> 
> считается, что аутентификации вообще не было
> 
>> По-моему, это не совсем верное поведение.
> 
> если 217.12.192.20 согласен рилеить входящую почту домена itl.ua без
> аутентификации, то exim ведет себя абсолютно корректно
> 
----------- следущая часть -----------
A non-text attachment was scrubbed...
Name: axl.vcf
Type: text/x-vcard
Size: 265 bytes
Desc: отсутствует
URL: <http://mta.org.ua/pipermail/exim-conf/attachments/20070227/999c3c8e/attachment.vcf>


Подробная информация о списке рассылки exim-conf