Появилась задача мигрировать пользователей proftpd с pam на mysql
пароли в shadow вида $1$KN3z4N1N$wbkjzxaINVrA6WEgtyjjW.
если засунуть его в бд, то никак не выходит авторизоваться
гугл рекомендует использовать
SQLAuthTypes Crypt
но это не решает проблему
если использовать mod_sql_passwd и включенный debug, то
mod_sql_passwd/0.4: expected '$1$KN3z4N1N$wbkjzxaINVrA6WEgtyjjW.', got '7746f21c37653b6aff0ef9bc69c00e7e'md5 хеш из shadow содержит 22 символа, а генеренный proftpd - 32
никто не сталкивался с похожей проблемой ?
> Появилась задача мигрировать пользователей proftpd с pam на mysql
> пароли в shadow вида $1$KN3z4N1N$wbkjzxaINVrA6WEgtyjjW.
> если засунуть его в бд, то никак не выходит авторизоваться
> гугл рекомендует использовать
> SQLAuthTypes Crypt
> но это не решает проблему
> если использовать mod_sql_passwd и включенный debug, то
> mod_sql_passwd/0.4: expected '$1$KN3z4N1N$wbkjzxaINVrA6WEgtyjjW.', got '7746f21c37653b6aff0ef9bc69c00e7e'
> md5 хеш из shadow содержит 22 символа, а генеренный proftpd - 32
> никто не сталкивался с похожей проблемой ?явно разные форматы шифрования одного и того же алгоритма.
прочитайте про md5 (обратите внимание на $1$ в паролях - ключевое слово 'salt' - поищите упираясь на это). пароли в мускуле храните в бинарном (или аналогичном) виде, что исключит обрезание концевых пробелов/etc в паролях. Man Вам в помощь (мб man crypt? пишу на вскидку - нет времени).
PS
ОС, мускул, профтп - версии.PSS
http://www.proftpd.org/docs/contrib/mod_sql_passwd.html
>[оверквотинг удален]
> явно разные форматы шифрования одного и того же алгоритма.
> прочитайте про md5 (обратите внимание на $1$ в паролях - ключевое
> слово 'salt' - поищите упираясь на это). пароли в мускуле храните
> в бинарном (или аналогичном) виде, что исключит обрезание концевых пробелов/etc в
> паролях. Man Вам в помощь (мб man crypt? пишу на вскидку
> - нет времени).
> PS
> ОС, мускул, профтп - версии.
> PSS
> http://www.proftpd.org/docs/contrib/mod_sql_passwd.htmlman 5 shadow
man 3 crypt:
ID | Method
─────────────────────────────────────────────────────────
1 | MD5
2a | Blowfish (not in mainline glibc; added in some
| Linux distributions)
5 | SHA-256 (since glibc 2.7)
6 | SHA-512 (since glibc 2.7)
спасибо за советы
перечитал много всего, но не судьба с proftpd
зато без всяких проблем работает с pure-ftpd
> спасибо за советы
> перечитал много всего, но не судьба с proftpd
> зато без всяких проблем работает с pure-ftpdзначит плохо читали.
все, что Вам надо - это настроить хранение/запрос паролей в одном формате для все нужных сервисов. иногда доки помогают, иногда простой перебор модулей аутентификации, иногда просто PAM ).
при включении отладочных опций в логах всегда видно какой пароль светится для сравнения с эталоном - даже чисто визуально нет никакой трудности определить отличие и попробовать другой модуль auth в софте.
>[оверквотинг удален]
> явно разные форматы шифрования одного и того же алгоритма.
> прочитайте про md5 (обратите внимание на $1$ в паролях - ключевое
> слово 'salt' - поищите упираясь на это). пароли в мускуле храните
> в бинарном (или аналогичном) виде, что исключит обрезание концевых пробелов/etc в
> паролях. Man Вам в помощь (мб man crypt? пишу на вскидку
> - нет времени).
> PS
> ОС, мускул, профтп - версии.
> PSS
> http://www.proftpd.org/docs/contrib/mod_sql_passwd.htmlhttp://proftpd.org/docs/directives/linked/config_ref_SQLAuth...
SQLAuthTypes
Name
SQLAuthTypes -- Specify the allowed authentication types and their check order
SynopsisSQLAuthTypes [ [OpenSSL]] [ [Crypt]] [ [Backend]] [ [Plaintext]] [ [Empty]]
Default
none
Context
server config, <Global>, <VirtualHost>
Module
mod_sql
Compatibility
1.2.0 and laterDescription
...
The SQLAuthTypes directive specifies which authentication method are to be allowed, and their order of use. You must specify at least one authentication method.The current supported authentication methods are:
...
Crypt
Allows passwords in the database to be of Unix crypt(3) form.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
идем:man 3 crypt
....
GNU EXTENSION
The glibc2 version of this function has the following additional fea-
tures. If salt is a character string starting with the three charac-
ters "$1$" followed by at most eight characters, and optionally termi-
nated by "$", then instead of using the DES machine, the glibc crypt
function uses an MD5-based algorithm, and outputs up to 34 bytes,
namely "$1$<string>$", where "<string>" stands for the up to 8 charac-
ters following "$1$" in the salt, followed by 22 bytes chosen from the
set [a-zA-Z0-9./]. The entire key is significant here (instead of only
the first 8 bytes).модули аутентификаци серверов обычно либо реализуют одну из версий (определяемую в процессе сборки из сырцов - к каким либам привяжутся), либо настраиваются . лично у меня для мускул/профтп/цирус(authlib, pop, imap)/постфих/поптоп все защибись работало (после сборки из сырцов). единая БД была пользователей была с разделением по доступу к сервисам и прочим критериям. точно помню что пароли в мускуле были в фомате glibc2 (читай MD5), как описано выше.
PS
даже какой-то старый мускул-скрипт для изменения паролей нашел - так что точно в MD5 все пароли лежали:....
msql="update Tbl set Password=ENCRYPT('${UsrPsw}', CONCAT('\$1\$', LEFT(UUID(), 8))) where
ID=${UsrID}"
...
> Crypt
> Allows passwords in the database to be of Unix crypt(3) form.
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> ...SQLAuthTypes Crypt
как я уже писал, это не работает с паролями вида '$1$KN3z4N1N$wbkjzxaINVrA6WEgtyjjW.', хоть везде и пишут что должно, проверял с двумя разными версиями proftpd, ось freebsd
насчет дебага - пароли для сравнения выдавались только модулем mod_sql_passwd
>> Crypt
>> Allows passwords in the database to be of Unix crypt(3) form.
>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>> ...
> SQLAuthTypes Crypt
> как я уже писал, это не работает с паролями вида '$1$KN3z4N1N$wbkjzxaINVrA6WEgtyjjW.',
> хоть везде и пишут что должно, проверял с двумя разными версиями
> proftpd, ось freebsdВы писали, что не работает.
а ldd кто отменял посмотреть с чем собрано?, кто отменял сбор исходников с одной и той же библиотекой? как crypt в glibc работает перевели? я Вам про salt с самого начала говорил:
"mod_sql_passwd/0.4: expected '$1$KN3z4N1N$wbkjzxaINVrA6WEgtyjjW.', got '7746f21c37653b6aff0ef9bc69c00e7e'"salt в got видите?
хочется все сразу из кармана готовое?
я уже выше сказал - все, что Вы хотели - возможно.
> насчет дебага - пароли для сравнения выдавались только модулем mod_sql_passwd
это просто смешно.
много слов, просто приведите пример работающего конфига
> много слов, просто приведите пример работающего конфигаВы меня убиваете. Совсем не читаете, что Вам говорят? ЭТО ВЫ НЕ ДАЛИ НИКАКИХ ДАННЫХ для решения Вашего же вопроса. Именно от вас словоблудие идет.
Покажите хотя бы с подключением каких shared object собраны Ваши сервисы для начала (я уже не заикаюсь про конфиги).
>> Crypt
>> Allows passwords in the database to be of Unix crypt(3) form.
>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>> ...
> SQLAuthTypes Crypt
> как я уже писал, это не работает с паролями вида '$1$KN3z4N1N$wbkjzxaINVrA6WEgtyjjW.',
> хоть везде и пишут что должно, проверял с двумя разными версиями
> proftpd, ось freebsdВы наверное полный лось, если даже выдержку из мануала, что Вам напечатали, осилить не смогли.
> насчет дебага - пароли для сравнения выдавались только модулем mod_sql_passwd
мне кажется, что тему давно пора закрыть
даже если proftpd и поддерживает shadow пароли, pure-ftpd сделал это без лишних телодвижений
может как-нибудь по свободе попробую реализовать на proftpd