Exim, несколько одинаковых аутентификаторов, как в dovecot

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
neyro
сержант
Сообщения: 187
Зарегистрирован: 2008-03-07 20:24:25
Контактная информация:

Exim, несколько одинаковых аутентификаторов, как в dovecot

Непрочитанное сообщение neyro » 2010-02-12 23:48:31

Возможно ли такое реализовать ? т.е. условно говоря есть база mysql с пользователями, есть пользователи в active directory...соответственно задача в том, что эксим сначаал пытался авторизовать пользователя в домене, потом через mysql базу и т.д....собственно как это сделанно в dovecot. Но если эксим видит два одинаковых аутентификатора (с однаковым типом, к примеру plain) то он соответственно ругается и вываливается с ошибкой.
В инете инфы на эту тему нет.

Хостинговая компания 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/

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Exim, несколько одинаковых аутентификаторов, как в dovecot

Непрочитанное сообщение dikens3 » 2010-02-13 1:10:30

Сделайте аутентификацию через dovecot, если я правильно понял.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

neyro
сержант
Сообщения: 187
Зарегистрирован: 2008-03-07 20:24:25
Контактная информация:

Re: Exim, несколько одинаковых аутентификаторов, как в dovecot

Непрочитанное сообщение neyro » 2010-02-13 10:31:32

Ага, а сам я не догадался думаете ? :) У довкота есть определенные проблемы с некоторыми клиентами, поэтому через него не пойдет.

п.с. вообще конечно был очень удивлен, увидев такой косяк в эксиме...такой функционал и простейшую функцию не могли реализовать....ппц.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Exim, несколько одинаковых аутентификаторов, как в dovecot

Непрочитанное сообщение dikens3 » 2010-02-13 10:48:08

НУ придумайте кондишен для ваших нужд при аутентификации. Это же простейшее ИЛИ.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

neyro
сержант
Сообщения: 187
Зарегистрирован: 2008-03-07 20:24:25
Контактная информация:

Re: Exim, несколько одинаковых аутентификаторов, как в dovecot

Непрочитанное сообщение neyro » 2010-02-13 11:11:30

Эксим не позволяет использовать два аутентификатора с одинаковым методом (к примеру plain) независимо от кондишенов. При загрузке конфига он вываливается с ошибкой в которой он это явно указывает. В этом вся проблема. Спрашиваю тут т.к. возможно упустил какие-либо опции которые возможно позволяют это сделать.

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: Exim, несколько одинаковых аутентификаторов, как в dovecot

Непрочитанное сообщение skeletor » 2010-02-13 12:13:02

neyro писал(а):У довкота есть определенные проблемы с некоторыми клиентами, поэтому через него не пойдет.
Какие это проблемы? имена кириллицей?

neyro
сержант
Сообщения: 187
Зарегистрирован: 2008-03-07 20:24:25
Контактная информация:

Re: Exim, несколько одинаковых аутентификаторов, как в dovecot

Непрочитанное сообщение neyro » 2010-02-13 14:02:07

Я уже не помню какая именно ошибка была(что-то связанное с неподдерживаемым методом аутентификации...довкот выдавал отлуп и в лог писал ошибку из 3-4 слов, связанно это судя по всему с корявостью эксимовского модуля dovecot), но воспроизвести очень просто-попробуйте авторизовать пользователя из roundcube в эксиме. Не в dovecot через Imap, а именно в эксиме через аутентификатор dovecot.
И вообще какая разница - просто нужно сделать нормальную аутентификацию, а делать это через кучу костылей желания нет.


п.с. про имена кириллицей это Вы конечно загнули...такой жести уж точно никто делать не будет :ROFL:

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Exim, несколько одинаковых аутентификаторов, как в dovecot

Непрочитанное сообщение dikens3 » 2010-02-13 16:59:15

Ещё раз повторю твой вопрос и свой ответ:
соответственно задача в том, что эксим сначала пытался авторизовать пользователя в домене, потом через mysql
НУ придумайте кондишен для ваших нужд при аутентификации. Это же простейшее ИЛИ.
Если что-то там в AD и/или MYSQL, тогда PLAIN успешен.

