Smtp аутентификация клиентов postfix в Aсtive Directory

OSzone.net » Видео » Unix » Интернет » Почта » Smtp аутентификация клиентов postfix в Aсtive Directory
Иcточник: http://www.opennet.ru
Опубликована: 05.03.2005

Втупление:

Управляем пользователями посредством 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 и т.д.).



Ссылка: http://www.oszone.net/2847/