Exim & Dovecot & postfixadmin md5

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Odin41
проходил мимо
Сообщения: 6
Зарегистрирован: 2008-06-27 14:12:01

Exim & Dovecot & postfixadmin md5

Непрочитанное сообщение Odin41 » 2008-07-02 10:39:33

Прошло 2 недели и я сделал это!!! :Yahoo!:
Перебрал кучу конфигов, пересмотрел множество манов, но я нашел решение! (естественно столкнулся с новой проблемой, но кому счас легко? ).

Счас коротко опишу как я это мастрячил, будут вопросы пишите )

Во-первых:
Как оказалось постфиксадмин не поддерживает md5... пришлось немного исправить functions.inc.php в функцию pacrypt добавил строчки:

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

 
if ($CONF['encrypt'] == 'md5')
{
      $password = md5($pw);
}
затем указываем в конфиге постфикадмина (config.inc.php):

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

$CONF['encrypt'] = 'md5';
Этот фронт закрыт.

Во вторых:
Подправляем dovecot-sql.conf -- метод шифрования по умолчанию:

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

default_pass_scheme = PLAIN-MD5
Этот фронт тоже можно закрыть.

В третьих:
Это оказалось самое сложное... Мне пришлось перебрать кучу конфигов, но остановился на том которое спер у своего доброго друга cj_nik )) Прости брат :oops: В свое оправдание могу сказать: Ты меня кинул ( свалил на море и оставил меня один на один с этой проблеммой, а я верю твоим знаниям :cf:
Метод авторизации exim:

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

PLAIN:
    driver        = plaintext
    public_name   = PLAIN
 server_prompts             = :
    server_condition = ${if crypteq{$auth3}{${lookup mysql {SELECT DISTINCT `password` FROM `mailbox` WHERE \
    `username` = '${quote_mysql:$auth2}' AND `active`='1'}{\{md5\}$value}{*}}}{yes}{no}}
    server_set_id = $auth2
    server_advertise_condition = ${if def:tls_cipher }

LOGIN:
    driver           = plaintext
    public_name      = LOGIN
    server_set_id    = $auth1
    server_prompts   = <| Username: | Password:
    server_condition = ${if crypteq {$auth2}{${lookup mysql {SELECT DISTINCT `password` FROM `mailbox` WHERE \
    `username` = '${quote_mysql:$auth1}' AND `active`='1'}{\{md5\}$value}{*}}}{yes}{no}}
    server_advertise_condition = ${if def:tls_cipher }
Тут видно, что я просто добавил \{md5\}.

ЗЫ. За грамматику простите, за возможные ошибки тоже :roll: я сделал это 15 минут назад, так что кто подправит методы Лиса положите тут пожалуйста. А Лисяре... БОЛЬШОЕ СПАСИБО ЗА СТАТЬЮ! Давайте критику :evil:

ЗЫ. ЗЫ. Правда я еще tls включил, по необходимости к методу cj_nik да и мне по задаче требовалось. Безопасность однако!

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

Аватара пользователя
freeman
лейтенант
Сообщения: 734
Зарегистрирован: 2007-03-18 5:13:25

Re: Exim & Dovecot & postfixadmin md5

Непрочитанное сообщение freeman » 2008-07-07 16:04:08

А в клиентах то что указывать, в Бате например, что за PLAIN-MD5 ?
Остатся должен только один ...

cj_nik
рядовой
Сообщения: 11
Зарегистрирован: 2007-09-11 21:43:17

Re: Exim & Dovecot & postfixadmin md5

Непрочитанное сообщение cj_nik » 2008-07-07 18:27:24

Коль, чёт я тя не понял нифига, чё те не понравилось в политеховском серваке... и чем собсна md5 от md5crypt в постфиксадмине отличается?

>>А в клиентах то что указывать, в Бате например, что за PLAIN-MD5 ? <<
я так понимаю ничего кроме tls из за
server_advertise_condition = ${if def:tls_cipher }

Odin41
проходил мимо
Сообщения: 6
Зарегистрирован: 2008-06-27 14:12:01

Re: Exim & Dovecot & postfixadmin md5

Непрочитанное сообщение Odin41 » 2008-07-08 7:44:11

cj_nik писал(а):Коль, чёт я тя не понял нифига, чё те не понравилось в политеховском серваке... и чем собсна md5 от md5crypt в постфиксадмине отличается?

>>А в клиентах то что указывать, в Бате например, что за PLAIN-MD5 ? <<
я так понимаю ничего кроме tls из за
server_advertise_condition = ${if def:tls_cipher }
md5 от md5crypt отличается шифрованием. Ну мне лично потребовалось что бы данные хранились в базе в виде md5, пока искал как сделать понял что я не один ищу ответ.

Клиенты проходят авторизацию по методам PLAIN и LOGIN (нормальные клиенты сами определяют как работать с почтой :-D ) в данной конфигурации, но используют при этом tls. Я просто сделал md5 и переключился на другую задачу, но думаю можно подправить конфиг статьи Лиса и сделать с поддержкой md5 если кому нужно.

Проверял отправку и получение на Thunderbird и Microsoft Office Outlook 12, Roundcube.

Odin41
проходил мимо
Сообщения: 6
Зарегистрирован: 2008-06-27 14:12:01

Re: Exim & Dovecot & postfixadmin md5

Непрочитанное сообщение Odin41 » 2008-07-08 8:08:18

У себя в клиенте я указал в настройках smtp использовать имя (user@domain.ru) и пароль юзера и поставил при возможности использовать TLS. Это thunderbird, в бате давно триал кончился :oops:

cj_nik
рядовой
Сообщения: 11
Зарегистрирован: 2007-09-11 21:43:17

Re: Exim & Dovecot & postfixadmin md5

Непрочитанное сообщение cj_nik » 2008-07-08 11:55:25

Odin41 писал(а): md5 от md5crypt отличается шифрованием. Ну мне лично потребовалось что бы данные хранились в базе в виде md5, пока искал как сделать понял что я не один ищу ответ.
Коль, ну х.з конечно не углублялся, но смари, в политехе например пароль одного майилбокса
$1$5734224f$ygfkh4ebRDUOtxGZa0SDS.

читаем http://house.hcn-strela.ru/BSDCert/BSDA ... ter.passwd
>> Пароль qwerty в формате MD5 может выглядеть следующим образом: $1$UmWRc8Kh$WyHRN96T7vQ7nZP0ChVjc/. В данном примере пароль состоит из трёх полей, разделённых знаками $:

* $1$ — Указание на алгоритм шифрования MD5;
* UmWRc8Kh — «соль», которая добавляется к паролю при вычислении MD5 суммы (см. выше, описание DES).
* WyHRN96T7vQ7nZP0ChVjc/ — собственно зашифрованный пароль.
<<
Что на политехе как я понимаю и есть md5 шифрование.
Пакажи как утя пароль храниться! :evil:

Аватара пользователя
freeman
лейтенант
Сообщения: 734
Зарегистрирован: 2007-03-18 5:13:25

Re: Exim & Dovecot & postfixadmin md5

Непрочитанное сообщение freeman » 2008-07-08 16:29:04

Ясно, мне интереснее было бы хранить в открытом виде пароль, а передавать через MD5 APOP, что уберегло бы передачу вашего закрытого пароля открытым текстом по сети :-D Тут правда
ЗЫ. ЗЫ. Правда я еще tls включил
важный костыль ;)
Остатся должен только один ...

