URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 67401
[ Назад ]

Исходное сообщение
"Настройка авторизации courier-imap"

Отправлено SergSW , 06-Июл-06 07:06 
Интересная проблема возникла!
В начале поставил сервер (courier-imap) пока тестировал использовал обычый метод аутентификации, всё работало!!!
Потом перешел на MD5-CRAM всё ок было.
Сейчас пытаюсь свести чтоб и то и то работало, не получается!
Обычная аутентифиация проваливается (Пишет не верный логин), а шифрованый с теми же параметрами работат, какие варианты только не пробовал для POP3AUTH и POP3AUTH_ORIG: 'LOGIN','PLAIN','CRAM-MD5' (все возможные сосетания) - результат один и тотже будто он эти параметры и не смотрит, аналогично для POP3-ssl,IMAP,IMAP-ssl,ESMTP,ESMTP-ssl.
Как лечить???

Содержание

Сообщения в этом обсуждении
"Настройка авторизации courier-imap"
Отправлено Xela , 06-Июл-06 12:10 
POP3AUTH="LOGIN CRAM-MD5"

Где и в каком виде хранятся пароли?


"Настройка авторизации courier-imap"
Отправлено SergSW , 06-Июл-06 12:14 
>POP3AUTH="LOGIN CRAM-MD5"
>
>Где и в каком виде хранятся пароли?


В MySql
В одном поле не шифрованые пароли, в отдельном хеши


"Настройка авторизации courier-imap"
Отправлено Xela , 06-Июл-06 13:56 
>>POP3AUTH="LOGIN CRAM-MD5"
>>
>>Где и в каком виде хранятся пароли?
>
>
>В MySql
>В одном поле не шифрованые пароли, в отдельном хеши

Может у вас не точно указаны вот эти параметры в authmysqlrc(authdaemon)

#MYSQL_CRYPT_PWFIELD    crypt
#MYSQL_CLEAR_PWFIELD     passwd

Или быть может, вы просто забыли рестартануть authdaemon после внесения изменений в конфигурацию?


"Настройка авторизации courier-imap"
Отправлено SergSW , 06-Июл-06 14:03 
>>>POP3AUTH="LOGIN CRAM-MD5"
>>>
>>>Где и в каком виде хранятся пароли?
>>
>>
>>В MySql
>>В одном поле не шифрованые пароли, в отдельном хеши
>
>Может у вас не точно указаны вот эти параметры в authmysqlrc(authdaemon)
>
>#MYSQL_CRYPT_PWFIELD    crypt
>#MYSQL_CLEAR_PWFIELD     passwd


Наврядли, включил кроме этого логирование на MySql SQL скрипты правильно отрабатывают,
более того 1 в 1 выполнял из вручную, мускул правильно возвращает, и хешь и открытый пароль
Пробовал и через MYSQL_SELECT_CAUSE сам этот SELECT написать, тоже самое записи возврщает, но работает только с MD5


"Настройка авторизации courier-imap"
Отправлено SergSW , 06-Июл-06 12:16 
>POP3AUTH="LOGIN CRAM-MD5"
>
>Где и в каком виде хранятся пароли?

Увы но
POP3AUTH="LOGIN CRAM-MD5"
не прокатило!!!


"Настройка авторизации courier-imap"
Отправлено LinaS , 06-Июл-06 13:12 
>>POP3AUTH="LOGIN CRAM-MD5"
>>
>>Где и в каком виде хранятся пароли?
>
>Увы но
>POP3AUTH="LOGIN CRAM-MD5"
>не прокатило!!!

а в логи не ругается как-нибудь?


"Настройка авторизации courier-imap"
Отправлено SergSW , 06-Июл-06 13:19 
>>>POP3AUTH="LOGIN CRAM-MD5"
>>>
>>>Где и в каком виде хранятся пароли?
>>
>>Увы но
>>POP3AUTH="LOGIN CRAM-MD5"
>>не прокатило!!!
>
>а в логи не ругается как-нибудь?


Запустил уже POP3D с параметром DEBUG_LOGIN=2
Проверяю по логам и вот что вижу
Jul  6 15:09:21 mx courierpop3login: LOGIN: DEBUG: ip=[::ffff:192.168.4.202], command=USER
Jul  6 15:09:21 mx courierpop3login: LOGIN: DEBUG: ip=[::ffff:192.168.4.202], command=PASS
Jul  6 15:09:21 mx courierpop3login: LOGIN: DEBUG: ip=[::ffff:192.168.4.202], username=test@domen.ru
Jul  6 15:09:21 mx courierpop3login: LOGIN: DEBUG: ip=[::ffff:192.168.4.202], password=***
Jul  6 15:09:26 mx courierpop3login: LOGIN FAILED, ip=[::ffff:192.168.4.202]


