Страница 1 из 1
exim + ldap пара проблем
Добавлено: 2009-05-25 8:48:33
opt1k
Делалось по
http://www.lissyara.su/?id=1331
Прикрутил к лдапу ещё и довекот без проблем, но с экзимом немного не срослось.
Конфиг изменён минимально.
1) Не получается отправить письмо на локального пользователя, в логах такое:
Код: Выделить всё
2009-05-25 09:35:56 Delay 0s for wxp.tst.ru [192.168.16.9] with HELO=vasa. Mail from test@tst.ru to test@tst.ru.
2009-05-25 09:35:56 H=wxp.tst.ru (vasa) [192.168.16.9] I=[192.168.16.17]:25 F=<test@tst.ru> rejected RCPT <test@tst.ru>: Unrouteable address
для решения пробовал в ignore_target_hosts добавить свою сетку 192.168.0.0\16 после этого клиенту при отправке стало давать ошибку:
Вобщем понял, что лучше спросить у вас.
2)Громоптица не отправляет по смтп, авторизатор такой же как и в статье, при попытке авторизоваться в логах такое:
Код: Выделить всё
2009-05-25 09:44:02 auth_plain authenticator failed for ([192.168.16.9]) [192.168.16.9] I=[192.168.16.17]:25: 535 Incorrect authentication data (set_id=test@tst.ru)
2009-05-25 09:44:02 auth_login authenticator failed for ([192.168.16.9]) [192.168.16.9] I=[192.168.16.17]:25: 535 Incorrect authentication data (set_id=test@tst.ru)
Аутглюк авторизуется без проблем.
Re: exim + ldap пара проблем
Добавлено: 2009-05-25 8:58:11
princeps
Значит громоптица использует какой-то другой механизм аутентификации. Здесь:
http://www.lissyara.su/?id=1233 читал?
Re: exim + ldap пара проблем
Добавлено: 2009-05-25 9:08:29
opt1k
нет, использует Login
да, читал
Re: exim + ldap пара проблем
Добавлено: 2009-05-25 10:07:12
princeps
ну тогда хз