Или такой тебе вопрос:
Что мешает создать аутентификатор PLAIN (один) в котором будет производиться проверка в AD и в MYSQL.
И вообще какая разница - просто нужно сделать нормальную аутентификацию, а делать это через кучу костылей желания нет.
Ага. 10 аутентфикаторов это не костыль ))
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

neyro
сержант
Сообщения: 187
Зарегистрирован: 2008-03-07 20:24:25
Контактная информация:

Re: Exim, несколько одинаковых аутентификаторов, как в dovecot

Непрочитанное сообщение neyro » 2010-02-13 17:42:04

Вообще хотелось сделать так: пробуем аутентифицировать юзера в мускуль базе, если нет то лезем в довкот за паролем. Соответственно в одном аутентификаторе этого не сделать из-за разных используемых драйверов( plaintext и dovecot соответственно). Напрямую биндится к АД может и получится..но это крайний случай.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Exim, несколько одинаковых аутентификаторов, как в dovecot

Непрочитанное сообщение dikens3 » 2010-02-13 18:12:59

Да блин, никак ты не поймёшь меня.

1. Аутентификация - это выполнение некоего набора условий (сравнение логина и пароля).
Результат может быть 1 или 0 (символически имею ввиду. ДА или НЕТ)
2. В зависимости от результата п.1. ты принимаешь решение успешна аутентификация или нет.

Что такое аутентификация dovecot - тот же набор условий (запрос к mysql)

Вывод:
Тебе нужно совместить 2-е проверки в одном условии.
1. Написать проверку в mysql (переписать из dovecot и оттестировать)
Кстати, когда я не знал что можно через dovecot, писал сам запрос к mysql. Потом нашёл аутентификатор и сделал через него, чтобы не дублировать.
2. Написать проверку в AD.
3. Совместить 1 и 2 в одном запросе.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

neyro
сержант
Сообщения: 187
Зарегистрирован: 2008-03-07 20:24:25
Контактная информация:

Re: Exim, несколько одинаковых аутентификаторов, как в dovecot

Непрочитанное сообщение neyro » 2010-02-13 21:09:22

:))) У меня есть проверка и через Mysql и через AD и в эксиме, и в довекоте...это как 2х2.
Вопрос в другом - как сделать так, чтобы аутентификатор сначала пробовал проверить пароль в mysql, а потом в идеале через dovecot -в данный момент совместить это нельзя т.к. в случае mysql параметр driver = plaintext в аутентификаторе, а для проверки через довкот нужно driver = dovecot.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Exim, несколько одинаковых аутентификаторов, как в dovecot

Непрочитанное сообщение dikens3 » 2010-02-13 23:07:09

как сделать так, чтобы аутентификатор сначала пробовал проверить пароль в mysql, а потом в идеале через dovecot
Не получится, драйвер один. Делай как я описал, или думай ещё что.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

CrazyPilot
ст. сержант
Сообщения: 321
Зарегистрирован: 2008-08-14 9:17:58
Откуда: Санкт-Петербург
Контактная информация:

Re: Exim, несколько одинаковых аутентификаторов, как в dovecot

Непрочитанное сообщение CrazyPilot » 2010-02-14 13:41:27

Что-то я не всосал суть проблемы. Что мешает прописать в довекоте пачку user и pass db с разными драйверами, один для ldap, другой для sql? А экзим авторизацию пущай смотрит через dovecot. У мну раункуб успешно отправляет и показывает письма с имапа, ноу проблемс. В довекоте сконфигурирована авторизация в ldap и passwd-file. Что вам мешает сделать ldap + sql? Довекот как раз будет поочередно проверять все user и pass базы.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Exim, несколько одинаковых аутентификаторов, как в dovecot

Непрочитанное сообщение dikens3 » 2010-02-14 15:11:35

