Настройка Exim с хранением информации в LDAP - не выходит

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
JSN
рядовой
Сообщения: 48
Зарегистрирован: 2008-05-06 10:09:28
Откуда: г. Челябинск
Контактная информация:

Настройка Exim с хранением информации в LDAP - не выходит

Непрочитанное сообщение JSN » 2008-05-21 7:25:07

Ребят, делал все, как написано в статье http://www.lissyara.su/?id=1331 но никак не могу запустить эту связку в работу. В Exim и LDAP я новичок. Никак не могу понять в чем ошибка. Exim пишет в логах:

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

May 20 13:47:05 PDC exim[1006]: Delay 0s for localhost.energo74.ru [127.0.0.1] with HELO=localhost. Mail from xxx@xxx.ru to test@exim.teachers.
May 20 13:47:05 PDC exim[1006]: H=localhost.energo74.ru (localhost) [127.0.0.1] I=[127.0.0.1]:25 F=<xxx@xxx.ru> temporarily rejected RCPT test@exim.teachers: failed to expand "${lookup ldapm{user="cn=exim,ou=system,dc=PDC,dc=energo74,dc=ru" pass="mmail" ldap:///ou=exim,dc=PDC,dc=energo74,dc=ru?mail?sub?(&(accountStatus=active) (mailAlternateAddress=${quote_ldap:$local_part}$ {quote_ldap:@}${quote_ldap:$domain}))}}": $ not followed by letter, digit, or {
May 20 13:47:05 PDC exim[1006]: H=localhost.energo74.ru (localhost) [127.0.0.1] I=[127.0.0.1]:25 F=<jsn@energo74.ru> temporarily rejected RCPT test@exim.teachers: failed to expand "${lookup ldapm{user="cn=exim,ou=system,dc=PDC,dc=energo74,dc=ru" pass="mmail" ldap:///ou=exim,dc=PDC,dc=energo74,dc=ru?mail?sub?(&(accountStatus=active) (mailAlternateAddress=${quote_ldap:$local_part}$ {quote_ldap:@}${quote_ldap:$domain}))}}": $ not followed by letter, digit, or {
Помогите, пожалуйста, разобраться.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: Настройка Exim с хранением информации в LDAP - не выходит

Непрочитанное сообщение hizel » 2008-05-21 8:29:54

почему у вас

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

$ {quote_ldap:@}
должно быть

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

${quote_ldap:@}
пробельчиг лишний в конфигурации exim
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
JSN
рядовой
Сообщения: 48
Зарегистрирован: 2008-05-06 10:09:28
Откуда: г. Челябинск
Контактная информация:

Re: Настройка Exim с хранением информации в LDAP - не выходит

Непрочитанное сообщение JSN » 2008-05-21 10:29:29

Большое спасибо! Все заработало. А ошибка в статье. Я просто скопипастил. Причем, эта ошибка во всех запросах к лдапу.

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

## ищем хомяк пользователя
    directory = ${lookup ldap{LDAP_AUTH \
		ldap:///ou=exim,dc=l1523,dc=ru?homeDirectory?sub? \
                (&(accountStatus=active) \
                mail=${quote_ldap:$local_part}${quote_ldap:@}$ \
                {quote_ldap:$domain}))}{/var/spool/mail/$value/Maildir/} }
Также в статье не было сказано о том, что нужно пользователю exim дать права на чтение в slapd.conf, иначе он не видит дерева, т.к. срабатывает дефолтовое правило

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

access to *
 by * none

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: Настройка Exim с хранением информации в LDAP - не выходит

Непрочитанное сообщение hizel » 2008-05-21 11:23:50

попробуйте

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

## ищем хомяк пользователя
    directory = ${lookup ldap{LDAP_AUTH \
      ldap:///ou=exim,dc=l1523,dc=ru?homeDirectory?sub?\
                (&(accountStatus=active) \
                mail=${quote_ldap:$local_part}${quote_ldap:@}$\
                {quote_ldap:$domain}))}{/var/spool/mail/$value/Maildir/} }
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
JSN
рядовой
Сообщения: 48
Зарегистрирован: 2008-05-06 10:09:28
Откуда: г. Челябинск
Контактная информация:

Re: Настройка Exim с хранением информации в LDAP - не выходит

Непрочитанное сообщение JSN » 2008-05-21 12:13:55

Сделал проще - выстроил в одну строку эти запросы. И так пока работает. Позже разберусь как правильно переносить. Сейчас, вроде как, работают квоты на ящик и отправка как на локальные, так и на внешние адреса. Но столкнулся вот с чем - не могу получить/отправить почту для test@exim.teachers при помощи The Bat!. Ругается:

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

!21.05.2008, 14:55:05: FETCH - Невозможно соединиться с сервером
 21.05.2008, 14:55:05: SEND  - Соединение с SMTP сервером прошло удачно
 21.05.2008, 14:55:05: SEND  - Аутентификация (программный CRAM-MD5)...
 21.05.2008, 14:55:05: SEND  - Сервер сообщает об ошибке: Incorrect authentication data
 21.05.2008, 14:55:05: SEND  - Аутентификация (обычный метод)...
 21.05.2008, 14:55:05: SEND  - Сервер сообщает об ошибке: Incorrect authentication data
 21.05.2008, 14:55:05: SEND  - Аутентификация (проверка имени пользователя и пароля)...
 21.05.2008, 14:55:05: SEND  - Сервер сообщает об ошибке: Incorrect authentication data
 21.05.2008, 14:55:05: SEND  - ВНИМАНИЕ: не удалось обнаружить на сервере подходящих алгоритмов аутентификации

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