cj_nik
рядовой
Сообщения: 11
Зарегистрирован: 2007-09-11 21:43:17

Re: Exim & Dovecot & postfixadmin md5

Непрочитанное сообщение cj_nik » 2008-07-09 1:20:02

freeman писал(а):Ясно, мне интереснее было бы хранить в открытом виде пароль, а передавать через MD5 APOP, что уберегло бы передачу вашего закрытого пароля открытым текстом по сети :-D Тут правда
ЗЫ. ЗЫ. Правда я еще tls включил
важный костыль ;)
у себя включил принудительно tls
а так у Лисяры как раз такой способ (открытым способом) и описан, вроде как...

Odin41
проходил мимо
Сообщения: 6
Зарегистрирован: 2008-06-27 14:12:01

Re: Exim & Dovecot & postfixadmin md5

Непрочитанное сообщение Odin41 » 2008-07-09 9:23:14

cj_nik писал(а): Коль, ну х.з конечно не углублялся, но смари, в политехе например пароль одного майилбокса
$1$5734224f$ygfkh4ebRDUOtxGZa0SDS.

читаем http://house.hcn-strela.ru/BSDCert/BSDA ... ter.passwd
>> Пароль qwerty в формате MD5 может выглядеть следующим образом: $1$UmWRc8Kh$WyHRN96T7vQ7nZP0ChVjc/. В данном примере пароль состоит из трёх полей, разделённых знаками $:

