Exim, Mysql + шифрованные пароли в базе.

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

Модератор: xM

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

Exim, Mysql + шифрованные пароли в базе.

Непрочитанное сообщение dikens3 » 2007-04-18 12:17:14

Кому интересно:
mysql:

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

INSERT INTO `users`(username,password,domain) VALUES ('dik',sha1('test'),'domain.ru');
exim:

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

# Настройка аутентификации
begin authenticators

auth_plain:
  driver = plaintext
  public_name = PLAIN
  server_condition = ${lookup mysql{SELECT username FROM users WHERE username = '${quote_mysql:${local_part:$2}}' \
                    AND password=(SELECT sha1('${quote_mysql:$3}')) AND active='Y'}{yes}{no}}
  server_prompts = :
  server_set_id = $2

auth_login:
  driver = plaintext
  public_name = LOGIN
  server_condition = ${lookup mysql{SELECT username FROM users WHERE username = '${quote_mysql:${local_part:$1}}' \
                    AND password=(SELECT sha1('${quote_mysql:$2}')) AND active='Y'}{yes}{no}}
  server_prompts = Username:: : Password::
  server_set_id = $1
Собственно минусы:
Не будут работать аутентификации spa(ntlm) Cram-md5 и может ещё какие.

Собственно хотел посоветоваться с народом, а надо ли хранить в базе критованные пароли?

В моём случае собираюсь сделать аутентификацию только через TLS.(Никто не знает как заставить использовать только TLS для аутентификации?) Чтобы не перехватывались пароли. Но в таком случае нафига они нужны криптованные/хэшированные?
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Хостинговая компания 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/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

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

Непрочитанное сообщение dikens3 » 2007-04-18 12:41:36

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

 Если вы хотите информировать о доступности AUTH лишь когда подключение зашифровано с использованием TLS, вы можете использовать тот факт, что значение этой опции раскрывается, установкой типа такой:

auth_advertise_hosts = ${if eq{$tls_cipher}{}{}{*}}

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

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

Непрочитанное сообщение Alex Keda » 2007-04-18 13:50:40

плюсы - можно спокойно хранить пароли в БД.
многие юзеры будут не в восторге, если узнают что их пароли лежат открытые.
Убей их всех! Бог потом рассортирует...

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

Непрочитанное сообщение dikens3 » 2007-04-18 14:05:21

lissyara писал(а):плюсы - можно спокойно хранить пароли в БД.
многие юзеры будут не в восторге, если узнают что их пароли лежат открытые.
Мои тоже что-то вякали, пока я не показал как на компе выламываются все пароли практически из всех программ. Особенно BAT, OExpress, ICQ и т.п. хлам. Теперь молчат ибо нет такой проги из которой нельзя выломать пароль (на которых работают мои пользователи). Им теперь точно пофигу как лежат пароли на сервере(они не знают вобщем)

Ну украдут базу, она ведь нужна спамерам в первую очередь. А E-Mail'ы там открытые. В случае OpenRelay поменять пароли недолго. :-)
Если хэшировать ещё и логин, тогда неясно как ставить ограничения. Нифига ведь не знаешь для кого ставишь. :-(
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

binomics
проходил мимо
Сообщения: 3
Зарегистрирован: 2008-02-15 13:57:47

Re: Exim, Mysql + шифрованные пароли в базе.

Непрочитанное сообщение binomics » 2008-02-20 18:57:01

Господа, а не подскажите ли rак заставить authdaemond' при первой выборке из БД выбирать хешированный пароль. Пароли кладутся в базу как указано в первом посте.

Дебаг конфиг пишет нижеследующее:

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

Feb 19 11:10:20 SERVER courier-imap: Connection, ip=[1.1.1.1]
Feb 19 11:10:23 SERVER authdaemond: received auth request, service=pop3, authtype=login
Feb 19 11:10:23 SERVER authdaemond: authmysql: trying this module
Feb 19 11:10:23 SERVER authdaemond: Install of a character set for MySQL. SQL query: SET NAMES utf8
Feb 19 11:10:23 SERVER authdaemond: SQL query: SELECT `username`, "", `password`, 26, 6., CONCAT('/var/mail/exim/', `maildir`), CONCAT('/var/mail/exim/', `maildir`), quota, `name`, "" FROM `mailbox` WHERE `username` = "test@server.ru" AND (active='1')
Feb 19 11:10:23 SERVER authdaemond: supplied password '123' does not match clearpasswd '40bd001563085fc35165329ea1ff5c5ecbdbbeef'
Feb 19 11:10:23 SERVER authdaemond: authmysql: REJECT - try next module
Feb 19 11:10:23 SERVER authdaemond: FAIL, all modules rejected

binomics
проходил мимо
Сообщения: 3
Зарегистрирован: 2008-02-15 13:57:47

Re: Exim, Mysql + шифрованные пароли в базе.

Непрочитанное сообщение binomics » 2008-02-20 20:44:08

SORRY не совсем корректно сформулировал. Если я правильно понял, то authdaemond нужно заставить полученный пароль от клиента захешировать SHA-1 и сравнить с полученным хешем из базы.
Но вот сделать это не получается :(
В документации по authdaemond описана функция проверки, но лезть в исходники откровенно говоря не хочется. Есть жгучее желание обойтись "малой кровью".
Надеюсь на помощь.
Сервер настраивался по статье http://www.lissyara.su/?id=1175

binomics
проходил мимо
Сообщения: 3
Зарегистрирован: 2008-02-15 13:57:47

Re: Exim, Mysql + шифрованные пароли в базе.

Непрочитанное сообщение binomics » 2008-02-24 10:55:19

Вопрос снят, проблема решена внимательным вкуриванием доков и в конечном итоге установкой dovecot.