Dovecot + ldap ".....Authenticated user not found......" [SOLVED]

Всем привет!
Пытаюсь настроить довекот на работы с лдапом. Не авторизует юзера. Точнее вроде как авторизует, но почту не доставляет, в логах пишет ошибки. хотя судя по логам лдапа, все нужные атрибуты запрашиваются , пробовал лдапсёрчем под учёткой довекота- всё находит........
Конфиги:

/etc/dovecot/dovecot.conf

base_dir = /var/run/dovecot/
log_path = /var/log/mail/dovecot.log
info_log_path = /var/log/mail/dovecot.log

ssl_disable = no
ssl_cert_file = /etc/dovecot/ssl/xxx.yyy-imap-cert.pem
ssl_key_file = /etc/dovecot/ssl/xxx.yyy-imap-key.pem
ssl_verify_client_cert = no
ssl_parameters_regenerate = 1
ssl_cipher_list = ALL:!LOW:!SSLv2
verbose_ssl = no

login_max_connections = 256
login_greeting =Welcome to XXX.YYY IMAP/POP3 server.
valid_chroot_dirs = /mail/domains
mail_location = maildir:/mail/domains/%d/mailboxes/%u/Maildir

mail_debug = yes
first_valid_uid = 1001
last_valid_uid = 1001
first_valid_gid = 1001
last_valid_gid = 1001

mbox_read_locks = fcntl
mbox_write_locks = dotlock fcntl

protocol imap {
     listen = 10.120.10.202:143
     ssl_listen = 10.120.10.202:993
}

protocol pop3 {
}

protocol lda {
  postmaster_address = 
  hostname = xxx.yyy
}

auth default {
        mechanisms = plain
        passdb ldap {
                args = /etc/dovecot/dovecot-ldap.conf
        }
        userdb ldap {
                args = /etc/dovecot/dovecot-ldap.conf
        }
}

/etc/dovecot/dovecot-ldap.conf

uris = ldaps://ldap.xxx.yyy
dn = cn=dovecot,ou=SysUsers,ou=Main,dc=xxx,dc=yyy
dnpass = XXXXXXXXXXX
ldap_version = 3
base = ou=Users,ou=Main,dc=xxx,dc=yyy
scope = base
auth_bind = yes
user_attrs = homeDirectory=home
user_filter = (&(objectClass=CourierMailAccount)(mail=%u))
pass_attrs = mail=user,userPassword=password
pass_filter = (&(objectClass=CourierMailAccount)(mail=%u))
default_pass_scheme = MD5
user_global_uid = 1001
user_global_gid = 1001

dovecot.log

.......
dovecot: Feb 12 17:13:33 Error: auth(default): ldap(mailtest@xxx.yyy,192.168.1.254): Authenticated user not found
dovecot: Feb 12 17:13:33 Error: auth(default): userdb(mailtest@xxx.yyy,192.168.1.254): user not found from userdb
dovecot: Feb 12 17:13:33 Info: imap-login: Internal login failure: user=<mailtest@xxx.yyy>, method=PLAIN, rip=192.168.1.254, lip=10.120.10.202, TLS
....

Ну если, никто

Ну если, никто не знает что у меня за хрень, то киньте, плз, рабочие конфиги, углавное чтобы одовекот был в связке с лдапом.

попробуй с

попробуй с этими формулами поиграться (взято из раб. конфы squid):
auth_param basic program /usr/libexec/squid/squid_ldap_auth -P -b dc=example,dc=dom -f (uid=%s) -H "ldap://???.???.???.???" -v 3
external_acl_type ldap_group ttl=60 children=1 %LOGIN /usr/libexec/squid/squid_ldap_group -P -b dc=example,dc=dom -f (&(memberUid=%v)(cn=%a)) -H "ldap://???.???.???.???" -v 3
выделены параметры для ldapsearch
%a - группа
%v,%s - имя юзера

Блин, как

Блин, как обычно проблема в руках и глазах.

scope = subtree
This tells Dovecot to search all entries that fall below the base entry. If it were set to "onelevel", Dovecot would search only entries one level below the base entry. If it were set to "base", Dovecot would search only the base entry.

А у мя стояло scope = base, т.е. поиск только в указанном DN

И снова проблемы похожие

Mail находится в отдельном ou.

Ищем руками. Работает:

# ldapsearch -b 'ou=Mail, dc=ph, dc=com' -D 'cn=bind, ou=Users, dc=ph, dc=com' -w XXX -s sub -h mainserv.ph.com '(&(objectClass=qmailUser)(uid=someuser))' uid mailMessageStore
…

# extended LDIF
…
uid: someuser
mailMessageStore: /var/mail/someuser/Maildir/

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1
# pwd
/etc/dovecot
# grep -v '^#' dovecot.conf | sed '/^$/d'
protocols = imap
listen = *
base_dir = /var/run/dovecot/
login_greeting = Dovecot ready.
login_trusted_networks = 192.168.1.0/24
verbose_proctitle = yes
shutdown_clients = yes
doveadm_worker_count = 0
dict {
  #quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
  #expire = sqlite:/etc/dovecot/dovecot-dict-sql.conf.ext
}
!include conf.d/*.conf
# grep -v '^#' dovecot-ldap.conf.ext | sed '/^$/d'
hosts = mainserv.ph.com
dn = cn=bind, ou=Users, dc=ph, dc=com 
dnpass = XXX
debug_level = 255
auth_bind = no
ldap_version = 3
base = ou=Mail, dc=ph, dc=com
scope = subtree
user_attrs = mailMessageStore=home
user_filter = (&(objectClass=qmailUser)(uid=%u))
pass_attrs = uid=user,userPassword=password
pass_filter = (&(objectClass=qmailUser)(uid=%u))
# grep -v '^#' conf.d/auth-ldap.conf.ext | sed '/^$/d'
passdb {
  driver = ldap
  # Path for LDAP configuration file, see example-config/dovecot-ldap.conf.ext
  args = /etc/dovecot/dovecot-ldap.conf.ext
}
userdb {
  driver = ldap
  args = /etc/dovecot/dovecot-ldap.conf.ext
}

Пытаюсь через телнет залогиниться. В базе у меня 2-а совпадающих uid в разных ветках и с разными паролями. Так вот, почему-то dovecot ищет не в 'ou=Mail, dc=ph, dc=com' пароль, а в другом месте:

put_filter: "(&(objectClass=posixAccount)(uid=someuser))"

соответственно, паролем из ou=Mail не аутентифицирует, а тем, что в другой ветке — принимает. Я вообще в удивлении: это баг или мои руки? Использую net-mail/dovecot-2.0.11

Такое впечатление, что dovecot плюёт на subtree и указанный базовый dn.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".