"Настройка авторизации courier-imap"
Отправлено SergSW , 06-Июл-06 13:21 
>>>POP3AUTH="LOGIN CRAM-MD5"
>>>
>>>Где и в каком виде хранятся пароли?
>>
>>Увы но
>>POP3AUTH="LOGIN CRAM-MD5"
>>не прокатило!!!
>
>а в логи не ругается как-нибудь?


В случае с MD5 всё ок (для POP3 таже картина)
Jul  6 15:19:25 mx pop3d-ssl: LOGIN: DEBUG: ip=[::ffff:192.168.4.202], command=AUTH
Jul  6 15:19:25 mx pop3d-ssl: LOGIN, user=test@domain.ru, ip=[::ffff:192.168.4.202]
Jul  6 15:19:25 mx pop3d-ssl: LOGOUT, user=test@domain.ru, ip=[::ffff:192.168.4.202], top=0, retr=0, time=0


"Настройка авторизации courier-imap"
Отправлено SergSW , 06-Июл-06 13:41 
>>>>POP3AUTH="LOGIN CRAM-MD5"
>>>>
>>>>Где и в каком виде хранятся пароли?
>>>
>>>Увы но
>>>POP3AUTH="LOGIN CRAM-MD5"
>>>не прокатило!!!
>>
>>а в логи не ругается как-нибудь?
>
>
>В случае с MD5 всё ок (для POP3 таже картина)
>Jul  6 15:19:25 mx pop3d-ssl: LOGIN: DEBUG: ip=[::ffff:192.168.4.202], command=AUTH
>Jul  6 15:19:25 mx pop3d-ssl: LOGIN, user=test@domain.ru, ip=[::ffff:192.168.4.202]
>Jul  6 15:19:25 mx pop3d-ssl: LOGOUT, user=test@domain.ru, ip=[::ffff:192.168.4.202], top=0, retr=0, time=0
>
Кроме всего прочего не слушается DEBUG_LOGIN в модуле authdaemon
Дистрибутив courier-0.47-4sarge5 (OS Debian)


"Настройка авторизации courier-imap"
Отправлено SergSW , 06-Июл-06 16:05 
>>>>>POP3AUTH="LOGIN CRAM-MD5"
>>>>>
>>>>>Где и в каком виде хранятся пароли?
>>>>
>>>>Увы но
>>>>POP3AUTH="LOGIN CRAM-MD5"
>>>>не прокатило!!!
>>>
>>>а в логи не ругается как-нибудь?
>>
>>
>>В случае с MD5 всё ок (для POP3 таже картина)
>>Jul  6 15:19:25 mx pop3d-ssl: LOGIN: DEBUG: ip=[::ffff:192.168.4.202], command=AUTH
>>Jul  6 15:19:25 mx pop3d-ssl: LOGIN, user=test@domain.ru, ip=[::ffff:192.168.4.202]
>>Jul  6 15:19:25 mx pop3d-ssl: LOGOUT, user=test@domain.ru, ip=[::ffff:192.168.4.202], top=0, retr=0, time=0
>>
>Кроме всего прочего не слушается DEBUG_LOGIN в модуле authdaemon
>Дистрибутив courier-0.47-4sarge5 (OS Debian)


Вчём трабл сам по себе нашел!!!
Оказывается он(authmysql) при любом методе аутентификации брал шифрованый хеш!!!
и его сравнивал с открытым паролем!!!
Но повторюсь в настройках модуля прописаны коректно, почему так происходит понять не могу!!!
Как лечить тоже!!!
Вопрос остаётся открытым!!!


"Настройка авторизации courier-imap"
Отправлено SergSW , 07-Июл-06 08:56 
>>>>>>POP3AUTH="LOGIN CRAM-MD5"
>>>>>>
>>>>>>Где и в каком виде хранятся пароли?
>>>>>
>>>>>Увы но
>>>>>POP3AUTH="LOGIN CRAM-MD5"
>>>>>не прокатило!!!
>>>>
>>>>а в логи не ругается как-нибудь?
>>>
>>>
>>>В случае с MD5 всё ок (для POP3 таже картина)
>>>Jul  6 15:19:25 mx pop3d-ssl: LOGIN: DEBUG: ip=[::ffff:192.168.4.202], command=AUTH
>>>Jul  6 15:19:25 mx pop3d-ssl: LOGIN, user=test@domain.ru, ip=[::ffff:192.168.4.202]
>>>Jul  6 15:19:25 mx pop3d-ssl: LOGOUT, user=test@domain.ru, ip=[::ffff:192.168.4.202], top=0, retr=0, time=0
>>>
>>Кроме всего прочего не слушается DEBUG_LOGIN в модуле authdaemon
>>Дистрибутив courier-0.47-4sarge5 (OS Debian)
>
>
>Вчём трабл сам по себе нашел!!!
>Оказывается он(authmysql) при любом методе аутентификации брал шифрованый хеш!!!
>и его сравнивал с открытым паролем!!!
>Но повторюсь в настройках модуля прописаны коректно, почему так происходит понять не
>могу!!!
>Как лечить тоже!!!
>Вопрос остаётся открытым!!!