CrazyPilot писал(а):Что-то я не всосал суть проблемы. Что мешает прописать в довекоте пачку user и pass db с разными драйверами, один для ldap, другой для sql? А экзим авторизацию пущай смотрит через dovecot. У мну раункуб успешно отправляет и показывает письма с имапа, ноу проблемс. В довекоте сконфигурирована авторизация в ldap и passwd-file. Что вам мешает сделать ldap + sql? Довекот как раз будет поочередно проверять все user и pass базы.
Ну он уже отвечал мне так:
Ага, а сам я не догадался думаете ? :) У довкота есть определенные проблемы с некоторыми клиентами, поэтому через него не пойдет.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

CrazyPilot
ст. сержант
Сообщения: 321
Зарегистрирован: 2008-08-14 9:17:58
Откуда: Санкт-Петербург
Контактная информация:

Re: Exim, несколько одинаковых аутентификаторов, как в dovecot

Непрочитанное сообщение CrazyPilot » 2010-02-14 15:59:12

Если некоторые клиенты - роундкуб, то виноваты руки, а не довекот =)

neyro
сержант
Сообщения: 187
Зарегистрирован: 2008-03-07 20:24:25
Контактная информация:

Re: Exim, несколько одинаковых аутентификаторов, как в dovecot

Непрочитанное сообщение neyro » 2010-02-14 16:21:11

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

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Exim, несколько одинаковых аутентификаторов, как в dovecot

Непрочитанное сообщение dikens3 » 2010-02-14 17:47:03

Ну а что вы хотите я не пойму никак?

Обычно подключается почтовый клиент к серверу и сервер ему отвечает:

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

Могу мол AUTH PLAIN LOGIN.
или вы думаете такое бывает:

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

AUTH PLAIN PLAIN PLAIN PLAIN
И какой из них должен выбрать ваш почтовый клиент для аутетнтификации? У вас мысли логические, но компьютеру на логику пох.

Почитайте какие-нибудь RFC и т.п. документы, думаю прозрение наступит. А флудить, что вас что-то не устраивает - это к вам самим. Делать надо иногда, а не думать.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

neyro
сержант
Сообщения: 187
Зарегистрирован: 2008-03-07 20:24:25
Контактная информация:

Re: Exim, несколько одинаковых аутентификаторов, как в dovecot

Непрочитанное сообщение neyro » 2010-02-14 17:58:33

Я хочу, чтобы эксим проводил аутентификацию как это делает dovecot - по очереди перебирает все доступные ему базы паролей.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Exim, несколько одинаковых аутентификаторов, как в dovecot

Непрочитанное сообщение dikens3 » 2010-02-14 18:10:39

neyro писал(а):Я хочу, чтобы эксим проводил аутентификацию как это делает dovecot - по очереди перебирает все доступные ему базы паролей.
Сделайте, что не получается? Напишите условие.

1. Сообщите, что вы хотите и на что вы не получили ответ/совет?
2. Сообщите, что у вас не получается.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

neyro
сержант
Сообщения: 187
Зарегистрирован: 2008-03-07 20:24:25
Контактная информация:

Re: Exim, несколько одинаковых аутентификаторов, как в dovecot

Непрочитанное сообщение neyro » 2010-02-14 19:53:55

neyro писал(а):Вопрос в другом - как сделать так, чтобы аутентификатор сначала пробовал проверить пароль в mysql, а потом в идеале через dovecot -в данный момент совместить это нельзя т.к. в случае mysql параметр driver = plaintext в аутентификаторе, а для проверки через довкот нужно driver = dovecot.
Что тут может быть непонятного ?

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35466
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Exim, несколько одинаковых аутентификаторов, как в dovecot

Непрочитанное сообщение Alex Keda » 2010-02-14 19:57:23

dikens3 писал(а):Сделайте, что не получается? Напишите условие.
вы хоть что-нибудь написали?
или ждёте пока за вас напишут?
Убей их всех! Бог потом рассортирует...

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Exim, несколько одинаковых аутентификаторов, как в dovecot

Непрочитанное сообщение dikens3 » 2010-02-14 20:56:29

