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

Исходное сообщение
"SASL + MySQL в Postfix"

Отправлено Blot , 21-Апр-08 12:54 
Я уже третий день не могу разрешить следующую пробелему. Не проходит авторизация по SMTP в Postfix, с помомщью sasl. Юзеры хранятся в бд mysql.

cyrus-sasl-2.1.20 конфигурировал так:
./configure --prefix=/usr \
--with-mysql=/usr/local/mysql \
--with-openssl=/usr \
--enable-login --enable-plain --enable-digest --enable-cram


в main.cf добавил
smtpd_sasl_auth_enable = yes
smtpd_sasl_application_name = smtpd
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous


файл /usr/lib/sasl2/smtpd.conf
pwcheck_method: auxprop
mech_list: PLAIN LOGIN CRAM-MD5
auxprop_plugin: sql
sql_usessl: yes
sql_engine: mysql
sql_hostnames: localhost
sql_user: postfix
sql_passwd: postfix
sql_database: postfix
sql_select: select password from mailbox where username = '%u@%r'
sql_verbose: true
log_level: 9


при попытки авторизоваться в лог пишет следующее:
Apr 21 12:23:07 vps274 postfix/smtpd[10876]: connect from cpe-24-29-69-137.nycap.res.rr.com[24.29.69.137]
Apr 21 12:23:12 vps274 postfix/smtpd[10876]: warning: cpe-24-29-69-137.nycap.res.rr.com[24.29.69.137]: SASL LOGIN authentication failed: authentication failure
Apr 21 12:23:14 vps274 postfix/smtpd[10876]: lost connection after AUTH from cpe-24-29-69-137.nycap.res.rr.com[24.29.69.137]
Apr 21 12:23:14 vps274 postfix/smtpd[10876]: disconnect from cpe-24-29-69-137.nycap.res.rr.com[24.29.69.137]


Смотрел лог мускула, как выяснилось к БД даже не происходит коннекта! С чем это может быть связано??? Если, кто сталкивался или предполагает в чем может быть проблема - спасибо заранее!)


Содержание

Сообщения в этом обсуждении
"SASL + MySQL в Postfix"
Отправлено geekkoo , 21-Апр-08 13:38 
>[оверквотинг удален]
>smtpd_sasl_application_name = smtpd
>broken_sasl_auth_clients = yes
>smtpd_sasl_security_options = noanonymous
>
>
>файл /usr/lib/sasl2/smtpd.conf
>pwcheck_method: auxprop
>mech_list: PLAIN LOGIN CRAM-MD5
>auxprop_plugin: sql
>sql_usessl: yes

Может пока тестируется система отменить подключение к базе данных в ssl режиме? Тем более какой в этом смысл если sql_hostnames: localhost ?

>[оверквотинг удален]
>Apr 21 12:23:07 vps274 postfix/smtpd[10876]: connect from cpe-24-29-69-137.nycap.res.rr.com[24.29.69.137]
>Apr 21 12:23:12 vps274 postfix/smtpd[10876]: warning: cpe-24-29-69-137.nycap.res.rr.com[24.29.69.137]: SASL LOGIN authentication failed: authentication
>failure
>Apr 21 12:23:14 vps274 postfix/smtpd[10876]: lost connection after AUTH from cpe-24-29-69-137.nycap.res.rr.com[24.29.69.137]
>Apr 21 12:23:14 vps274 postfix/smtpd[10876]: disconnect from cpe-24-29-69-137.nycap.res.rr.com[24.29.69.137]
>
>
>Смотрел лог мускула, как выяснилось к БД даже не происходит коннекта! С
>чем это может быть связано??? Если, кто сталкивался или предполагает в
>чем может быть проблема - спасибо заранее!)