Обновил до версии 0.53.2
Покрайней мерез стал писать логи аутентификации
вот что эта зараза выдаёт!!!
Jul  7 10:49:42 mx authdaemond: received auth request, service=pop3, authtype=login
Jul  7 10:49:42 mx authdaemond: authmysql: trying this module
Jul  7 10:49:42 mx authdaemond: SQL query: SELECT login, crypt, clear, uid, gid, home, maildir, quota, name, auxoptions FROM user WHERE login = "test@domain.ru"
Jul  7 10:49:42 mx authdaemond: supplied password '****' does not match encrypted password '378b243e220ca493'
Jul  7 10:49:42 mx authdaemond: authmysql: REJECT - try next module
Jul  7 10:49:42 mx authdaemond: FAIL, all modules rejected
Подскажите!!!
Почему он с зашифрованным паролем сравнивает!!!???
Может подскажет кто??? Может какие мысли есть!!!???


"Настройка авторизации courier-imap"
Отправлено Silent , 07-Июл-06 11:35 
>>>>>>>POP3AUTH="LOGIN CRAM-MD5"
>>>>>>>
>>>>>>>Где и в каком виде хранятся пароли?
>>>>>>
>>>>>>Увы но
>>>>>>POP3AUTH="LOGIN CRAM-MD5"
>>>>>>не прокатило!!!
>>>>>
>>>>>а в логи не ругается как-нибудь?
>>>>
>>>>
>>>>В случае с MD5 всё ок (для POP3 таже картина)
>>>>Jul  6 15:19:25 mx pop3d-ssl: LOGIN: DEBUG: ip=[::ffff:192.168.4.202], command=AUTH
>>>>Jul  6 15:19:25 mx pop3d-ssl: LOGIN, user=test@domain.ru, ip=[::ffff:192.168.4.202]
>>>>Jul  6 15:19:25 mx pop3d-ssl: LOGOUT, user=test@domain.ru, ip=[::ffff:192.168.4.202], top=0, retr=0, time=0
>>>>
>>>Кроме всего прочего не слушается DEBUG_LOGIN в модуле authdaemon
>>>Дистрибутив courier-0.47-4sarge5 (OS Debian)
>>
>>
>>Вчём трабл сам по себе нашел!!!
>>Оказывается он(authmysql) при любом методе аутентификации брал шифрованый хеш!!!
>>и его сравнивал с открытым паролем!!!
>>Но повторюсь в настройках модуля прописаны коректно, почему так происходит понять не
>>могу!!!
>>Как лечить тоже!!!
>>Вопрос остаётся открытым!!!
>
>Обновил до версии 0.53.2
>Покрайней мерез стал писать логи аутентификации
>вот что эта зараза выдаёт!!!
>Jul  7 10:49:42 mx authdaemond: received auth request, service=pop3, authtype=login
>Jul  7 10:49:42 mx authdaemond: authmysql: trying this module
>Jul  7 10:49:42 mx authdaemond: SQL query: SELECT login, crypt, clear,
>uid, gid, home, maildir, quota, name, auxoptions FROM user WHERE login
>= "test@domain.ru"
>Jul  7 10:49:42 mx authdaemond: supplied password '****' does not match
>encrypted password '378b243e220ca493'
>Jul  7 10:49:42 mx authdaemond: authmysql: REJECT - try next module
>
>Jul  7 10:49:42 mx authdaemond: FAIL, all modules rejected
>Подскажите!!!
>Почему он с зашифрованным паролем сравнивает!!!???
>Может подскажет кто??? Может какие мысли есть!!!???

А что Вам мешает заглянуть в исходники courier-authlib-0.58?
Cмотрим файл authmysql.c, строка 65. Подправить ее под себя так тяжело?

diff -u authmysql.c.orig authmysql.c
--- authmysql.c.orig    Fri Jul  7 11:27:57 2006
+++ authmysql.c Fri Jul  7 11:34:01 2006
@@ -58,11 +58,14 @@
        {
                if (authcheckpassword(pass,authinfo->cryptpw))
                {
-                       errno=EPERM;
-                       return (-1);    /* User/Password not found. */
+                       if (!authinfo->clearpw) {
+                               errno=EPERM;
+                               return (-1);    /* User/Password not found. */
+                       }
                }
        }
