Smtp аутентификация клиентов postfix в Aсtive Directory
Втупление:
Управляем пользователями посредством AD.
Имеем Postfix настроенный в качестве front-end для Exchange (хотя он здесь вовсе ни причем, но так многим понятней).
Хотимдля мобильных пользователей настроить smtp аутентификацию, но нехотим или неможем вести дополнительную базу пользователей.
Решение:
В данном случае будем использовать возможности PAM. Суть решения такова:
Postfix для smtp аутентификации использует sasl который в свою очередь использует методsaslauthd запущенный с опцией -a pam. Система, зная о сервисе smtp, в данном случае FreeBSD 4.x для аутентификации пользователя из AD использует pam_ldap.
Данная статья предполагает, что у вас Postfix 2.х собран с поддержкой cyrus-sasl2и установлен cyrus-sasl2-saslauthd. Также надо установить pam_ldap.
1. cyrus-sasl надо указать метод аутентификации:
cat /usr/local/lib/sasl2/smtpd.conf
pwcheck_method: saslauthd
Этот метод работает только с паролями plain и login. Saslauthd запускаем с опцией "-a pam"
2. postfix надо сообщить о smtp аутентификации через sasl:
3. PAM надо знать о сервисе smtp и и какой модуль применять:
cat /etc/pam.conf
# Mail services
smtpauthsufficient/usr/local/lib/pam_ldap.so
4. pam_ldap для взаимодействия с AD использует ldap.conf следующего вида:
base dc=domain,dc=org
scope sub
uri ldap://server.domain.org
port 389
ldap_version 3
binddn cn=ldap,cn=Users,dc=domain,dc=org
bindpw qwerty
pam_filter objectclass=User
pam_login_attribute sAMAccountName
pam_password ad
В этом примере в контейнере Users в Active Directory Users and Copmputers был создан пользователь ldap с паролем qwerty. Он нужен для подключения к AD и поиска атрибутов логин/пароль. Соответственно значения server, domain, org а также имя пользователя поменяйте на свои. На файл ldap.conf можно поставитьправа 600.