Имею почтовый сервер: FC6, Postfix-2.4.6, MySQL-5.0, Cyrus-SASL-2.1.22 (из rpm: -sql, -plain, -md5, -lib, -devel), PostfixAdmin-2.1.0.
Всё настроил, работает нормально. Проблема возникла, когда захотел дать доступ к почтовику "мобильным" пользователям, т.е. извне.
Я так понял, что для этого нужно настроить авторизацию SMTP.На данном этапе проблема в том, что данная авторизация работает только, если в MySQL базе пароль внесен "как есть", т.е. в чистом виде. Но вся остальная связка использует криптованный (md5crypt) пароль.
Подскажите, пожалуйста, как мне поступить -- создать дополнительное поле с clear password (тогда вопрос, как его получить для уже существующих пользователей), или можно как-то "уговорить" Cyrus-SASL понимать то, что я уже имею, или любое другое приемлемое решение...
>[оверквотинг удален]
>Я так понял, что для этого нужно настроить авторизацию SMTP.
>
>На данном этапе проблема в том, что данная авторизация работает только, если
>в MySQL базе пароль внесен "как есть", т.е. в чистом виде.
>Но вся остальная связка использует криптованный (md5crypt) пароль.
>
>Подскажите, пожалуйста, как мне поступить -- создать дополнительное поле с clear password
>(тогда вопрос, как его получить для уже существующих пользователей), или можно
>как-то "уговорить" Cyrus-SASL понимать то, что я уже имею, или любое
>другое приемлемое решение...Настройте PAM. Он содержит модули для работы SASL с MySQL. Шифрованный пароль или не шифрованный - значения не имеет, ведь шифрование/дешифрацию производит движок MySQL при обращении к этому полю на запись/чтение соответственно. Смысл шифрации - закрыть от просмотра пароли при select-запросе сторонних пользователей.
>Настройте PAM. Он содержит модули для работы SASL с MySQL. Шифрованный пароль
>или не шифрованный - значения не имеет, ведь шифрование/дешифрацию производит движок
>MySQL при обращении к этому полю на запись/чтение соответственно. Смысл шифрации
>- закрыть от просмотра пароли при select-запросе сторонних пользователей.Но у меня всё работает без PAM! Cyrus-SASL обращается к MySQL самостоятельно и берет из указанного поля пароль, НО пропускает только если пароль в этом поле в чистом виде.
А у меня в этом поле пароль криптованный (создается PostfixAdmin'ом или уже созданные пользователи со старого почтовика, работающего под Qmail'ом)
Не заносите новые пароли копипастом из таблицы!!! :)
Там добавляется лишний символ....
>Не заносите новые пароли копипастом из таблицы!!! :)
>Там добавляется лишний символ....... а никто и не заносит -- их создает PostfixAdmin функцией (если глянуть в код) md5crypt()
>>Не заносите новые пароли копипастом из таблицы!!! :)
>>Там добавляется лишний символ....
>
>... а никто и не заносит -- их создает PostfixAdmin функцией (если
>глянуть в код) md5crypt()Да я так из личного опыта - только что нарвался правда у меня в LDAPе.... Кстати а как он его создает? - блаблабла или {MD5}блаблабла ???
>Да я так из личного опыта - только что нарвался правда у
>меня в LDAPе.... Кстати а как он его создает? - блаблабла
>или {MD5}блаблабла ???Если интересно:
function pacrypt ($pw,pw_db="")
{
global $CONF;
$password = "";
$salt = "";
if ($CONF['encrypt'] == 'md5crypt')
{
$split_salt = preg_split ('/\$/', $pw_db);
if (isset ($split_salt[2])) $salt = $split_salt[2];
$password = md5crypt ($pw, $salt);
}
if ($CONF['encrypt'] == 'system')
{
if (ereg ("\$1\$", $pw_db))
{
$split_salt = preg_split ('/\$/', $pw_db);
$salt = $split_salt[2];
}
else
{
$salt = substr ($pw_db, 0, 2);
}
$password = crypt ($pw, $salt);
}
if ($CONF['encrypt'] == 'cleartext')
{
$password = $pw;
}
return $password;
}
Так а по сути вопроса кто-нибудь ответит???
>Так а по сути вопроса кто-нибудь ответит???В общем, попроуйте вручную внести одну запись. Если сработает - значит скрипт вносит лишний символ. Когда я настраивал свой - мне попадались статьи с настройкой PAM. Все же советую почитать, хотя сам я сделал на bdb.
В логах mySQL что написано?
>>Так а по сути вопроса кто-нибудь ответит???
>у меня была такая же трудность.
решилось пересборкой rpm'а cyrus-sasl
с применением патча
http://netilium.org/~mad/cyrus-sasl-2.1.22-crypt.patchтогда в конфиге smtpd.conf
распознается слово
password_format: cryptпрошу доложить мне о результатах, помогло ли.
>[оверквотинг удален]
>
>решилось пересборкой rpm'а cyrus-sasl
>с применением патча
>http://netilium.org/~mad/cyrus-sasl-2.1.22-crypt.patch
>
>тогда в конфиге smtpd.conf
>распознается слово
>password_format: crypt
>
>прошу доложить мне о результатах, помогло ли.Да, я тоже так делал...
Уже почти полгода сервак работает!