-       else if (authinfo->clearpw)
+
+       if (authinfo->clearpw)
        {
                if (strcmp(pass, authinfo->clearpw))
                {


PS. Должно сработать, сам не проверял. ;-)))


"Настройка авторизации courier-imap"
Отправлено SergSW , 07-Июл-06 12:07 
>А что Вам мешает заглянуть в исходники courier-authlib-0.58?
>Cмотрим файл authmysql.c, строка 65. Подправить ее под себя так тяжело?
>
>diff -u authmysql.c.orig authmysql.c
>--- authmysql.c.orig    Fri Jul  7 11:27:57 2006
>+++ authmysql.c Fri Jul  7 11:34:01 2006
>@@ -58,11 +58,14 @@
>        {
>                if (authcheckpassword(pass,authinfo->cryptpw))
>            
>    {
>-            
>          
>errno=EPERM;
>-            
>          
>return (-1);    /* User/Password not found. */
>+                       if (!authinfo->clearpw) {
>+            
>          
>        errno=EPERM;
>+            
>          
>        return (-1);  
>  /* User/Password not found. */
>+            
>          
>}
>            
>    }
>        }
>-       else if (authinfo->clearpw)
>+
>+       if (authinfo->clearpw)
>        {
>                if (strcmp(pass, authinfo->clearpw))
>            
>    {
>
>
>PS. Должно сработать, сам не проверял. ;-)))

Чесно говоря решение не из изящьных!!!
Спасибо что натолкнули на мысль порыться в исходникак... многое прояснило!!!
Я то думал что они смотрят сверяют пасы в зависимости от типа аутентификации... окакзалось не так!!! ;-(((

Оказалось проще не пересобирать библиотеку а просто в конфиге убрать параметр
MYSQL_CRYPT_PWFIELD и во всех SELECT-ах поле crypt поменять на пустую строку.

Всем спасибо!!!


"Настройка авторизации courier-imap"
Отправлено Silent , 07-Июл-06 13:41 
Насколько я понял по этим строкам исходника, если используется авторизация по хешу, то не используется авторизация по паролю. С патчем должно работать в обоих случаях, ИМХО нужно тестить. Удачи!  


"Настройка авторизации courier-imap"
Отправлено SergSW , 07-Июл-06 13:50 
>Насколько я понял по этим строкам исходника, если используется авторизация по хешу,
>то не используется авторизация по паролю. С патчем должно работать в
>обоих случаях, ИМХО нужно тестить. Удачи!

А теперь фишка если закоментарить MYSQL_CRYPT_PWFIELD и во всех SELECT-ах поле crypt поменять на пустую строку.
То все методы авторизации начинают работать...
Т.Е. если он не находит хеша, то он его в открытом виде берёт из базы и генерит хешь на лету и таким макаром всё работает...


"Настройка авторизации courier-imap"
Отправлено Silent , 07-Июл-06 14:00 
>>Насколько я понял по этим строкам исходника, если используется авторизация по хешу,
>>то не используется авторизация по паролю. С патчем должно работать в
>>обоих случаях, ИМХО нужно тестить. Удачи!
>
>А теперь фишка если закоментарить MYSQL_CRYPT_PWFIELD и во всех SELECT-ах поле crypt
>поменять на пустую строку.
>То все методы авторизации начинают работать...
>Т.Е. если он не находит хеша, то он его в открытом виде
>берёт из базы и генерит хешь на лету и таким макаром
>всё работает...

Так задачу которую Вы решали, подразумевала использование как хеша в базе так и пароля. Или я не прав?


"Настройка авторизации courier-imap"
Отправлено SergSW , 07-Июл-06 14:04 
>>>Насколько я понял по этим строкам исходника, если используется авторизация по хешу,
>>>то не используется авторизация по паролю. С патчем должно работать в
>>>обоих случаях, ИМХО нужно тестить. Удачи!
>>
>>А теперь фишка если закоментарить MYSQL_CRYPT_PWFIELD и во всех SELECT-ах поле crypt
>>поменять на пустую строку.
>>То все методы авторизации начинают работать...
>>Т.Е. если он не находит хеша, то он его в открытом виде
>>берёт из базы и генерит хешь на лету и таким макаром
>>всё работает...
>
>Так задачу которую Вы решали, подразумевала использование как хеша в базе так
>и пароля. Или я не прав?


На самом деле мне надо было заставить работать почтовик и с открытым паролем и с хешем, не обязательно в базе при этом хранить хешь, т.к. для авторизации с открытым паролем и так необходим открытый пароль.