courier-authlib: неверное имя пользователя входит в поисковый запрос
Я пытаюсь настроить аутентификацию SMTP с помощью курьера, MySQL на постфикс.
Мои пароли в моей базе данных зашифрованы.
Когда я пытаюсь подключиться, я получаю ошибку аутентификации
r2d2 ~ # telnet mail.server.com 25
Trying 45.33.27.121...
Connected to mail.server.com.
Escape character is '^]'.
220 r2d2.server.com ESMTP Postfix
HELO server.com
250 r2d2.server.com
AUTH LOGIN
334 VXNrcm5hbWU6
dXNlci5jb20=
334 UGFyc3dvcmQ6
Qg=!
535 5.7.8 Error: authentication failed: authentication failure
когда я просматриваю свои журналы, я вижу неправильное имя пользователя, пытающееся пройти аутентификацию
r2d2 postfix/smtpd[25275]: sql plugin Parse the username user.com
имя пользователя, входящее в базу данных, должно быть
user@server.com
Это не проблема кодирования:
# perl -MMIME::Base64 -e 'print encode_base64("user@server.com");'
dXNlci5jb20=
почему-то сбрасывает виртуальный домен
Конфигурационный файл /etc/courier/authlib/authmysqlrc:
MYSQL_SERVER localhost
MYSQL_USERNAME myuser
MYSQL_PASSWORD mypass
MYSQL_PORT 3306
MYSQL_OPT 0
MYSQL_DATABASE mail
MYSQL_USER_TABLE mailbox
MYSQL_CRYPT_PWFIELD password
MYSQL_UID_FIELD 5000
MYSQL_GID_FIELD 5000
MYSQL_LOGIN_FIELD username
MYSQL_HOME_FIELD '/var/vmail/'
MYSQL_NAME_FIELD name
MYSQL_MAILDIR_FIELD maildir
MYSQL_WHERE_CLAUSE active='1'
Я проверил SQL, оператор работает, когда применяется вручную к MySQL Cli. В журнале запросов MySQL показано неверное имя пользователя. Ошибка в логах точная.
Каким-то образом% u получает неверные данные.
smtp.conf
pwcheck_method: authdaemond
mech_list: LOGIN PLAIN CRAM-MD5 DIGEST-MD5
sql_select: dummy
authdaemond_path: /var/lib/courier/authdaemon/socket
log_level: 2
sasl_pwcheck_method: saslauthd
sasl_auxprop_plugin: mysql
password_format: plain
sql_engine: mysql
sql_hostnames: localhost
sql_database: db
sql_user: use
sql_passwd: pass
sql_select: SELECT password FROM mailbox WHERE username='%u' AND active='1'
Как мне заставить курьера не отбрасывать входящий виртуальный домен от имени пользователя, для запроса в mysql?
ОБНОВЛЕНИЕ от IRC:
<SkunkyFone> tunage: i can't find it. i know, long long ago, there were separate options for "username" and "domain" in either postfix or courier authlib, and there was an option to make it smoosh things together or drop the domain entirely, and getting them out of sync would do Bad Things.. but i can't find where in my config that is right now.
[07:30:38] <tunage> SkunkyFone: I have seen the exact setting you are talking about, probably about the same time you last looked at it... o.0
1 ответ
Я думаю, что вы можете изменить свой SQL выбор оператора, чтобы быть
sql_select: SELECT password FROM mailbox WHERE username='%u@%r' AND active ='1'
как то должен выбрать и пользователя и домен..