LINUX.ORG.RU
решено ФорумAdmin

Авторизация dovecot с помощью AD


0

1

Есть сервер на центосе 5, который введен в домен, доменные пользователи могут авторизовываться на этом сервере. Там же стоит postfix без smtp-авторизации.
Как сделать чтобы dovecot авторизовывал пользователей через их учетки в AD (а в идеале вообще через ntlm, не спрашивая логин/пароль)?
Перерыл кучу мануалов, так и не получилось настроить без виртуальных ящиков. Еще такой момент, что в центосе довкот собран без нтлм, а пакет с офсайта хочет licurl-devel, которого вообще нет в репозиториях.

1. Скачать с «офсайта» (на самом деле ATrpms репозиторий) .src.rpm
2. Установить его
3. В spec-файле заменить все «libcurl» на «curl»
4. Пересобрать пакет

berrywizard ★★★★★
()
Ответ на: комментарий от berrywizard

Т.к. curl и curl-devel у меня уже стоят, то я пробовал собирать пакет с --nodeps. Результат такой же, как и после замены в spec-файле «libcurl» на «curl»:
configure: error: unrecognized option: --docdir=/usr/share/doc/dovecot-2.0.6
И так он ругается на весь список опций в spec.

uruloke
() автор топика

читаем в примере конфига dovecot:

# Do NTLM authentication using Samba's winbind daemon and ntlm_auth helper.
# <doc/wiki/Authentication/Mechanisms/Winbind.txt>
auth_use_winbind = yes

# Path for Samba's ntlm_auth helper binary.
auth_winbind_helper_path = /usr/bin/ntlm_auth

auth default {
  # Space separated list of wanted authentication mechanisms:
  #   plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi otp skey
  #   gss-spnego
  # NOTE: See also disable_plaintext_auth setting.
  mechanisms = ntlm gss-spnego
...

fbiagent ★★★
()

dovecot разучился использовать PAM??? Ужас!!!

no-dashi ★★★★★
()
Ответ на: комментарий от fbiagent

Хм, метод авторизации вроде заработал, но залогиниться доменному бзеру все равно нельзя:

Error: auth(default): [2010/11/15 12:36:31, 3] libsmb/ntlmssp.c:ntlmssp_server_auth(739)
Error: auth(default):   Got user=[milkroot] domain=[TD] workstation=[HOOK] len1=24 len2=24
Error: auth(default): [2010/11/15 12:36:31, 3] libsmb/ntlmssp_sign.c:ntlmssp_sign_init(338)
Error: auth(default):   NTLMSSP Sign/Seal - Initialising with flags:
Error: auth(default): [2010/11/15 12:36:31, 3] libsmb/ntlmssp.c:debug_ntlmssp_flags(63)
Error: auth(default):   Got NTLMSSP neg_flags=0xa2088205
Error: auth(default):     NTLMSSP_NEGOTIATE_UNICODE
Error: auth(default):     NTLMSSP_REQUEST_TARGET
Error: auth(default):     NTLMSSP_NEGOTIATE_NTLM
Error: auth(default):     NTLMSSP_NEGOTIATE_ALWAYS_SIGN
Error: auth(default):     NTLMSSP_NEGOTIATE_NTLM2
Error: auth(default):     NTLMSSP_NEGOTIATE_128
Error: auth(default):     NTLMSSP_NEGOTIATE_56
Info: auth(default): auth(?,192.168.1.2): Invalid username: TD+milkroot
Info: auth(default): winbind(?,192.168.1.2): Username contains disallowed character: 0x2b
Понятно, что он ругается на «+» в разделителе логин/домен, но как сделать, чтобы winbind выдавал эту информацию просто в виде логина?

uruloke
() автор топика

Пользователя-то он по ntlm получает, но ни в passwd, ни в userdb не может его найти:

Info: auth(default): passwd(imapuser,192.168.1.2): lookup
Info: auth(default): passwd(imapuser,192.168.1.2): unknown user
Пришлось прикручивать авторизацию в LDAP:
hosts = 192.168.1.254
auth_bind=yes).
dn = мой юзер
dnpass = мой пасс
debug_level = -1
auth_bind = yes
ldap_version = 3
base = dc=td, dc=pmz, dc=com, dc=ua
scope = subtree
user_filter = (cn=%u)
pass_filter = (cn=%u)
В результате вроде подключается к серверу, но потом почему-то отваливается:
Error: auth(default): * host: ForestDnsZones.td.pmz.com.ua  port: 0
Error: auth(default):   refcnt: 1  status: Connected
Error: auth(default):   last used: Tue Nov 16 13:18:03 2010
Error: auth(default):   rebind in progress
Error: auth(default):     queue is empty
Error: auth(default):
Error: auth(default): * host: 192.168.1.254  port: 389  (default)
Error: auth(default):   refcnt: 2  status: Connected
Error: auth(default):   last used: Tue Nov 16 13:18:02 2010
Error: auth(default):
Error: auth(default): ** ld 0x112511d0 Outstanding Requests:
Error: auth(default):  * msgid 15,  origid 3, status InProgress
Error: auth(default):    outstanding referrals 0, parent count 2
Error: auth(default):  * msgid 17,  origid 3, status InProgress
Error: auth(default):    outstanding referrals 0, parent count 1
Error: auth(default):  * msgid 3,  origid 3, status RequestCompleted
Error: auth(default):    outstanding referrals 3, parent count 2
Error: auth(default): ** ld 0x112511d0 Response Queue:
Error: auth(default):  * msgid 14,  type 97
Error: auth(default):  * msgid 3,  type 100
Error: auth(default):    chained responses:
Error: auth(default):   * msgid 3,  type 115
Error: auth(default):   * msgid 3,  type 115
Error: auth(default): ldap_chkResponseList ld 0x112511d0 msgid 14 all 1
Error: auth(default): ldap_chkResponseList returns ld 0x112511d0 msgid 14, type 0x97
Error: auth(default): ldap_parse_result
Error: auth(default): ldap_msgfree
Error: auth(default): adding response ld 0x112511d0 msgid 3 type 115:
Error: auth(default): wait4msg ld 0x112511d0 0 secs to go
Info: auth(default): new auth connection: pid=12239
Info: auth(default): ldap(imapuser,192.168.1.2): Aborting (timeout), we're not connected to LDAP server
Info: auth(default): master out: FAIL      5
Info: imap-login: Internal login failure (auth failed, 1 attempts): user=<imapuser>, method=NTLM, rip=192.168.1.2, lip=192.168$
Я уже за два дня голову сломал, пытаясь подружить довкота с АД.

uruloke
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.