neyro писал(а):
neyro писал(а):Вопрос в другом - как сделать так, чтобы аутентификатор сначала пробовал проверить пароль в mysql, а потом в идеале через dovecot -в данный момент совместить это нельзя т.к. в случае mysql параметр driver = plaintext в аутентификаторе, а для проверки через довкот нужно driver = dovecot.
Что тут может быть непонятного ?
Вы мои посты не читате в принципе и общаетесь сами с собой?

Ответ я вам ещё раз продублирую:
Тебе нужно совместить 2-е проверки в одном условии.
1. Написать проверку в mysql (переписать из dovecot и оттестировать)
Кстати, когда я не знал что можно через dovecot, писал сам запрос к mysql. Потом нашёл аутентификатор и сделал через него, чтобы не дублировать.
2. Написать проверку в AD.
3. Совместить 1 и 2 в одном запросе.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: Exim, несколько одинаковых аутентификаторов, как в dovecot

Непрочитанное сообщение skeletor » 2010-02-15 11:25:29

neyro писал(а): п.с. про имена кириллицей это Вы конечно загнули...такой жести уж точно никто делать не будет :ROFL:
Ну как сказать :), бывают и такие умники, равно как и те, которые придумали кириллические домены :)

neyro
сержант
Сообщения: 187
Зарегистрирован: 2008-03-07 20:24:25
Контактная информация:

Re: Exim, несколько одинаковых аутентификаторов, как в dovecot

Непрочитанное сообщение neyro » 2010-02-28 23:02:56

exim[28208]: dovecot_login authenticator failed for (xxx.ru) [127.0.0.1] I=[127.0.0.1]:25: 435 Unable to authenticate at present: authentication socket protocol error
Вот чего пишет эксим при попытке аутентификации через любой веб интерфейс. В этом основная проблема.

blade_007
ст. прапорщик
Сообщения: 571
Зарегистрирован: 2010-03-12 12:59:08
Контактная информация:

Re: Exim, несколько одинаковых аутентификаторов, как в dovec

Непрочитанное сообщение blade_007 » 2010-03-12 13:12:39

Добрый день. Пытаюсь сделать примерно такую конструкцию по поиску сначала в БД mysql, затем в LDAP.
Каждый по отдельности аутентификатор работает и авторизует соот. юзеров.

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

plain: 
  driver = plaintext 
  public_name = PLAIN 
  server_condition = ${if or \
  {\
  {crypteq{$3} {${lookup mysql{SELECT crypt FROM users \ 
     WHERE id = '${quote_mysql:${local_part:$2}}' \ 
        AND passwd = '${quote_mysql:$3}' \ 
        AND active = 'Y'}{$value}{*}}}{yes}{no}}\
  {ldapauth {user=${quote_ldap:${lookup ldapdn {user=LDAP_AD_BINDDN pass=LDAP_AD_PASS \
  ldap:///LDAP_AD_BASE??sub?\
(&(objectclass=user)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(mail=${quote_ldap:$auth2}))}{$value}fail}} \
pass=${quote_ldap:$auth3} connect=5 ldap:///}{yes}{no}} \
  } \
}
  server_prompts = : 
  server_set_id = $2

В дебаге видно

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

${if or {{crypteq{$3} {${lookup mysql{SELECT crypt FROM users WHERE id = '${quote_mysql:${local_part:$2}}' AND passwd = '${quote_mysql:$3}' AND active = 'Y'}{$value}{*}}}{yes}{no}}{ldapauth {user=${quote_ldap:${lookup ldapdn {user=${quote_ldap:CN=exim,CN=Users,****} pass=*** ldap:///DC=Do***??sub?(&(objectclass=user)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(mail=${quote_ldap:$auth2}))}{$value}fail}} pass=${quote_ldap:$auth3} connect=5 ldap:///}{yes}{no}} } }
  error message: missing } at end of condition inside "or" group
 expansion failed: missing } at end of condition inside "or" group
Хотя по количеству скобок все совпадает. Есть подозрение, что ldapauth возвращает true/false, а в выражении or/and должна использоваться строка.
Если есть какие-либо идеи - welcome.