Как сделать SMTP авторизацию в AD (Sendmail+Cyrus SASL2+??)
Модераторы: Trinity admin`s, Free-lance moderator`s
Как сделать SMTP авторизацию в AD (Sendmail+Cyrus SASL2+??)
Народец, есть гейт, он же почтовый релей (Sendmail), есть Exchange и AD на win SRV 2003.. вопрос в САБЖ
документация по SASL настолько убога, что я нимогу никак разобраться, да и знаний маловато.
Пробовал ставить из портов 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"
Может кто-нить делал подобное, или киньте сцылку на документацию более-менее приличную, или хотя бы какие порты нужно поставить, чтобы такую схему реализовать.
Заранее спасибо!
документация по SASL настолько убога, что я нимогу никак разобраться, да и знаний маловато.
Пробовал ставить из портов 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+
а saslauthd собрать с поддержкой ldap?Zorn писал(а):Народец, есть гейт, он же почтовый релей (Sendmail), есть Exchange и AD на win SRV 2003.. вопрос в САБЖ
документация по SASL настолько убога, что я нимогу никак разобраться, да и знаний маловато.
Пробовал ставить из портов 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"
пробовал я когда-то ради спортивного интереса цепочку exim -> pam -> pam_ldap -> openldap clientZorn писал(а):Может кто-нить делал подобное, или киньте сцылку на документацию более-менее приличную, или хотя бы какие порты нужно поставить, чтобы такую схему реализовать.
в вашем случае будет примерно так:
sendmail -> saslauthd -> pam -> pam_ldap -> openldap client
но на самом деле saslauthd сам умеет быть ldapclient'ом, но вот примеров у меня не сохранилось
p. s. нечто подобное тут уже обсуждалось:
http://www.3nity.ru/viewtopic.htm?t=4112
--
/corvax
/corvax
Re: Как сделать SMTP авторизацию в AD (Sendmail+Cyrus SASL2+
я собирал порт cyrus-sasl2 как написано в доке к немуcorvax писал(а): а saslauthd собрать с поддержкой ldap?
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+
это не наш путь. для порта cyrus-sasl2-saslauthd есть параметр WITH_OPENLDAP и опциональный параметр WITH_OPENLDAP_VERZorn писал(а):я собирал порт cyrus-sasl2 как написано в доке к немуcorvax писал(а): а saslauthd собрать с поддержкой ldap?
make -D WITH_LDAP
правда в доке не через порты собирают... и даемон saslauthd ставится, man к нему появляется..
configure --with-ldap выполняется как раз при указании WITH_OPENLDAPZorn писал(а):понял, полезная ссылкапробовал я когда-то ради спортивного интереса цепочку 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) ставят
это очевидно после прочтения /usr/ports/security/cyrus-sasl2-saslauthd/Makefile
--
/corvax
/corvax
Re: Как сделать SMTP авторизацию в AD (Sendmail+Cyrus SASL2+
всё, въехал, буду исправляться. Спасибо!
Я решил жить вечно, пока всё идёт хорошо...
- corvax
- free-lance moderator
- Сообщения: 877
- Зарегистрирован: 06 авг 2004, 17:21
- Откуда: Kiev, Ukraine
- Контактная информация:
Re: Как сделать SMTP авторизацию в AD (Sendmail+Cyrus SASL2+
я сегодня опробовать smtp аутентификацию и в sendmail и в exim через saslauthd + openldap клиентZorn писал(а):всё, въехал, буду исправляться. Спасибо!
работает
правда, тестил на 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
saslauthd запускал с параметрами:
Код: Выделить всё
saslauthd -d -m /var/run/saslauthd -a ldap -V
вернее, стартовый скрипт сам об этом знает
--
/corvax
/corvax
ага, понял, а то уже хотел на 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 и проверять уже там
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
- Контактная информация:
exim может аутентифицироваться в AD не только через saslauthd+openldap client, но и через pam+pam_ldap+openldap clientZorn писал(а):ага, понял, а то уже хотел на exim переходить, терь sendmail оставлю.. роднее. Спасибо!
аутентифицироваться при помощи 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
кстати, что там у нас в /usr/local/etc/saslauthd.conf?
--
/corvax
/corvax
я запускал
/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\
/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
- Контактная информация:
ldapuser точно находится в этом ou?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"
а почему не указан ldap_filter?Zorn писал(а):ldap_bind_pw: пароль
ldap_version: 3
ldap_search_base: dc=domain,dc=ru
так в предыдущей мессаге был дебаговый вывод saslauthd или вывод на консоль testsaslauthd?Zorn писал(а):пробовал
saslauthd -d -n 1 -a ldap -V
то же самое выдаёт 8\
--
/corvax
/corvax
да, я пробовал разных юзеров и соответствующие oucorvax писал(а): ldapuser точно находится в этом ou?
пробовал ldap_filter: (sAMAccountName=%u)corvax писал(а): а почему не указан ldap_filter?
ничего не изменилось
дебаговый вывод saslauthdcorvax писал(а): так в предыдущей мессаге был дебаговый вывод saslauthd или вывод на консоль testsaslauthd?
причём на доменконтроллере никаких сообщений о неудачной попытке авторизоваться нету (впрочем их не было когда ldapsearch отрабатывал)
Я решил жить вечно, пока всё идёт хорошо...
- corvax
- free-lance moderator
- Сообщения: 877
- Зарегистрирован: 06 авг 2004, 17:21
- Откуда: Kiev, Ukraine
- Контактная информация:
этот параметр надо обязательно оставитьZorn писал(а):пробовал ldap_filter: (sAMAccountName=%u)corvax писал(а): а почему не указан ldap_filter?
ничего не изменилось
а если повесить tcpdump на порт ldap'овый и посмотреть трафик в сторону AD и обратно?Zorn писал(а):дебаговый вывод saslauthdcorvax писал(а):так в предыдущей мессаге был дебаговый вывод saslauthd или вывод на консоль testsaslauthd?
во-первых, не авторизоваться, а аутентифицироватьсяZorn писал(а):причём на доменконтроллере никаких сообщений о неудачной попытке авторизоваться нету (впрочем их не было когда ldapsearch отрабатывал)
а во-вторых, ldapsearch, когда выполнял запрос, аутентифицировался только от имени ldapuser, а не от имени проверяемого пользователя
--
/corvax
/corvax
сорри за задержку с ответом, работы навалилсь... :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>
значит сделал
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
- Контактная информация:
мне нужен был лишь факт ответов от LDAP сервераZorn писал(а):сорри за задержку с ответом, работы навалилсь... :balfall:
значит сделал
tcpdump -i fxp1 port 389
saslauthd -d -n 1 -a ldap -V
./testsaslauthd -u user -p password
вот, что tcpdump выдал, я в ответах ничего понять не могу
при необходимости интерпретировать данные tcpdump'а удобно ethereal'ом
--
/corvax
/corvax
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 48 гостей