Как сделать SMTP авторизацию в AD (Sendmail+Cyrus SASL2+??)

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

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

Аватара пользователя
Zorn
Advanced member
Сообщения: 53
Зарегистрирован: 30 сен 2005, 14:33
Откуда: Санкт-Петербург

Как сделать SMTP авторизацию в AD (Sendmail+Cyrus SASL2+??)

Сообщение Zorn » 30 сен 2005, 16:59

Народец, есть гейт, он же почтовый релей (Sendmail), есть Exchange и AD на win SRV 2003.. вопрос в САБЖ

документация по SASL настолько убога, что я нимогу никак разобраться, да и знаний маловато.   :cry:

Пробовал ставить из портов cyrus-sasl2 (там ещё есть cyrus-sasl2-saslauthd, cyrus-sasl2-ldapdb), пробовал ставить OpenLDAP - sasl client(их там тоже куча) (в хелпах к sasl написано что нужны какие-то библиотеки от Openldap), в итоге saslauthd -a ldap грит, что "saslauthd[14452] :set_auth_mech : unknown authentication mechanism: ldap"

Может кто-нить делал подобное, или киньте сцылку на документацию более-менее приличную, или хотя бы какие порты нужно поставить, чтобы такую схему реализовать.
Заранее спасибо!
Я решил жить вечно, пока всё идёт хорошо...

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Re: Как сделать SMTP авторизацию в AD (Sendmail+Cyrus SASL2+

Сообщение corvax » 30 сен 2005, 17:26

Zorn писал(а):Народец, есть гейт, он же почтовый релей (Sendmail), есть Exchange и AD на win SRV 2003.. вопрос в САБЖ

документация по SASL настолько убога, что я нимогу никак разобраться, да и знаний маловато.   :cry:

Пробовал ставить из портов cyrus-sasl2 (там ещё есть cyrus-sasl2-saslauthd, cyrus-sasl2-ldapdb), пробовал ставить OpenLDAP - sasl client(их там тоже куча) (в хелпах к sasl написано что нужны какие-то библиотеки от Openldap), в итоге saslauthd -a ldap грит, что "saslauthd[14452] :set_auth_mech : unknown authentication mechanism: ldap"
а saslauthd собрать с поддержкой ldap?
Zorn писал(а):Может кто-нить делал подобное, или киньте сцылку на документацию более-менее приличную, или хотя бы какие порты нужно поставить, чтобы такую схему реализовать.
пробовал я когда-то ради спортивного интереса цепочку exim -> pam -> pam_ldap -> openldap client
в вашем случае будет примерно так:
sendmail -> saslauthd -> pam -> pam_ldap -> openldap client

но на самом деле saslauthd сам умеет быть ldapclient'ом, но вот примеров у меня не сохранилось

p. s. нечто подобное тут уже обсуждалось:
http://www.3nity.ru/viewtopic.htm?t=4112
--
/corvax

Аватара пользователя
Zorn
Advanced member
Сообщения: 53
Зарегистрирован: 30 сен 2005, 14:33
Откуда: Санкт-Петербург

Re: Как сделать SMTP авторизацию в AD (Sendmail+Cyrus SASL2+

Сообщение Zorn » 30 сен 2005, 18:14

corvax писал(а): а saslauthd собрать с поддержкой ldap?
я собирал порт cyrus-sasl2 как написано в доке к нему
make -D WITH_LDAP

правда в доке не через порты собирают... и даемон saslauthd ставится, man к нему появляется..
пробовал я когда-то ради спортивного интереса цепочку exim -> pam -> pam_ldap -> openldap client
в вашем случае будет примерно так:
sendmail -> saslauthd -> pam -> pam_ldap -> openldap client

но на самом деле saslauthd сам умеет быть ldapclient'ом, но вот примеров у меня не сохранилось

p. s. нечто подобное тут уже обсуждалось:
http://www.3nity.ru/viewtopic.htm?t=4112
понял, полезная ссылка
я пытался настроить saslauthd как клиента ldap... может я его не доставил, я во фре пока плохо разбираюсь, щас попробую отдельно поставить sasl2 - saslauthd, хотя в доке они просто sasl2 (./configure --with-ldap) ставят

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Re: Как сделать SMTP авторизацию в AD (Sendmail+Cyrus SASL2+

Сообщение corvax » 30 сен 2005, 18:25

Zorn писал(а):
corvax писал(а): а saslauthd собрать с поддержкой ldap?
я собирал порт cyrus-sasl2 как написано в доке к нему
make -D WITH_LDAP

правда в доке не через порты собирают... и даемон saslauthd ставится, man к нему появляется..
это не наш путь. для порта cyrus-sasl2-saslauthd есть параметр WITH_OPENLDAP и опциональный параметр WITH_OPENLDAP_VER
Zorn писал(а):
пробовал я когда-то ради спортивного интереса цепочку exim -> pam -> pam_ldap -> openldap client
в вашем случае будет примерно так:
sendmail -> saslauthd -> pam -> pam_ldap -> openldap client

но на самом деле saslauthd сам умеет быть ldapclient'ом, но вот примеров у меня не сохранилось

p. s. нечто подобное тут уже обсуждалось:
http://www.3nity.ru/viewtopic.htm?t=4112
понял, полезная ссылка
я пытался настроить saslauthd как клиента ldap... может я его не доставил, я во фре пока плохо разбираюсь, щас попробую отдельно поставить sasl2 - saslauthd, хотя в доке они просто sasl2 (./configure --with-ldap) ставят
configure --with-ldap выполняется как раз при указании WITH_OPENLDAP
это очевидно после прочтения /usr/ports/security/cyrus-sasl2-saslauthd/Makefile
--
/corvax

Аватара пользователя
Zorn
Advanced member
Сообщения: 53
Зарегистрирован: 30 сен 2005, 14:33
Откуда: Санкт-Петербург

Re: Как сделать SMTP авторизацию в AD (Sendmail+Cyrus SASL2+

Сообщение Zorn » 30 сен 2005, 19:16

всё, въехал, буду исправляться. :oops:  Спасибо!
Я решил жить вечно, пока всё идёт хорошо...

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Re: Как сделать SMTP авторизацию в AD (Sendmail+Cyrus SASL2+

Сообщение corvax » 30 сен 2005, 19:56

Zorn писал(а):всё, въехал, буду исправляться. :oops:  Спасибо!
я сегодня опробовать smtp аутентификацию и в sendmail и в exim через saslauthd + openldap клиент

работает

правда, тестил на linux'е (нет у меня sendmail'ов на FreeBSD)

на всякий случай пример saslauthd.conf:

Код: Выделить всё

ldap_servers: ldap://адрес_DC_с_AD/
ldap_bind_dn: CN=ldapuser,CN=Users,DC=domain,DC=tld
ldap_bind_pw: пароль
ldap_version: 3
ldap_search_base: CN=Users,DC=domain,DC=tls
ldap_filter: (sAMAccountName=%u)
ldap_debug: -1
ldapuser - это пользователь, от имени которого будут производиться LDAP запросы к AD

saslauthd запускал с параметрами:

Код: Выделить всё

saslauthd -d -m /var/run/saslauthd -a ldap -V
на FreeBSD путь к сокету будет кажется /var/state/saslauthd/mux
вернее, стартовый скрипт сам об этом знает
--
/corvax

Аватара пользователя
Zorn
Advanced member
Сообщения: 53
Зарегистрирован: 30 сен 2005, 14:33
Откуда: Санкт-Петербург

Сообщение Zorn » 02 окт 2005, 18:21

ага, понял, а то уже хотел на exim переходить, терь sendmail оставлю.. роднее. Спасибо!

ldapsearch проходит, инфу выдаёт нормально, а
./testsaslauthd не проходит, saslauthd пишет saslauthd
[63967] :do_auth         : auth failure: [user=sysop] [service=imap] [realm=] [mech=ldap] [reason=Unknown]

saslauthd[63967] :do_request      : response: NO

но мне кажеться что это сам скрипт глючит, попробую приктутить sasl к sendmail и проверять уже там
Я решил жить вечно, пока всё идёт хорошо...

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 02 окт 2005, 19:08

Zorn писал(а):ага, понял, а то уже хотел на exim переходить, терь sendmail оставлю.. роднее. Спасибо!
exim может аутентифицироваться в AD не только через saslauthd+openldap client, но и через pam+pam_ldap+openldap client
аутентифицироваться при помощи pam+pam_krb5 у меня получилось только под linux'ом. под FreeBSD работа с pam_krb5 у меня что-то пока не сложилась.
Zorn писал(а):ldapsearch проходит, инфу выдаёт нормально, а
./testsaslauthd не проходит, saslauthd пишет saslauthd
[63967] :do_auth         : auth failure: [user=sysop] [service=imap] [realm=] [mech=ldap] [reason=Unknown]

saslauthd[63967] :do_request      : response: NO

но мне кажеться что это сам скрипт глючит, попробую приктутить sasl к sendmail и проверять уже там
сначала надо запустить демона с дебаговом режиме:

Код: Выделить всё

saslauthd -d -n 1 -a ldap -V
а потом уже пускать testsaslauthd

кстати, что там у нас в /usr/local/etc/saslauthd.conf?
--
/corvax

Аватара пользователя
Zorn
Advanced member
Сообщения: 53
Зарегистрирован: 30 сен 2005, 14:33
Откуда: Санкт-Петербург

Сообщение Zorn » 02 окт 2005, 19:17

я запускал
/usr/local/sbin/saslauthd -d -a ldap -V -O /usr/local/etc/saslauthd.conf
перед запуском testsaslauthd
в saslauthd.conf

ldap_servers: ldap://fserver.office.spectec.ru
ldap_bind_dn: "cn=ldapuser,ou=System Maintenance,dc=domain,dc=ru"
ldap_bind_pw: пароль
ldap_version: 3
ldap_search_base: dc=domain,dc=ru

пробовал
saslauthd -d -n 1 -a ldap -V
то же самое выдаёт 8\
Я решил жить вечно, пока всё идёт хорошо...

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 02 окт 2005, 19:27

Zorn писал(а):я запускал
/usr/local/sbin/saslauthd -d -a ldap -V -O /usr/local/etc/saslauthd.conf
перед запуском testsaslauthd
в saslauthd.conf

ldap_servers: ldap://fserver.office.spectec.ru
ldap_bind_dn: "cn=ldapuser,ou=System Maintenance,dc=domain,dc=ru"
ldapuser точно находится в этом ou?
Zorn писал(а):ldap_bind_pw: пароль
ldap_version: 3
ldap_search_base: dc=domain,dc=ru
а почему не указан ldap_filter?
Zorn писал(а):пробовал
saslauthd -d -n 1 -a ldap -V
то же самое выдаёт 8\
так в предыдущей мессаге был дебаговый вывод saslauthd или вывод на консоль testsaslauthd?
--
/corvax

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 02 окт 2005, 19:33

corvax писал(а):так в предыдущей мессаге был дебаговый вывод saslauthd или вывод на консоль testsaslauthd?
стормозил я... на консольный вывод это явно не похоже
это скорее из лога
--
/corvax

Аватара пользователя
Zorn
Advanced member
Сообщения: 53
Зарегистрирован: 30 сен 2005, 14:33
Откуда: Санкт-Петербург

Сообщение Zorn » 02 окт 2005, 19:38

corvax писал(а): ldapuser точно находится в этом ou?
да, я пробовал разных юзеров и соответствующие ou
corvax писал(а): а почему не указан ldap_filter?
пробовал ldap_filter: (sAMAccountName=%u)
ничего не изменилось
corvax писал(а): так в предыдущей мессаге был дебаговый вывод saslauthd или вывод на консоль testsaslauthd?
дебаговый вывод saslauthd

причём на доменконтроллере никаких сообщений о неудачной попытке авторизоваться нету (впрочем их не было когда ldapsearch отрабатывал)
Я решил жить вечно, пока всё идёт хорошо...

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 02 окт 2005, 19:47

Zorn писал(а):
corvax писал(а): а почему не указан ldap_filter?
пробовал ldap_filter: (sAMAccountName=%u)
ничего не изменилось
этот параметр надо обязательно оставить
Zorn писал(а):
corvax писал(а):так в предыдущей мессаге был дебаговый вывод saslauthd или вывод на консоль testsaslauthd?
дебаговый вывод saslauthd
а если повесить tcpdump на порт ldap'овый и посмотреть трафик в сторону AD и обратно?
Zorn писал(а):причём на доменконтроллере никаких сообщений о неудачной попытке авторизоваться нету (впрочем их не было когда ldapsearch отрабатывал)
во-первых, не авторизоваться, а аутентифицироваться
а во-вторых, ldapsearch, когда выполнял запрос, аутентифицировался только от имени ldapuser, а не от имени проверяемого пользователя
--
/corvax

Аватара пользователя
Zorn
Advanced member
Сообщения: 53
Зарегистрирован: 30 сен 2005, 14:33
Откуда: Санкт-Петербург

Сообщение Zorn » 07 окт 2005, 13:18

сорри за задержку с ответом, работы навалилсь...  :balfall:
значит сделал
tcpdump  -i fxp1 port 389
saslauthd -d -n 1 -a ldap -V
./testsaslauthd -u user -p password

вот, что tcpdump выдал, я в ответах ничего понять не могу

12:55:30.631635 IP fbsdserver.subdomain.domain.ru.61635 > ldapserver.subdomain.domain.ru.ldap: S 3416989770:3416989770(0) win 65535 <mss 1460,nop,nop,sackOK,nop,wscale 1,nop,nop,timestamp 68140015 0>

12:55:30.631839 IP ldapserver.subdomain.domain.ru.ldap > fbsdserver.subdomain.domain.ru.61635: S 897955038:897955038(0) ack 3416989771 win 17520 <mss 1460,nop,wscale 0,nop,nop,timestamp 0 0,nop,nop,sackOK>

12:55:30.631955 IP fbsdserver.subdomain.domain.ru.61635 > ldapserver.subdomain.domain.ldap: . ack 1 win 33304 <nop,nop,timestamp 68140015 0>

12:55:30.632373 IP fbsdserver.subdomain.domain.ru.61635 > ldapserver.subdomain.domain.ru.ldap: P 1:81(80) ack 1 win 33304 <nop,nop,timestamp 68140015 0>

12:55:30.672580 IP ldapserver.subdomain.domain.ldap > fbsdserver.subdomain.domain.ru.61635: P 1:110(109) ack 81 win 17440 <nop,nop,timestamp 77623715 68140015>

12:55:30.770608 IP fbsdserver.subdomain.domain.ru.61635 > ldapserver.subdomain.domain.ldap: . ack 110 win 33304 <nop,nop,timestamp 68140029 77623715>
Я решил жить вечно, пока всё идёт хорошо...

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 07 окт 2005, 13:33

Zorn писал(а):сорри за задержку с ответом, работы навалилсь...  :balfall:
значит сделал
tcpdump  -i fxp1 port 389
saslauthd -d -n 1 -a ldap -V
./testsaslauthd -u user -p password

вот, что tcpdump выдал, я в ответах ничего понять не могу
мне нужен был лишь факт ответов от LDAP сервера
при необходимости интерпретировать данные tcpdump'а удобно ethereal'ом
--
/corvax

Ответить

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

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

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