Автор Тема: [РЕШЕНО] postffix+dovecot с авторизацией в sambaAD //опечатка  (Прочитано 3565 раз)

Оффлайн ApB

  • Завсегдатай
  • *
  • Сообщений: 412
Приветствую.
Настройки производились в соответствии с https://www.altlinux.org/ActiveDirectory/PostfixDovecot
До этапа отладки IMAP ошибок не выявлено, однако:
openssl s_client -crlf -connect mail.titan.zn:993
tag login user.name@titan.zn passWd
tag NO [AUTHENTICATIONFAILED] Authentication failed.

В journalctl -xe :

dovecot[1331]: auth: Debug: Loading modules from directory: /usr/lib64/dovecot/modules/auth
dovecot[1331]: auth: Debug: Module loaded: /usr/lib64/dovecot/modules/auth/lib20_auth_var_expand_crypt.so
dovecot[1331]: auth: Debug: Read auth token secret from /var/run/dovecot/auth-token-secret.dat
dovecot[1331]: auth: Debug: auth client connected (pid=19256)
dovecot[1331]: auth: Debug: client in: AUTH        1        PLAIN        service=imap        secured=tls        session=3HZLBt6fzKAKAAAE        lip=10.0.0.4        rip=10.0.0.4        lport=993        rport=41164        ssl_cipher=ECDHE-RSA
dovecot[1331]: auth: Debug: policy(user.name@titan.zn,10.0.0.4,<3HZLBt6fzKAKAAAE>): Policy check action is continue
dovecot[1331]: auth: Debug: ldap(user.name@titan.zn,10.0.0.4,<3HZLBt6fzKAKAAAE>): bind search: base=cn=Users,dc=titan.zn,dc=zn filter=(&(objectClass=user)(|(mail=user.name@titan.zn)(sAMAccountName=user.name@titan.zn)))
dovecot[1331]: auth: ldap(user.name@titan.zn,10.0.0.4,<3HZLBt6fzKAKAAAE>): unknown user
dovecot[1331]: auth: Debug: client passdb out: FAIL        1        user=user.name@titan.zn
dovecot[1331]: imap-login: Disconnected (auth failed, 1 attempts in 4 secs): user=<user.name@titan.zn>, method=PLAIN, rip=10.0.0.4, lip=10.0.0.4, TLS, session=<3HZLBt6fzKAKAAAE>

При этом, авторизация пользователем на linux-клиенте проходит.

А попытка подключения почтового клиента оканчивается сообщением о неправильном имени пользователя или пароля

dovecot[1331]: auth: Debug: auth client connected (pid=19489)
dovecot[1331]: auth: Debug: client in: AUTH        1        PLAIN        service=imap        secured=tls        session=xRGZp96fIAQKAAIb        lip=10.0.0.4        rip=10.0.2.27        lport=993        rport=1056        local_name=mail.titan.zn
dovecot[1331]: auth: Debug: client passdb out: CONT        1
dovecot[1331]: auth: Debug: client in: CONT<hidden>
dovecot[1331]: auth: Debug: policy(user.name@titan.zn,10.0.2.27,<xRGZp96fIAQKAAIb>): Policy check action is continue
dovecot[1331]: auth: Debug: ldap(user.name@titan.zn,10.0.2.27,<xRGZp96fIAQKAAIb>): bind search: base=cn=Users,dc=titan.zn,dc=zn filter=(&(objectClass=user)(|(mail=user.name@titan.zn)(sAMAccountName=user.name@titan.zn)))
dovecot[1331]: auth: ldap(user.name@titan.zn,10.0.2.27,<xRGZp96fIAQKAAIb>): unknown user
dovecot[1331]: auth: Debug: client passdb out: FAIL        1        user=user.name@titan.zn
dovecot[1331]: auth: Debug: client in: AUTH        2        PLAIN        service=imap        secured=tls        session=xRGZp96fIAQKAAIb        lip=10.0.0.4        rip=10.0.2.27        lport=993        rport=1056        local_name=mail.titan.zn
dovecot[1331]: auth: Debug: policy(user.name@titan.zn,10.0.2.27,<xRGZp96fIAQKAAIb>): Policy check action is continue
dovecot[1331]: auth: Debug: ldap(user.name@titan.zn,10.0.2.27,<xRGZp96fIAQKAAIb>): bind search: base=cn=Users,dc=titan.zn,dc=zn filter=(&(objectClass=user)(|(mail=user.name@titan.zn)(sAMAccountName=user.name@titan.zn)))
dovecot[1331]: auth: ldap(user.name@titan.zn,10.0.2.27,<xRGZp96fIAQKAAIb>): unknown user
dovecot[1331]: auth: Debug: client passdb out: FAIL        2        user=user.name@titan.zn
dovecot[1331]: imap-login: Disconnected (auth failed, 2 attempts in 4 secs): user=<user.name@titan.zn>, method=PLAIN, rip=10.0.2.27, lip=10.0.0.4, TLS, session=<xRGZp96fIAQKAAIb>

Фактически ругань на то, что dovecot не может получить пароль пользователя, но

cat dovecot-ldap.conf.ext
hosts            = titan.zn:3268
ldap_version     = 3
auth_bind        = yes
dn               = cn=vmail,cn=Users,dc=titan,dc=zn
dnpass           = superPass
base             = cn=Users,dc=titan.zn,dc=zn
scope            = subtree
deref            = never

