Страница 1 из 2

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

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

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

Добавлено: 2010-02-13 1:10:30
dikens3
Сделайте аутентификацию через dovecot, если я правильно понял.

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

Добавлено: 2010-02-13 10:31:32
neyro
Ага, а сам я не догадался думаете ? :) У довкота есть определенные проблемы с некоторыми клиентами, поэтому через него не пойдет.

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

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

Добавлено: 2010-02-13 10:48:08
dikens3
НУ придумайте кондишен для ваших нужд при аутентификации. Это же простейшее ИЛИ.

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

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

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

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

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

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


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

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

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

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

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

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

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

Добавлено: 2010-02-13 18:12:59
dikens3
Да блин, никак ты не поймёшь меня.

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

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

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

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

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

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

Добавлено: 2010-02-13 23:07:09
dikens3
как сделать так, чтобы аутентификатор сначала пробовал проверить пароль в mysql, а потом в идеале через dovecot
Не получится, драйвер один. Делай как я описал, или думай ещё что.

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

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

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

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

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

Добавлено: 2010-02-14 15:59:12
CrazyPilot
Если некоторые клиенты - роундкуб, то виноваты руки, а не довекот =)

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

Добавлено: 2010-02-14 16:21:11
neyro
Я вообщето не спрашивал, чего где и почему виновато, я задал конкретный вопрос, и пока вижу тут только куча флуда.

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

Добавлено: 2010-02-14 17:47:03
dikens3
Ну а что вы хотите я не пойму никак?

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

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

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

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

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

Почитайте какие-нибудь RFC и т.п. документы, думаю прозрение наступит. А флудить, что вас что-то не устраивает - это к вам самим. Делать надо иногда, а не думать.

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

Добавлено: 2010-02-14 17:58:33
neyro
Я хочу, чтобы эксим проводил аутентификацию как это делает dovecot - по очереди перебирает все доступные ему базы паролей.

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

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

1. Сообщите, что вы хотите и на что вы не получили ответ/совет?
2. Сообщите, что у вас не получается.

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

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

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

Добавлено: 2010-02-14 19:57:23
Alex Keda
dikens3 писал(а):Сделайте, что не получается? Напишите условие.
вы хоть что-нибудь написали?
или ждёте пока за вас напишут?

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

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

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

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

Добавлено: 2010-02-15 11:25:29
skeletor
neyro писал(а): п.с. про имена кириллицей это Вы конечно загнули...такой жести уж точно никто делать не будет :ROFL:
Ну как сказать :), бывают и такие умники, равно как и те, которые придумали кириллические домены :)

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

Добавлено: 2010-02-28 23:02:56
neyro
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
Вот чего пишет эксим при попытке аутентификации через любой веб интерфейс. В этом основная проблема.

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

Добавлено: 2010-03-12 13:12:39
blade_007
Добрый день. Пытаюсь сделать примерно такую конструкцию по поиску сначала в БД 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.