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 надо указать метод аутентификации:

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

©1999-2024 Сетевые решения