Smtp аутентификация клиентов postfix в Aсtive Directory - Mini HowTo
вступление
Управляем пользователями посредством 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 надо указать метод аутентификации:
Этот метод работает только с паролями plain и login. Saslauthd запускаем
с опцией "-a pam"
2. postfix надо сообщить о smtp аутентификации через sasl:
3. PAM надо знать о сервисе smtp и и какой модуль применять:
4. pam_ldap для взаимодействия с AD использует ldap.conf следующего вида:
В этом примере в контейнере Users в Active Directory Users and Copmputers был
создан пользователь ldap с паролем qwerty. Он нужен для подключения к AD и
поиска атрибутов логин/пароль. Соответственно значения server, domain, org а
также имя пользователя поменяйте на свои. На файл ldap.conf можно поставить
права 600.
В случае если всё прошло удачно в maillog видим:
вывод
Одна учетная запись - это удобно. Идею можно применить и для других служб (ftp,
pop, imap и т.д.).
Игорь Полянский
Управляем пользователями посредством 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:
smtpd_sasl_auth_enable = yes
smtpd_sasl_application_name = smtpd
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated,
reject_unauth_destination
3. PAM надо знать о сервисе smtp и и какой модуль применять:
cat /etc/pam.conf
# Mail services
smtp auth sufficient /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.
В случае если всё прошло удачно в maillog видим:
postfix/smtpd[28892]: 4ACBCEDE11: client=my-host[192.168.12.6],
sasl_method=PLAIN, sasl_username=my-user@mx.domain.org
вывод
Одна учетная запись - это удобно. Идею можно применить и для других служб (ftp,
pop, imap и т.д.).
Игорь Полянский
Сетевые решения. Статья была опубликована в номере 00 за 2005 год в рубрике sysadmin