Решил тут перевести свою локальную электропочту на Active Directory (сейчас виртуальные аканты в mysql).
Еще раз: почта локальная, наружу не ходит, домен один.
У всех пользователей в AD поле E-mail заполнено.
Домен в АД - burut.org, почтовый локальный домен - burut.net (ну так сложилось).
Имена пользователей выбирают сами пользователи, поэтому они выглядеть могут как угодно, например username, но в профиле поле E-mail заполнено по стандарту(первая буква имени, фамилия), таким образом, к примеру у пользователя username почта ifamiliya@burut.netТак вот никак не получается скрестить сабжы.
Начал настройку с dovecot, вроде бы настроил. Привожу основные моменты конфига:
mail_location = maildir:/srv/vmail/%u
mail_uid = 1001
mail_gid = 1001
1001 - это uid и gid пользователя vmailНу и вот конфиг ldap:
uris = ldap://burut.orgdn = cn=reader,ou=ServiceUsers,ou=AllUsers,dc=burut,dc=org
dnpass = *********
tls = no
auth_bind = yes
auth_bind_userdn = %n@burut.org
ldap_version = 3
base = ou=AllUsers,dc=burut,dc=org
deref = searching
scope = subtree
user_filter = (&(objectClass=person)(sAMAccountName=%u))
pass_filter = (&(ObjectClass=person)(sAMAccountName=%u))
Настроил почтовый клиент, пробую забрать почту(тестовым пользователем mailuser и e-mail у него mailuser@burut.net), в итоге:
# ls -l /srv/vmail/
итого 4
drwx------ 5 vmail vmail 4096 Май 6 11:55 mailuser
Как видим, мейлдир создался, почтовый клиент отрапортовал, что новых сообщений не найдено, но все ок.Далее в дебаг-логе:
May 06 12:50:55 auth: Debug: auth client connected (pid=18921)
May 06 12:50:55 auth: Debug: client in: AUTH 1 PLAIN service=pop3 session=K/uAzAjcewAKABQe lip=10.0.0.103 rip=10.0.20.30 lport=110 rport=2171 resp=AG1haWx1c2VyAG1haWx1c2Vy
May 06 12:50:55 auth: Debug: client out: OK 1 user=mailuser
May 06 12:50:55 auth: Debug: master in: REQUEST 1003094017 18921 1 a2e66e3f4f8fb795b453410ee87fca63
May 06 12:50:55 auth: Debug: ldap(mailuser,10.0.20.30,<K/uAzAjcewAKABQe>): user search: base=ou=AllUsers,dc=burut,dc=org scope=subtree filter=(&(objectClass=person)(sAMAccountName=mailuser)) fields=homeDirectory,uidNumber,gidNumber
May 06 12:50:55 auth: Debug: ldap(mailuser,10.0.20.30,<K/uAzAjcewAKABQe>): result: homeDirectory missing; uidNumber missing; gidNumber missing
May 06 12:50:55 auth: Debug: master out: USER 1003094017 mailuser
May 06 12:50:55 pop3(mailuser): Debug: Effective uid=1001, gid=1001, home=
May 06 12:50:55 pop3(mailuser): Debug: Namespace inbox: type=private, prefix=, sep=, inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir:/srv/vmail/mailuser
May 06 12:50:55 pop3(mailuser): Debug: maildir++: root=/srv/vmail/mailuser, index=, control=, inbox=/srv/vmail/mailuser, alt=
Как буд-то бы все нормально.Далее, начал прикручивать postfix, в мастерконфиге прописал транспорт:
# Dovecot LDA
dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/dovecot-lda -d ${recipient}
И сам конфиг постфикса привожу целиком:
inet_interfaces = 10.0.0.103smtpd_banner = $myhostname ESMTP ready
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
#base = /etc/postfix/hash
myhostname = testapp.burut.net
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = burut.net
mydomain = burut.net
mydestination = $myhostname, localhost.$mydomain, localhost
relayhost =.
mynetworks = 127.0.0.0/8, 10.0.0.0/16
#mailbox_command = procmail -a "$EXTENSION"
recipient_delimiter = +
inet_interfaces = all
unknown_local_recipient_reject_code = 550
debug_peer_level = 2
debug_peer_list = 127.0.0.1, burut.net
message_size_limit = 50000000
# ---------------------- VIRTUAL DOMAINS START ----------------------
virtual_transport = dovecot
virtual_mailbox_base = /srv/vmail
virtual_mailbox_domains = $mydomain
virtual_mailbox_maps = ldap:$config_directory/virtual_mbox.conf
virtual_alias_maps = hash:$config_directory/virtual_alias
virtual_minimum_uid = 150
virtual_uid_maps = static:150
virtual_gid_maps = static:6
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
# ---------------------- VIRTUAL DOMAINS END ----------------------
smtpd_recipient_restrictions = check_recipient_access hash:$config_directory/recipient_access, reject
smtpd_sender_restrictions = check_sender_access hash:$config_directory/recipient_access, reject
Ну и конфиг virtual_mbox.conf
server_host = burut.org
search_base = dc=burut,dc=org
version = 3query_filter = (&(objectclass=person)(mail=%s))
result_attribute = mail
#query_filter = (userPrincipalName=%s)
#result_attribute = sAMAccountName
result_format = %u/
bind_dn = reader@burut.org
bind_pw = *********
cache = no
Теперь пробую отослать сам себе письмо, вот что вижу в логах:
May 6 12:59:56 testapp postfix/smtpd[19631]: connect from vritualpc1.burut.org[10.0.20.30]
May 6 12:59:56 testapp postfix/smtpd[19631]: 8E5D7A0CE9: client=vritualpc1.burut.org[10.0.20.30]
May 6 12:59:56 testapp postfix/cleanup[19634]: 8E5D7A0CE9: message-id=<1564368713.20130506115955@burut.net>
May 6 12:59:56 testapp postfix/qmgr[19617]: 8E5D7A0CE9: from=<mailuser@burut.net>, size=602, nrcpt=1 (queue active)
May 6 12:59:56 testapp dovecot: auth: ldap(mailuser@burut.net): unknown user
May 6 12:59:56 testapp postfix/pipe[19635]: 8E5D7A0CE9: to=<mailuser@burut.net>, relay=dovecot, delay=0.03, delays=0/0/0/0.02, dsn=5.1.1, status=bounced (user unknown)
May 6 12:59:56 testapp postfix/cleanup[19634]: 948BCA0CF2: message-id=<20130506085956.948BCA0CF2@testapp.burut.net>
May 6 12:59:56 testapp postfix/qmgr[19617]: 948BCA0CF2: from=<>, size=2347, nrcpt=1 (queue active)
May 6 12:59:56 testapp postfix/bounce[19639]: 8E5D7A0CE9: sender non-delivery notification: 948BCA0CF2
May 6 12:59:56 testapp postfix/qmgr[19617]: 8E5D7A0CE9: removed
May 6 12:59:56 testapp postfix/smtpd[19631]: disconnect from vritualpc1.burut.org[10.0.20.30]
May 6 12:59:56 testapp dovecot: auth: ldap(mailuser@burut.net): unknown user
May 6 12:59:56 testapp postfix/pipe[19635]: 948BCA0CF2: to=<mailuser@burut.net>, relay=dovecot, delay=0.02, delays=0/0/0/0.02, dsn=5.1.1, status=bounced (user unknown)
May 6 12:59:56 testapp postfix/qmgr[19617]: 948BCA0CF2: removed
В дебаге dovecot вот что:
May 06 12:59:56 lda: Debug: Loading modules from directory: /usr/lib/dovecot/modules
May 06 12:59:56 lda: Debug: Module loaded: /usr/lib/dovecot/modules/lib10_quota_plugin.so
May 06 12:59:56 auth: Debug: master in: USER 1 mailuser@burut.net service=lda
May 06 12:59:56 auth: Debug: ldap(mailuser@burut.net): user search: base=ou=AllUsers,dc=burut,dc=org scope=subtree filter=(&(objectClass=person)(sAMAccountName=mailuser@burut.net)) fields=homeDirectory,uidNumber,gidNumber
May 06 12:59:56 auth: Debug: master out: NOTFOUND 1
May 06 12:59:56 lda: Debug: auth input:
Что я делаю не так?