Dovecot SASL - CRAM-MD5
Добавлено: 2008-07-08 22:25:57
Всем привет.
Я пытаюсь сделать SMTP аутентификацию через Dovecot SASL.
Клиенты будут использовать CRAM-MD5 и DIGEST-MD5 шифрование.
Для тестов использую swaks.
Юзеры хранятся в LDAP.
Насколько я понимкаю CRAM и DIGEST MD5 требуют чтобы пароли хранились не хешированные - ну чтож прекрасно.
В моей схеме юзеры аутентифицируются следующим образом:
login = user@domain
То есть проверятся что приехавший login = полю mail в ldap
и что приехавший пароль соответсвует полю userPassword
Берём юзера со след значениями:
mail: admin3@domain.off
userPassword: 123
Делаем следующее:
В логах Exim:
В логах Dovecot:
---
Вот это строчка явно говорит об ошибке:
password(admin3@domain.off,172.16.1.19): Invalid password format for
scheme CRAM-MD5
Только я не понимаю как так получается.
Безумно прошу помощи. Мои идеи уже почти закончились.
Вот мой dovecot-ldap.conf с убранными комментариями:
А вот dovecot -n:
Я пытаюсь сделать SMTP аутентификацию через Dovecot SASL.
Клиенты будут использовать CRAM-MD5 и DIGEST-MD5 шифрование.
Для тестов использую swaks.
Юзеры хранятся в LDAP.
Насколько я понимкаю CRAM и DIGEST MD5 требуют чтобы пароли хранились не хешированные - ну чтож прекрасно.
В моей схеме юзеры аутентифицируются следующим образом:
login = user@domain
То есть проверятся что приехавший login = полю mail в ldap
и что приехавший пароль соответсвует полю userPassword
Берём юзера со след значениями:
mail: admin3@domain.off
userPassword: 123
Делаем следующее:
Код: Выделить всё
%swaks -a CRAM-MD5 -au admin3@domain.off -ap 123
To: admin3@domain.off
=== Trying mx.domain.off:25...
=== Connected to mx.domain.off.
<- 220 mx.domain.off ESMTP Exim 4.69 Tue, 08 Jul 2008 19:14:24 +0000
-> EHLO mx.domain.off
<- 250-mx.domain.off Hello mx.domain.off [172.16.1.19]
<- 250-SIZE 13631488
<- 250-PIPELINING
<- 250-AUTH PLAIN LOGIN CRAM-MD5 DIGEST-MD5
<- 250-STARTTLS
<- 250 HELP
-> AUTH CRAM-MD5
<- 334 PDM4ODYwNTQ1MjEzMTA3NDEuMTIxNTU0NDQ2NEBteC5kb21haW4ub2ZmPg==
-> YWRtaW4zQGRvbWFpbi5vZmYgMGJlYzIzOTA5Zjg4OTc3MDdkYTJmZmNmOTEzMDBhMmM=
<** 535 Incorrect authentication data
*** No authentication type succeeded
-> QUIT
<- 221 mx.domain.off closing connection
=== Connection closed with remote host.
В логах Exim:
Код: Выделить всё
SMTP<< AUTH CRAM-MD5
9657 dovecot authentication
9657 AUTH 12 CRAM-MD5 service=smtp secured
rip=172.16.1.19 lip=172.16.1.19 resp=
9657 received: CONT 12
PDM0MTMzMjg1NTUyOTE0MjMuMTIxNTU0NDcwMUBteC5kb21haW4ub2ZmPg==
9657 SMTP>> 334
PDM0MTMzMjg1NTUyOTE0MjMuMTIxNTU0NDcwMUBteC5kb21haW4ub2ZmPg==
9657 received: FAIL 12 user=admin3@domain.off
9657 SMTP>> 535 Incorrect authentication data
9657 auth_cram_md5 authenticator failed for mx.domain.off
[172.16.1.19] I=[172.16.1.19]:26: 535 Incorrect authentication data
(set_id=admin3@domain.off)
9657 SMTP<< QUIT
Код: Выделить всё
Info: auth(default): new auth connection: pid=9713
Info: auth(default): client in: AUTH 11 CRAM-MD5
service=smtp secured rip=172.16.1.19 lip=172.16.1.19 resp=<hidden>
Info: auth(default): client out: CONT 11
PDU5MjUzNjc0Mjg1NDAyNjUuMTIxNTU0NDkyN0BteC5kb21haW4ub2ZmPg==
Info: auth(default): client in: CONT<hidden>
Info: auth(default): ldap(admin3@domain.off,172.16.1.19): pass search:
base=dc=Virtual-Domains,dc=DOMAIN scope=subtree
filter=(&(objectClass=mailUser)(mail=admin3@domain.off))
fields=mail,userPassword
Info: auth(default): ldap(admin3@domain.off,172.16.1.19): result:
mail(user)=admin3@domain.off userPassword(password)=<hidden>
Error: auth(default): password(admin3@domain.off,172.16.1.19): Invalid
password format for scheme CRAM-MD5
Info: auth(default): client out: FAIL 11 user=admin3@domain.off
Вот это строчка явно говорит об ошибке:
password(admin3@domain.off,172.16.1.19): Invalid password format for
scheme CRAM-MD5
Только я не понимаю как так получается.
Безумно прошу помощи. Мои идеи уже почти закончились.
Вот мой dovecot-ldap.conf с убранными комментариями:
Код: Выделить всё
hosts = 127.0.0.1
dn = uid=Dovecot,ou=System-Users,dc=DOMAIN
dnpass = 123
debug_level = 0
ldap_version = 3
base = dc=Virtual-Domains,dc=DOMAIN
deref = never
scope = subtree
user_attrs =
user_filter = (&(objectClass=mailUser)(mail=%u))
pass_attrs = mail=user,userPassword=password
pass_filter = (&(objectClass=mailUser)(mail=%u))
default_pass_scheme = CRAM-MD5
Код: Выделить всё
# 1.1.1: /usr/local/etc/dovecot.conf
base_dir: /var/run/dovecot/
log_path: /var/log/dovecot/dovecot.log
info_log_path: /var/log/dovecot/dovecot.log
protocols: imap imaps pop3 pop3s
ssl_cert_file: /usr/local/etc/certs/cert.crt
ssl_key_file: /usr/local/etc/certs/cert.key
ssl_cipher_list: ALL:!LOW:!SSLv2
login_dir: /var/run/dovecot/login
login_executable(default): /usr/local/libexec/dovecot/imap-login
login_executable(imap): /usr/local/libexec/dovecot/imap-login
login_executable(pop3): /usr/local/libexec/dovecot/pop3-login
login_processes_count: 5
mail_max_userip_connections(default): 10
mail_max_userip_connections(imap): 10
mail_max_userip_connections(pop3): 3
verbose_proctitle: yes
first_valid_gid: 0
mail_privileged_group: mail
mail_uid: dmail
mail_gid: dmail
mail_location: maildir:/var/spool/dovecot/domains/%d/%n/
mail_debug: yes
mail_executable(default): /usr/local/libexec/dovecot/imap
mail_executable(imap): /usr/local/libexec/dovecot/imap
mail_executable(pop3): /usr/local/libexec/dovecot/pop3
mail_plugin_dir(default): /usr/local/lib/dovecot/imap
mail_plugin_dir(imap): /usr/local/lib/dovecot/imap
mail_plugin_dir(pop3): /usr/local/lib/dovecot/pop3
imap_client_workarounds(default): delay-newmail netscape-eoh
tb-extra-mailbox-sep
imap_client_workarounds(imap): delay-newmail netscape-eoh
tb-extra-mailbox-sep
imap_client_workarounds(pop3):
pop3_client_workarounds(default):
pop3_client_workarounds(imap):
pop3_client_workarounds(pop3): outlook-no-nuls oe-ns-eoh
auth default:
mechanisms: plain login cram-md5 digest-md5
user: dmail
username_format: %Lu
debug: yes
passdb:
driver: ldap
args: /usr/local/etc/dovecot-ldap.conf
userdb:
driver: ldap
args: /usr/local/etc/dovecot-ldap.conf
socket:
type: listen
client:
path: /var/run/dovecot/auth-client
mode: 432
user: exim
master:
path: /var/run/dovecot/auth-master
mode: 384
user: dmail