# Секция авторизации при отправке писем. Ввиду того,
# что почтовых клиентов много, и все всё делают
# по-своему, то и механизмов авторизации три...
begin authenticators
							 
# А вот по какому методу авторизуется оутглюк - я уже и
# не помню... Хотя в своё время долго ковырялся,
# пока настроил... Толь plain, толь login...
auth_plain:
    driver = plaintext
    public_name = PLAIN
## ищем dn пользователя с данным логином и паролем
## если нашли, то все ок, если не прошли, то
## шлем пользователя лесом
## Можно было использовать не поиск, а ldapauth,
## то есть если пользователь аутентифицируется в ldap,
## то все ок. Но мне это не подходит, т.к. 
## у меня несколько доменов и пользователи в них
## пересекаются.
    server_condition = ${lookup ldapdn{LDAP_AUTH ldap:///ou=exim,dc=PDC,dc=energo74,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
## тоже самое, что и для PLAIN
    server_condition = ${lookup ldapdn{LDAP_AUTH ldap:///ou=exim,dc=PDC,dc=energo74,dc=ru??sub?(&(accountStatus=active)(mail=${quote_ldap:$1})(clearPassword=${quote_ldap:$2}))}{yes}{no}}
    server_prompts = Username:: : Password::
    server_set_id = $1
																				    
# А так авторизуется "Летучая Мышь" - TheBat!
auth_cram_md5:
    driver = cram_md5
    public_name = CRAM-MD5
## ищем clearPassword пользователя
    server_secret = ${lookup ldap{LDAP_AUTH ldap:///ou=exim,dc=PDC,dc=energo74,dc=ru?clearPassword?sub?(&(accountStatus=active)(mail=${quote_ldap:$1}))}{$value}fail}
    server_set_id = $1
																									  
# Фсё. Конфиг кончился. Два дня убил.
# &copy; lissyara       2006-02-25, 01:19

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

May 21 14:46:45 PDC exim[4118]: no host name found for IP address 192.168.1.179
May 21 14:46:45 PDC exim[4118]: Delay 25s for  [192.168.1.179] with HELO=ADMIN-PC. Mail from test@exim.teachers to xxx@xxx.ru.
May 21 14:47:10 PDC exim[4118]: H=(ADMIN-PC) [192.168.1.179] I=[192.168.1.4]:25 F=<test@exim.teachers> rejected RCPT <xxx@xxx.ru>: "Свободен. Это тебе не ОпенРелей."
May 21 14:47:10 PDC exim[4118]: H=(ADMIN-PC) [192.168.1.179] I=[192.168.1.4]:25 F=<test@exim.teachers> rejected RCPT <xxx@xxx.ru>: "Свободен. Это тебе не ОпенРелей."
May 21 14:47:15 PDC exim[4124]: auth_cram_md5 authenticator failed for (ADMIN-PC) [192.168.1.179] I=[192.168.1.4]:25: 535 Incorrect authentication data (set_id=test)
May 21 14:47:15 PDC exim[4124]: auth_cram_md5 authenticator failed for (ADMIN-PC) [192.168.1.179] I=[192.168.1.4]:25: 535 Incorrect authentication data (set_id=test)
May 21 14:47:15 PDC exim[4124]: auth_plain authenticator failed for (ADMIN-PC) [192.168.1.179] I=[192.168.1.4]:25: 535 Incorrect authentication data (set_id=test)
May 21 14:47:15 PDC exim[4124]: auth_plain authenticator failed for (ADMIN-PC) [192.168.1.179] I=[192.168.1.4]:25: 535 Incorrect authentication data (set_id=test)
May 21 14:47:15 PDC exim[4124]: auth_login authenticator failed for (ADMIN-PC) [192.168.1.179] I=[192.168.1.4]:25: 535 Incorrect authentication data (set_id=test)
May 21 14:47:15 PDC exim[4124]: auth_login authenticator failed for (ADMIN-PC) [192.168.1.179] I=[192.168.1.4]:25: 535 Incorrect authentication data (set_id=test)


Аватара пользователя
maluy
ефрейтор
Сообщения: 58
Зарегистрирован: 2007-04-19 23:59:13
Откуда: Украина
Контактная информация:

Re: Настройка Exim с хранением информации в LDAP - не выходит

Непрочитанное сообщение maluy » 2008-05-21 16:46:19

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

# А так авторизуется "Летучая Мышь" - TheBat!
auth_cram_md5:
      driver = cram_md5
      public_name = CRAM-MD5
## ищем clearPassword пользователя
      server_secret = ${lookup ldap{LDAP_AUTH \
                      ldap:///ou=exim,dc=rosan,dc=lan?clearPassword?sub?\
                      (&(accountStatus=active)(mail=${quote_ldap:$1})\ 
                      )}{$value}fail}
      server_set_id = $1

Аватара пользователя
JSN
рядовой
Сообщения: 48
Зарегистрирован: 2008-05-06 10:09:28
Откуда: г. Челябинск
Контактная информация:

Re: Настройка Exim с хранением информации в LDAP - не выходит

Непрочитанное сообщение JSN » 2008-05-23 8:16:25

Нашел. Нужно было с конфиг exim подправить как в первоначальном варианте Лиссяры:

Было:

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

domainlist local_domains = exim.teachers : fr33man.ru
Стало:

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

domainlist local_domains = exim.teachers : fr33man.ru : 192.168.1.0/16