* $1$ — Указание на алгоритм шифрования MD5;
* UmWRc8Kh — «соль», которая добавляется к паролю при вычислении MD5 суммы (см. выше, описание DES).
* WyHRN96T7vQ7nZP0ChVjc/ — собственно зашифрованный пароль.
<<
Что на политехе как я понимаю и есть md5 шифрование.
Пакажи как утя пароль храниться! :evil:
Согласен, метод шифрования MD5 оказался разнообразнее чем я думал, но так как вся задача сводилась к работе с базами mysql то там используется чистый md5 (http://dev.mysql.com/doc/refman/5.0/en/ ... nction_md5 пример с оффа). RFC 1321 который можно почитать тут http://www.2lib.ru/rfc/1321.html.
Затем работа с php (http://www.php.net/manual/en/function.md5.php пример). И сама матчасть (http://hack-expo.void.ru/groups/damage/txt/index9.htm кусок перевода на русском ) где интересное написано в самом последнем разделе. Тот пример который ты дал относится к файлу паролей и там используется

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

MD5 (Unix) - это цикл на тысячу вызовов стандартного MD5. В своё время авторы Unix решили немного изменить формат записи хэша, вследствие чего в нём появились символы "$", "." и "/"
. Но все, что я написал работает :cz2: По поводу остального: dovecot - PLAIN-MD5 ( http://wiki.dovecot.org/Authentication/PasswordSchemes), exim - md5 (используется или perl или php или mysql) совпадает с алгоритмом описанном в RFC 1321.

Вот еще интересное )

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

MD5-CRYPT: MD5 based salted password hash nowadays commonly used in /etc/shadow. (e.g. "pass" = $1$ozdpg0V0$0fb643pVsPtHVPX8mCZYW/)

    *MD5: Alias for MD5-CRYPT. Dovecot versions earlier than v1.0.rc16 need to use this instead of MD5-CRYPT. This name is deprecated because MD5-CRYPT isn't an actual MD5 hash.
Так что могу сказать, что я вроде не накосячил )

ЗЫ. Дружно благодарим гугле за предоставленную информацию ) Отправляю....

cj_nik
рядовой
Сообщения: 11
Зарегистрирован: 2007-09-11 21:43:17

Re: Exim & Dovecot & postfixadmin md5

Непрочитанное сообщение cj_nik » 2008-07-09 15:32:32

