Sendmail - проверка подлинности получателя в AD

На доскональное знание данной темы, не может претендовать, пожалуй ни один спец, из ныне живущих на земле. ;-)
Так поможем друг другу.

Модераторы: Trinity admin`s, Free-lance moderator`s

Ответить
SchTiRlic
Junior member
Сообщения: 13
Зарегистрирован: 21 авг 2008, 18:19
Откуда: Казань

Sendmail - проверка подлинности получателя в AD

Сообщение SchTiRlic » 05 сен 2008, 15:34

Имеется сервер, транзитные релей под управлением ОС FreeBSD 6.2 с почтовой системой Sendmail 13.*. Необходимо провертять подлинность получателя в AD.

Пересобрал  системный Sendmail с поддержкой LDAP, добавил следующие директивы в mc:

define(`confLDAP_DEFAULT_SPEC', `-h "сервер AD" -b "dc=domain,dc=zone" -d "DN-служебного пользователя" -MLDAP_AUTH_SIMPLE -P/etc/mail/ldap_pass')dnl
LDAPROUTE_DOMAIN_FILE(`/etc/mail/ldap_route_domains')dnl
FEATURE(`ldap_routing', `null', `ldap -1 -T<TMPF> -v mail -k (&(|(objectclass=user)(objectclass=group))(proxyAddresses=SMTP:%0))',`bounce')dnl

Пересобрал, перезапустил, проверил работает.

Но теперь вот думаю, там метод аутентификации SIMPLE и всё в открытом виде передаётся, тогда ведь можно наснифать пароль, пусть пользователь и малопривилигированный, но всё таки хочется секьюрности.

Вычитал что можно обрашаться к АД-серверу по шифрованному тунелю по протоколу ldaps. Тогда, я просто в директивах это и указываю (-h ldaps://сервер_АД). А дальше разобраться не могу, там нужно указывать Sendmailу где брать сертификаты, как это сделать? Дайте ссылки на доки?

squirL
Advanced member
Сообщения: 114
Зарегистрирован: 11 апр 2006, 20:16
Откуда: Киев

Re: Sendmail - проверка подлинности получателя в AD

Сообщение squirL » 08 сен 2008, 15:04

SchTiRlic писал(а): Вычитал что можно обрашаться к АД-серверу по шифрованному тунелю по протоколу ldaps. Тогда, я просто в директивах это и указываю (-h ldaps://сервер_АД). А дальше разобраться не могу, там нужно указывать Sendmailу где брать сертификаты, как это сделать? Дайте ссылки на доки?
http://support.microsoft.com/kb/321051
насчет  
указывать Sendmailу где брать сертификаты, как это сделать?

мне как-то сомнительно :-\ сендмейлу надо объяснить что коннект идет через LDAPS. а сертификат ему отдаст сервер.

SchTiRlic
Junior member
Сообщения: 13
Зарегистрирован: 21 авг 2008, 18:19
Откуда: Казань

Сообщение SchTiRlic » 08 сен 2008, 20:59

В принципе возможна реализация безопасной авторизац сл. образом

Атворизация SIMPLE обращение по LDAPS
define(`confLDAP_DEFAULT_SPEC', `-h "ldaps://сервер AD" -b "dc=domain,dc=zone" -d "DN-служебного пользователя" -MLDAP_AUTH_SIMPLE -P/etc/mail/ldap_pass')dnl


Атворизация Kerberos обращение по LDAP
define(`confLDAP_DEFAULT_SPEC', `-h "сервер AD" -b "dc=domain,dc=zone" -d "DN-служебного пользователя" -MLDAP_AUTH_KRBV4 -P/etc/mail/ldap_pass')dnl

Что лучше? И ещё если на 2003 поддерживатся Керберос только 5ой версии а в моудле сендмейла только 4ой то получитс ли их подружить?

squirL
Advanced member
Сообщения: 114
Зарегистрирован: 11 апр 2006, 20:16
Откуда: Киев

Сообщение squirL » 08 сен 2008, 23:34

SchTiRlic писал(а):Что лучше? И ещё если на 2003 поддерживатся Керберос только 5ой версии а в моудле сендмейла только 4ой то получитс ли их подружить?
я не понимаю, почему вы упорно игнорируете механизм PAM.
PAM превосходно поддерживает аутентификацию/авторизацию через Kerberos V (MIT/Heimdal), winbind и все, что вашей душе угодно.

SchTiRlic
Junior member
Сообщения: 13
Зарегистрирован: 21 авг 2008, 18:19
Откуда: Казань

Сообщение SchTiRlic » 09 сен 2008, 14:34

Речь идёт о защите процесса атворизации служебной записи по LDAP для выполнения запроса по фильтру, для определения подлинности получателя. Т.е. пришло письмо, берём получателя, смотрим если есть такой в АД пропускаем, иначе боунсим.

Я не понимаю (а может просто не знаю) как тут можно использовать PAM? Не могли бы вы расписать эту схему?

squirL
Advanced member
Сообщения: 114
Зарегистрирован: 11 апр 2006, 20:16
Откуда: Киев

Сообщение squirL » 10 сен 2008, 18:10

SchTiRlic писал(а): Я не понимаю (а может просто не знаю) как тут можно использовать PAM? Не могли бы вы расписать эту схему?
ну что такое PAM, я думаю вы себе представляете?

sendmail получает письмо. в nsswitch.conf описано, где в данной системе можно найти информацию о пользователях.
через механизм PAM (последние версии sendmail держат его "из коробки") - проверяется наличие пользователя во всех описанных источниках.

у меня - он ищет нужного пользователя в /etc/master.passwd (по дефолту) и в OpenLDAP через pam_ldap. вы же - можете использовать PAM модуль winbind. возможно - получится и с Kerberos, не знаю - не пробовал. в общем-то - и pam_ldap, наверное умеет лазить в AD. но winbind - самая простая и разжеванная в интернете схема.

директивами в файлах конфигурации PAM можно настроить работу таким образом, что при отсутствии "положительного отклика" от одного из модулей - поиск прерывался. например - winbind не нашел - ругаемся и прерываем поиск по PAM stack.

пример - если я отправляю письмо пользователю vasya, которого нету в OpenLDAP - sendmail там поищет и обругает меня. чем, в данном случае, отличается AD - я не понимаю.

как то так :)

SchTiRlic
Junior member
Сообщения: 13
Зарегистрирован: 21 авг 2008, 18:19
Откуда: Казань

Сообщение SchTiRlic » 12 сен 2008, 11:27

Дело в том, что менханизмы аутентификации и валидации адресов у меня разные. И ещё, машина эта является релеем и принимает почту из сети Интернет только в определённый домен. Авторизация там не нужна, поэтому она вообще не реализована.

Поэтому к Sendmail был прикручен LDAPMAP, который и делает запросы по фильтру и пропускает сообщение если в ответ на LDAP запрос пришло более одной записи.

Вы предлагаете полностью переиначить механизм проверки подленности получателя?

SchTiRlic
Junior member
Сообщения: 13
Зарегистрирован: 21 авг 2008, 18:19
Откуда: Казань

Сообщение SchTiRlic » 13 сен 2008, 16:17

Вобщем решиолось так:
- В конфигурационом файле Sendmail явно было указано что обращаемся по ldaps://.
- Sendmail был собран с библиотеками lldap lcrypto.
- Был сгенерирован самоподписной сертификат, и установлен на контролере домена AD.
- В конфигурационных файлах openldap был прописан данный TLS-сертификат.

SchTiRlic
Junior member
Сообщения: 13
Зарегистрирован: 21 авг 2008, 18:19
Откуда: Казань

Сообщение SchTiRlic » 24 сен 2008, 16:53

Сейчас столкнулся с проблемой что проверяется существование пользователей только тех доменов которые указаны в /etc/mail/ldap_route_domains. А вот например уже "шаг влево" и для поддомена проверка существования не производится. Может кто знает как релизовать проверку не только для доменов которые описаны в упомянутом выше файле но и для всех их поддоменов?

Ответить

Вернуться в «Серверы - ПО, Unix подобные системы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 16 гостей