user_filter = (&(objectClass=user)(|(mail=%Lu)(sAMAccountName=%Lu)))
user_attrs  = =uid=8,gid=12,mail=user
pass_filter = (&(objectClass=user)(|(mail=%Lu)(sAMAccountName=%Lu)))
pass_attrs = mail=user

И порт на серваке открыт

Вывод doveconf -n

doveconf -n
# 2.3.5 (513208660): /etc/dovecot/dovecot.conf
# OS: Linux 4.9.214-std-def-alt0.M80P.1 x86_64 ALT 8.2 Server ext4
# Hostname: mail.titan.zn
auth_debug = yes
auth_verbose = yes
first_valid_gid = 5
first_valid_uid = 5
mail_debug = yes
mail_gid = mail
mail_location = maildir:/var/mail/%d/%n:UTF-8:INBOX=/var/mail/%d/%n/Inbox
mail_uid = mail
mbox_write_locks = fcntl
namespace inbox {
  inbox = yes
  location =
  mailbox Drafts {
    auto = subscribe
    special_use = \Drafts
  }
  mailbox Junk {
    auto = subscribe
    special_use = \Junk
  }
  mailbox Sent {
    auto = subscribe
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Trash {
    auto = subscribe
    special_use = \Trash
  }
  prefix =
}
passdb {
  args = /etc/dovecot/dovecot-ldap.conf.ext
  driver = ldap
}
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0600
    user = postfix
  }
}
service imap-login {
  inet_listener imap {
    port = 0
  }
}
service pop3-login {
  inet_listener pop3 {
    port = 0
  }
  inet_listener pop3s {
    port = 0
  }
}
ssl = required
ssl_cert = </var/lib/ssl/certs/dovecot.pem
ssl_key = # hidden, use -P to show it
userdb {
  args = /etc/dovecot/dovecot-ldap.conf.ext
  driver = ldap
}
protocol lda {
  hostname = titan.zn
  postmaster_address = postmaster@titan.zn
}

Ума не приложу, где искать ещё проблему ... :-/
« Последнее редактирование: 04.03.2020 21:22:17 от ApB »

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 955
    • Домашняя страница
    • Email
Re: postffix+dovecot с авторизацией в sambaAD
« Ответ #1 : 03.03.2020 06:52:14 »
В Unknown user в LDAP.
Андрей Черепанов (cas@)

Оффлайн ApB

  • Завсегдатай
  • *
  • Сообщений: 412
Re: postffix+dovecot с авторизацией в sambaAD
« Ответ #2 : 04.03.2020 01:34:44 »
Что-то пока не могу понять, при чём тут ошибка обращения к ldap

Прошу поправить меня в отношении неправильности обсуждений:

dovecot при запуске лезет в /etc/dovecot.conf

Далее, опираясь на строку
!include conf.d/*.conf
переходим к 10-auth.conf, в котором интересуют единственные строки:

auth_mechanisms = plain
!include auth-ldap.conf.ext

Далее открываем auth-ldap.conf.ext

passdb {
  driver = ldap
  args = /etc/dovecot/dovecot-ldap.conf.ext
}

userdb {
  driver = ldap
  args = /etc/dovecot/dovecot-ldap.conf.ext
}

тут содержимое указывает на параметры подключения к ldap (в моем случае АД)
hosts            = titan.zn:3268
ldap_version     = 3
auth_bind        = yes
dn               = cn=vmail,cn=Users,dc=titan,dc=zn
dnpass           = megaPass
base             = cn=Users,dc=titan.zn,dc=zn
scope            = subtree
deref            = never

user_filter = (&(objectClass=user)(|(mail=%Lu)(sAMAccountName=%Lu)))
user_attrs  = uid=8,gid=12,mail=user
pass_filter = (&(objectClass=user)(|(mail=%Lu)(sAMAccountName=%Lu)))
pass_attrs = mail=user

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

Проверял отклики ldap через запрос со стороны почтового (хотя тут это не важно) хоста:

ldapsearch -x -h titan.zn:3268 -b "cn=Users,dc=titan,dc=zn" -D "vmail@titan.zn" -W "(mail=*)"
И как результат, система вывалила мне в ответ перечень всех учёток, что содержат почтовые адреса.

Таим образом, я правильно понимаю, что проблема в фильтрах?

ldapsearch -x -h titan.zn:3268 -b "cn=Users,dc=titan,dc=zn" -D "vmail@titan.zn" -W "(&(objectClass=user)(|(mail=*)(sAMAccountName=*)))"
И я получаю перечень пользователей.

Таким образом, получается, что единственное что остается - это ... параметры подключения к ldap? Но и тут нет, ибо я ихже использовал в ldapsearch :-(

А при подстановке в запрос конкретной учётной записи или адреса электронной почты - получаю только одну искомую учётку

Оффлайн ApB

  • Завсегдатай
  • *
  • Сообщений: 412
Re: postffix+dovecot с авторизацией в sambaAD
« Ответ #3 : 04.03.2020 21:21:24 »
И да, ... в конфиге просмотрел я "лишние" символы ... гррр ... строка:
base             = cn=Users,dc=titan.zn,dc=zn
должна выглядеть как

base             = cn=Users,dc=titan,dc=zn
спасибо Гн. Skull (=
« Последнее редактирование: 04.03.2020 21:23:23 от ApB »