"SASL + MySQL в Postfix"
Отправлено Blot , 21-Апр-08 14:00 
>>файл /usr/lib/sasl2/smtpd.conf
>>pwcheck_method: auxprop
>>mech_list: PLAIN LOGIN CRAM-MD5
>>auxprop_plugin: sql
>>sql_usessl: yes
>
>Может пока тестируется система отменить подключение к базе данных в ssl режиме?
>Тем более какой в этом смысл если sql_hostnames: localhost ?

Да это не столь важно. Сейчас убрал, но результат не изменился( Вообще нету обращения к мускулу и не могу понять причины


"SASL + MySQL в Postfix"
Отправлено stas , 21-Апр-08 14:40 
>[оверквотинг удален]
>>>pwcheck_method: auxprop
>>>mech_list: PLAIN LOGIN CRAM-MD5
>>>auxprop_plugin: sql
>>>sql_usessl: yes
>>
>>Может пока тестируется система отменить подключение к базе данных в ssl режиме?
>>Тем более какой в этом смысл если sql_hostnames: localhost ?
>
>Да это не столь важно. Сейчас убрал, но результат не изменился( Вообще
>нету обращения к мускулу и не могу понять причины

Postfix собран с поддержкой Cyrus SASL?
Покажите postconf -a.


"SASL + MySQL в Postfix"
Отправлено Blot , 21-Апр-08 14:58 
>>>Может пока тестируется система отменить подключение к базе данных в ssl режиме?
>>>Тем более какой в этом смысл если sql_hostnames: localhost ?
>>
>>Да это не столь важно. Сейчас убрал, но результат не изменился( Вообще
>>нету обращения к мускулу и не могу понять причины
>
>Postfix собран с поддержкой Cyrus SASL?
>Покажите postconf -a.

vps274:~# postconf -a
cyrus
dovecot

Сборка постфикса:
make  \
    CCARGS="-DHAS_MYSQL -I/usr/local/mysql/include/mysql \
    -DHAS_PCRE -I/usr/include \
    -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl \
    -DUSE_TLS -I/usr/include" \
    AUXLIBS="-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm \
    -L/usr/lib -lpcre \
    -L/usr/lib/sasl2 -lsasl2 \
    -L/usr/lib -lssl -lcrypto"



"SASL + MySQL в Postfix"
Отправлено stas , 21-Апр-08 15:04 
>[оверквотинг удален]
>Сборка постфикса:
>make  \
>    CCARGS="-DHAS_MYSQL -I/usr/local/mysql/include/mysql \
> -DHAS_PCRE -I/usr/include \
> -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl \
> -DUSE_TLS -I/usr/include" \
>    AUXLIBS="-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm \
> -L/usr/lib -lpcre \
> -L/usr/lib/sasl2 -lsasl2 \
> -L/usr/lib -lssl -lcrypto"

Попробуйте увеличить информативность логов.
Запустите в master.cf smtpd с ключом -v:

smtp      inet  n       -       n       -       -       smtpd -v

Или использовать любой другой способ отладки. А так очень мало информации.


"SASL + MySQL в Postfix"
Отправлено Blot , 21-Апр-08 15:38 
>Попробуйте увеличить информативность логов.
>Запустите в master.cf smtpd с ключом -v:
>
> smtp      inet  n   -    n   -    -       smtpd -v
>
>Или использовать любой другой способ отладки. А так очень мало информации.

информативность увеличил, но ничего нового из логов не узнал:
.....
Apr 21 15:14:29 vps274 postfix/smtpd[11101]: xsasl_cyrus_server_next: decoded re
sponse: test@mydomen.com
Apr 21 15:14:29 vps274 postfix/smtpd[11101]: xsasl_cyrus_server_auth_response: u
ncoded server challenge: Password:
Apr 21 15:14:29 vps274 postfix/smtpd[11101]: > 148-39.8-67.tampabay.res.rr.com[6
7.8.39.148]: 334 UGFzc3dvcmQ6
Apr 21 15:14:29 vps274 postfix/smtpd[11101]: < 148-39.8-67.tampabay.res.rr.com[6
7.8.39.148]: cWF6eHN3
Apr 21 15:14:29 vps274 postfix/smtpd[11101]: xsasl_cyrus_server_next: decoded re
sponse: 12345
Apr 21 15:14:30 vps274 postfix/smtpd[11101]: warning: 148-39.8-67.tampabay.res.r
r.com[67.8.39.148]: SASL LOGIN authentication failed: authentication failure
Apr 21 15:14:30 vps274 postfix/smtpd[11101]: > 148-39.8-67.tampabay.res.rr.com[6
7.8.39.148]: 535 5.7.8 Error: authentication failed: authentication failure
Apr 21 15:14:30 vps274 postfix/smtpd[11101]: < 148-39.8-67.tampabay.res.rr.com[6
7.8.39.148]: QUIT
.....


"SASL + MySQL в Postfix"
Отправлено stas , 21-Апр-08 15:53 
>[оверквотинг удален]
>7.8.39.148]: cWF6eHN3
>Apr 21 15:14:29 vps274 postfix/smtpd[11101]: xsasl_cyrus_server_next: decoded re
>sponse: 12345
>Apr 21 15:14:30 vps274 postfix/smtpd[11101]: warning: 148-39.8-67.tampabay.res.r
>r.com[67.8.39.148]: SASL LOGIN authentication failed: authentication failure
>Apr 21 15:14:30 vps274 postfix/smtpd[11101]: > 148-39.8-67.tampabay.res.rr.com[6
>7.8.39.148]: 535 5.7.8 Error: authentication failed: authentication failure
>Apr 21 15:14:30 vps274 postfix/smtpd[11101]: < 148-39.8-67.tampabay.res.rr.com[6
>7.8.39.148]: QUIT
>.....

Есть еще способ через параметр debug_peer_list. Там в логи идет очень подробный вывод.
В каком виде хранятся пароли в mysql?
Попробуйте еще протестировать как описано в

Testing SASL authentication in the Postfix SMTP server

To test the server side, connect (for example, with telnet) to the Postfix SMTP server port and you should be able to have a conversation as shown below. Information sent by the client (that is, you) is shown in bold font.
$ telnet server.example.com 25
. . .
220 server.example.com ESMTP Postfix
EHLO client.example.com
250-server.example.com
250-PIPELINING
250-SIZE 10240000
250-ETRN
250-AUTH DIGEST-MD5 PLAIN CRAM-MD5
250 8BITMIME
AUTH PLAIN AHRlc3QAdGVzdHBhc3M=
235 Authentication successful

Instead of AHRlc3QAdGVzdHBhc3M=, specify the base64 encoded form of \0username\0password (the \0 is a null byte). The example above is for a user named `test' with password `testpass'.

In order to generate base64 encoded authentication information you can use one of the following commands:
% printf '\0username\0password' | mmencode
% perl -MMIME::Base64 -e \
    'print encode_base64("\0username\0password");'

The mmencode command is part of the metamail software. MIME::Base64 is available from http://www.cpan.org/.

Caution: when posting logs of the SASL negotiations to public lists, please keep in mind that username/password information is trivial to recover from the base64-encoded form.


"SASL + MySQL в Postfix"
Отправлено Blot , 21-Апр-08 16:45 
>Есть еще способ через параметр debug_peer_list. Там в логи идет очень подробный
>вывод.

А, где этот параметр указывать?

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

Пароли в открытом виде.

>Попробуйте еще протестировать как описано в
>
>Testing SASL authentication in the Postfix SMTP server
>

Да, тоже самое (



"SASL + MySQL в Postfix"
Отправлено stas , 21-Апр-08 16:51 
>[оверквотинг удален]
>>В каком виде хранятся пароли в mysql?
>
>Пароли в открытом виде.
>
>>Попробуйте еще протестировать как описано в
>>
>>Testing SASL authentication in the Postfix SMTP server
>>
>
>Да, тоже самое (

debug_peer_list указывается в main.cf
Прочтите его описание в документации к postfix.