По поводу первой проблемы: с других серверов пробовал отправлять?
Re: exim + ldap пара проблем
Добавлено: 2009-05-25 10:23:32
opt1k
не-а, сервер в локалке, в инет не смогу вытащить. для тестовых целей.
вот что оно по аутентификации даёт:
Код: Выделить всё
Script started on Mon May 25 11:12:33 2009
test# exit^Hm -bd -d^M^M
Exim version 4.69 (FreeBSD 7.1) uid=0 gid=0 pid=9216 D=fbb95cfd^M
Probably Berkeley DB version 1.8x (native mode)^M
Support for: crypteq iconv() IPv6 use_setclassresources PAM Perl Expand_dlfunc OpenSSL Content_Scanning Old_Demime^M
Lookups: lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmnz dnsdb dsearch ldap ldapdn ldapm nis nis0 passwd^M
Authenticators: cram_md5 dovecot plaintext spa^M
Routers: accept dnslookup ipliteral manualroute queryprogram redirect^M
Transports: appendfile/maildir/mailstore/mbx autoreply lmtp pipe smtp^M
Fixed never_users: 0^M
Size of off_t: 8^M
changed uid/gid: forcing real = effective^M
uid=0 gid=0 pid=9216^M
auxiliary group list: 0^M
seeking password data for user "mailnull": using cached result^M
getpwnam() succeeded uid=26 gid=26^M
seeking password data for user "root": cache not available^M
getpwnam() succeeded uid=0 gid=0^M
configuration file is /usr/local/etc/exim/configure^M
log selectors = 0000cefe 00233821^M
cwd=/usr/home/amicus 3 args: exim -bd -d^M
trusted user^M
admin user^M
originator: uid=0 gid=0 login=root name=Charlie Root^M
9216 listening on all interfaces (IPv6) port 25^M
9216 listening on all interfaces (IPv4) port 25^M
9216 pid written to /var/run/exim.pid^M
9216 changed uid/gid: running as a daemon^M
9216 uid=26 gid=6 pid=9216^M
9216 auxiliary group list: 6 6^M
9216 LOG: MAIN^M
9216 exim 4.69 daemon started: pid=9216, no queue runs, listening for SMTP on port 25 (IPv6 and IPv4)^M
9216 set_process_info: 9216 daemon: no queue runs, listening for SMTP on port 25 (IPv6 and IPv4)^M
9216 daemon running with uid=26 gid=6 euid=26 egid=6^M
9216 Listening...^M
9216 Connection request from 192.168.16.9 port 1219^M
9216 search_tidyup called^M
9216 1 SMTP accept process running^M
9216 Listening...^M
9217 sender_fullhost = [192.168.16.9]^M
9217 sender_rcvhost = [192.168.16.9]^M
9217 Process 9217 is handling incoming connection from [192.168.16.9]^M
9217 host in host_lookup? no (option unset)^M
9217 set_process_info: 9217 handling incoming connection from [192.168.16.9] I=[192.168.16.17]:25^M
9217 host in host_reject_connection? no (option unset)^M
9217 host in sender_unqualified_hosts? no (option unset)^M
9217 host in recipient_unqualified_hosts? no (option unset)^M
9217 host in helo_verify_hosts? no (option unset)^M
9217 host in helo_try_verify_hosts? no (option unset)^M
9217 host in helo_accept_junk_hosts? no (end of list)^M
9217 SMTP>> 220 mail.tst.ru, ESMTP EXIM 4.69^M
9217 Process 9217 is ready for new message^M
9217 smtp_setup_msg entered^M
9217 SMTP<< EHLO [192.168.16.9]^M
9217 [192.168.16.9] in helo_lookup_domains? no (end of list)^M
9217 sender_fullhost = ([192.168.16.9]) [192.168.16.9]^M
9217 sender_rcvhost = [192.168.16.9]^M
9217 set_process_info: 9217 handling incoming connection from ([192.168.16.9]) [192.168.16.9] I=[192.168.16.17]:25^M
9217 host in pipelining_advertise_hosts? yes (matched "*")^M
9217 host in auth_advertise_hosts? yes (matched "*")^M
9217 host in tls_advertise_hosts? yes (matched "*")^M
9217 SMTP>> 250-mail.tst.ru Hello [192.168.16.9] [192.168.16.9]^M
9217 250-SIZE 2097152^M
9217 250-PIPELINING^M
9217 250-AUTH LOGIN CRAM-MD5^M
9217 250-STARTTLS^M
9217 250 HELP^M
9217 SMTP<< AUTH CRAM-MD5^M
9217 SMTP>> 334 PDkyMTcuMTI0MzIzNTU2NUBtYWlsLnRzdC5ydT4=^M
9217 SMTP<< dGVzdEB0c3QucnUgNzgxZDRkMGE2ZTE1M2VjNDI1NWNmZTcwNTYwMDBlMjg=^M
9217 search_open: ldap "NULL"^M
9217 search_find: file="NULL"^M
9217 key="user="cn=exim,ou=system,dc=tst,dc=ru" pass="123" ldap:///ou=exim,dc=tst,dc=ru?clearPassword?sub? (&(accountStatus=active)(mail=test%40tst.ru))"
9217 LRU list:^M
9217 internal_search_find: file="NULL"^M
9217 type=ldap key="user="cn=exim,ou=system,dc=tst,dc=ru" pass="123" ldap:///ou=exim,dc=tst,dc=ru?clearPassword?sub? (&(accountStatus=active)(mail=test%40
9217 database lookup required for user="cn=exim,ou=system,dc=tst,dc=ru" pass="123" ldap:///ou=exim,dc=tst,dc=ru?clearPassword?sub? (&(accountStatus=active)(
9217 LDAP parameters: user=cn=exim,ou=system,dc=tst,dc=ru pass=123 size=0 time=0 connect=0 dereference=0 referrals=on^M
9217 perform_ldap_search: ldap URL = "ldap:///ou=exim,dc=tst,dc=ru?clearPassword?sub? (&(accountStatus=active)(mail=test%40tst.ru))" server=192.168.16.17 po
9217 after ldap_url_parse: host=192.168.16.17 port=389^M
9217 ldap_initialize with URL ldap://192.168.16.17:389/^M
9217 initialized for LDAP (v3) server 192.168.16.17:389^M
9217 LDAP_OPT_X_TLS_TRY set^M
9217 binding with user=cn=exim,ou=system,dc=tst,dc=ru password=123^M
9217 Start search^M
9217 ldap_search failed: -7, Bad search filter^M
9217 lookup deferred: ldap_search failed: -7, Bad search filter^M
9217 SMTP>> 435 Unable to authenticate at present^M
9217 LOG: MAIN REJECT^M
9217 auth_cram_md5 authenticator failed for ([192.168.16.9]) [192.168.16.9] I=[192.168.16.17]:25: 435 Unable to authenticate at present (set_id=test@tst.r
9217 SMTP<< AUTH LOGIN^M
9217 host in smtp_accept_max_nonmail_hosts? yes (matched "*")^M
9217 SMTP>> 334 VXNlcm5hbWU6^M
9217 SMTP<< dGVzdEB0c3QucnU=^M
9217 SMTP>> 334 UGFzc3dvcmQ6^M
9217 SMTP<< MTIzNDU2Nw==^M
9217 auth_login authenticator:^M
9217 $auth1 = test@tst.ru^M
9217 $auth2 = 1234567^M
9217 $1 = test@tst.ru^M
9217 $2 = 1234567^M
9217 search_open: ldapdn "NULL"^M
9217 search_find: file="NULL"^M
9217 key="user="cn=exim,ou=system,dc=tst,dc=ru" pass="123" ldap:///ou=exim,dc=tst,dc=ru??sub?(& (accountStatus=active)(mail=test%40tst.ru) (clearPassword=
9217 LRU list:^M
9217 internal_search_find: file="NULL"^M
9217 type=ldapdn key="user="cn=exim,ou=system,dc=tst,dc=ru" pass="123" ldap:///ou=exim,dc=tst,dc=ru??sub?(& (accountStatus=active)(mail=test%40tst.ru) (cl
9217 database lookup required for user="cn=exim,ou=system,dc=tst,dc=ru" pass="123" ldap:///ou=exim,dc=tst,dc=ru??sub?(& (accountStatus=active)(mail=test%40t
9217 LDAP parameters: user=cn=exim,ou=system,dc=tst,dc=ru pass=123 size=0 time=0 connect=0 dereference=0 referrals=on^M
9217 perform_ldap_search: ldapdn URL = "ldap:///ou=exim,dc=tst,dc=ru??sub?(& (accountStatus=active)(mail=test%40tst.ru) (clearPassword=1234567))" server=192
9217 after ldap_url_parse: host=192.168.16.17 port=389^M
9217 re-using cached connection to LDAP server 192.168.16.17:389^M
9217 Start search^M
9217 search ended by ldap_result yielding 101^M
9217 ldap_parse_result: 0^M
9217 ldap_parse_result yielded 0: Success^M
9217 LDAP search: no results^M
9217 lookup failed^M
9217 expanded string: no^M
9217 SMTP>> 535 Incorrect authentication data^M
9217 LOG: MAIN REJECT^M
9217 auth_login authenticator failed for ([192.168.16.9]) [192.168.16.9] I=[192.168.16.17]:25: 535 Incorrect authentication data (set_id=test@tst.ru)^M
^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[[A^H ^H^H ^H^H ^H^H ^H^H ^H^H ^H^H ^H^H ^H^H ^H^H ^H^H ^H^H ^H^H ^H^H ^H^H ^H^H ^H^H ^H^H ^H^H ^H^H ^H^H ^H^H
test# exit^M^M
Script done on Mon May 25 11:12:56 2009
Re: exim + ldap пара проблем
Добавлено: 2009-05-25 13:43:30
f0s
юзай такую:
Код: Выделить всё
begin authenticators
auth_login:
driver = plaintext
public_name= LOGIN
server_prompts = "Username:: : Password::"
server_condition="${lookup ldap{user=uid=$1,ou=users,dc=artpaint,dc=spb,dc=ru pass=$2 ldap://localhost/ou=users,dc=artpaint,dc=spb,dc=ru?uid?sub?(uid=$1)}{yes}fail}"
server_set_id=$1
Re: exim + ldap пара проблем
Добавлено: 2009-05-25 13:45:01
opt1k
вобщем косяк где-то тут:
Код: Выделить всё
driver = plaintext
public_name = PLAIN
server_condition = ${lookup ldapdn{LDAP_AUTH \
ldap:///ou=exim,dc=tst,dc=ru??sub?(& \
(accountStatus=active)(mail=${quote_ldap:$2}) \
(clearPassword=${quote_ldap:$3}))}{yes}{no}}
server_prompts = :
server_set_id = $2
auth_login:
driver = plaintext
public_name = LOGIN
server_condition = ${lookup ldapdn{LDAP_AUTH \
ldap:///ou=exim,dc=tst,dc=ru??sub? \
(&(accountStatus=active)(mail=${quote_ldap:$1}) \
(clearPassword=${quote_ldap:$2}))}{yes}{no}}
server_prompts = Username:: : Password::
server_set_id = $1
не пойму я смысла этих запросов... в инете видел способ как сделать с авторизацией по пользователю, но не катит для меня. Мне нужно именно использовать поисковый запрос, а он не понятно как работает и документации нету ни---я.
Re: exim + ldap пара проблем
Добавлено: 2009-05-25 13:51:04
opt1k
не понимаю я запроса (
вобщем у меня есть пользователь exim с паролем 123, который может читать атрибуты в лдапе.
есть объект класса MailAccount, у которого есть атрибут mail в котором хранится мыло. Этот объект лежит в ou=tst.ru,ou=exim,dc=tst,dc=ru
Ещё у этого объекта есть поле cpass где лежит отрытый пароль.
Вот, подскажите как будет выглядеть server_condition в моём случае.
Re: exim + ldap пара проблем
Добавлено: 2009-05-25 13:56:15
f0s
opt1k писал(а):не понимаю я запроса (
вобщем у меня есть пользователь exim с паролем 123, который может читать атрибуты в лдапе.
есть объект класса MailAccount, у которого есть атрибут mail в котором хранится мыло. Этот объект лежит в ou=tst.ru,ou=exim,dc=tst,dc=ru
Ещё у этого объекта есть поле cpass где лежит отрытый пароль.
Вот, подскажите как будет выглядеть server_condition в моём случае.
ясно.. у меян запрос на слуячай, когда каждому юхзеру, который в ou=users, присвоено значение mail=с даресом почты, а пароль берется ткакой же, как у юзера.. а ну, еще схема в ладп соотсветвующая от dbmail-а прикручена
Re: exim + ldap пара проблем
Добавлено: 2009-05-25 14:15:33
opt1k
что посоветуете, модифицировать схему? или всё же запрос ковырять?
Re: exim + ldap пара проблем
Добавлено: 2009-05-25 14:31:48
princeps
мне кажется вариант со схемой правильней. смысл разводить кучу записей в ldap, разве он не для того, чтоб хранить все нужные данные в одном месте?
Re: exim + ldap пара проблем
Добавлено: 2009-05-25 14:35:22
f0s
opt1k писал(а):что посоветуете, модифицировать схему? или всё же запрос ковырять?
модифицируй схему. лдап - сощздан для удобвства.. зачем плодить дубли.. так завел нового юезра, пропсиал ему значение mail, и счиатй почта у него работает.. пароль такой же.. а тут, зачем-то еще один контейнер заводить.. да и пароль в открытом виде хранить.. жуть

Re: exim + ldap пара проблем
Добавлено: 2009-05-25 20:58:53
opt1k
а смысл на самом деле есть. Например, где хранить алиасы? Или как модифицировать существующую схему для хранения алиасов?
Re: exim + ldap пара проблем
Добавлено: 2009-05-26 8:04:29
princeps
там же и хранить. Я бы использовал имя входа пользователя как локальную часть, а поле mail для хранения алиасов.
Re: exim + ldap пара проблем
Добавлено: 2009-05-26 12:20:38
f0s
opt1k писал(а):а смысл на самом деле есть. Например, где хранить алиасы? Или как модифицировать существующую схему для хранения алиасов?
у меня это поле mailAlternateAddress
схема взята от dbmail
Re: exim + ldap пара проблем
Добавлено: 2009-05-26 12:21:11
f0s
princeps писал(а):там же и хранить. Я бы использовал имя входа пользователя как локальную часть, а поле mail для хранения алиасов.
это не всегда удобно
Re: exim + ldap пара проблем
Добавлено: 2009-05-26 12:33:00
princeps
Почему?
Re: exim + ldap пара проблем
Добавлено: 2009-05-26 12:44:22
f0s
princeps писал(а):Почему?
у меня есть пользователь ivanov, а почта у него должна быть marketing@..., а не ivanov@... fи есть пользователь ivanov_ip у него как раз должен быть адрес ivanov@....
вообщем неудобно.. проще взять схему от дбмейл, и в чкач-ве альяса юзать то, о чем я писал выше
Re: exim + ldap пара проблем
Добавлено: 2009-05-26 12:56:04
princeps
ну, в принципе, логика есть. Я делаю по примеру exchange, он берет локальную часть из имени входа
Re: exim + ldap пара проблем
Добавлено: 2009-05-26 18:40:40
opt1k
дайте сабжевую схему от дбмаил, а то искать ломает, спасибо.
Re: exim + ldap пара проблем
Добавлено: 2009-05-27 8:34:02
f0s
вот