Odin41 писал(а): Согласен, метод шифрования MD5 оказался разнообразнее чем я думал, но так как вся задача сводилась к работе с базами mysql то там используется чистый md5 (http://dev.mysql.com/doc/refman/5.0/en/ ... nction_md5 пример с оффа). RFC 1321 который можно почитать тут http://www.2lib.ru/rfc/1321.html.
Затем работа с php (http://www.php.net/manual/en/function.md5.php пример). И сама матчасть (http://hack-expo.void.ru/groups/damage/txt/index9.htm кусок перевода на русском ) где интересное написано в самом последнем разделе. Тот пример который ты дал относится к файлу паролей и там используется

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

MD5 (Unix) - это цикл на тысячу вызовов стандартного MD5. В своё время авторы Unix решили немного изменить формат записи хэша, вследствие чего в нём появились символы "$", "." и "/"
. Но все, что я написал работает :cz2: По поводу остального: dovecot - PLAIN-MD5 ( http://wiki.dovecot.org/Authentication/PasswordSchemes), exim - md5 (используется или perl или php или mysql) совпадает с алгоритмом описанном в RFC 1321.

Вот еще интересное )

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

MD5-CRYPT: MD5 based salted password hash nowadays commonly used in /etc/shadow. (e.g. "pass" = $1$ozdpg0V0$0fb643pVsPtHVPX8mCZYW/)

    *MD5: Alias for MD5-CRYPT. Dovecot versions earlier than v1.0.rc16 need to use this instead of MD5-CRYPT. This name is deprecated because MD5-CRYPT isn't an actual MD5 hash.
Так что могу сказать, что я вроде не накосячил )

ЗЫ. Дружно благодарим гугле за предоставленную информацию ) Отправляю....
Угу, уел :evil:

SWR
проходил мимо
Сообщения: 5
Зарегистрирован: 2008-04-04 8:22:51

Re: Exim & Dovecot & postfixadmin md5

Непрочитанное сообщение SWR » 2008-07-12 16:32:28

Поставил по статье , но Dovecot отказывался читать из MySQL пока в dovecot-sql.conf не поставил default_pass_scheme = MD5, больше ни чего не подходило .Сейчас всё работает нормально pop и imap юзеры авторизируються и принимают почту без проблем, с Exim вообще проблем не было , с конфигом "содранным" у Lissyara завелось с пол пинка (FreeBSD 7.0 i386) :drinks:

Odin41
проходил мимо
Сообщения: 6
Зарегистрирован: 2008-06-27 14:12:01

Re: Exim & Dovecot & postfixadmin md5

Непрочитанное сообщение Odin41 » 2008-07-14 8:18:52

Я рад за тебя :roll:
Вопрос только такой если не трудно ... что у тебя прописано postfixadmin/config.inc.php:

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

$CONF['encrypt'] = ' ???????? ';
?

Да и не говорил я что не будет работать как у лиса ) Наоборот все замечательно работает, но мне (именно мне ) понадобилось что бы пароли были в чистом md5 в базе.

Кстати как я написал в первом посте, я заработал на этом лишнюю ошибку, так что подумайте надо ли вам это действительно )
Взято из коментов к статье:

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

-=N.K=-, 2008-02-05 в 19:54:54
Ага, всё то хорошо, тока вот Outlook твой md5 вообще не  понимает и фиг с него почту почитаешь;) Так что тока cleartext везде:)

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

Re: Exim & Dovecot & postfixadmin md5

Непрочитанное сообщение dikens3 » 2008-07-14 8:33:12

Да и не говорил я что не будет работать как у лиса ) Наоборот все замечательно работает, но мне (именно мне ) понадобилось что бы пароли были в чистом md5 в базе.
Один недостаток у твоего решения.

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

SWR
проходил мимо
Сообщения: 5
Зарегистрирован: 2008-04-04 8:22:51

Re: Exim & Dovecot & postfixadmin md5

Непрочитанное сообщение SWR » 2008-07-14 19:46:53

$CONF['encrypt'] = ' ?'
сейчас посмотреть не могу , завтра гляну , отпишусь.

SWR
проходил мимо
Сообщения: 5
Зарегистрирован: 2008-04-04 8:22:51

Re: Exim & Dovecot & postfixadmin md5

Непрочитанное сообщение SWR » 2008-07-15 8:24:14

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

// Encrypt
// In what way do you want the passwords to be crypted?
// md5crypt = internal postfix admin md5
// system = whatever you have set as your PHP system default
// cleartext = clear text passwords (ouch!)
$CONF['encrypt'] = 'cleartext';