URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 93522
[ Назад ]

Исходное сообщение
"proftpd и пароли с /etc/shadow в mysql"

Отправлено s90 , 28-Июн-12 19:02 
Появилась задача мигрировать пользователей 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 и пароли с /etc/shadow в mysql"
Отправлено LSTemp , 30-Июн-12 00:21 
> Появилась задача мигрировать пользователей 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


"proftpd и пароли с /etc/shadow в mysql"
Отправлено anonymous , 30-Июн-12 10:12 
>[оверквотинг удален]
> явно разные форматы шифрования одного и того же алгоритма.
> прочитайте про md5 (обратите внимание на $1$ в паролях  - ключевое
> слово 'salt' - поищите упираясь на это). пароли в мускуле храните
> в бинарном (или аналогичном) виде, что исключит обрезание концевых пробелов/etc в
> паролях. Man Вам в помощь (мб man crypt? пишу на вскидку
> - нет времени).
> PS
> ОС, мускул, профтп - версии.
> PSS
> http://www.proftpd.org/docs/contrib/mod_sql_passwd.html

man 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 и пароли с /etc/shadow в mysql"
Отправлено s90 , 02-Июл-12 11:20 
спасибо за советы
перечитал много всего, но не судьба с proftpd
зато без всяких проблем работает с pure-ftpd

"proftpd и пароли с /etc/shadow в mysql"
Отправлено LSTemp , 03-Июл-12 03:38 
> спасибо за советы
> перечитал много всего, но не судьба с proftpd
> зато без всяких проблем работает с pure-ftpd

значит плохо читали.

все, что Вам надо - это настроить хранение/запрос паролей в  одном формате для все нужных сервисов. иногда доки помогают, иногда простой перебор модулей аутентификации, иногда просто PAM ).

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



"proftpd и пароли с /etc/shadow в mysql"
Отправлено LSTemp , 03-Июл-12 03:18 
>[оверквотинг удален]
> явно разные форматы шифрования одного и того же алгоритма.
> прочитайте про md5 (обратите внимание на $1$ в паролях  - ключевое
> слово 'salt' - поищите упираясь на это). пароли в мускуле храните
> в бинарном (или аналогичном) виде, что исключит обрезание концевых пробелов/etc в
> паролях. Man Вам в помощь (мб man crypt? пишу на вскидку
> - нет времени).
> PS
> ОС, мускул, профтп - версии.
> PSS
> http://www.proftpd.org/docs/contrib/mod_sql_passwd.html

http://proftpd.org/docs/directives/linked/config_ref_SQLAuth...

SQLAuthTypes

Name
SQLAuthTypes -- Specify the allowed authentication types and their check order
Synopsis

SQLAuthTypes [ [OpenSSL]] [ [Crypt]] [ [Backend]] [ [Plaintext]] [ [Empty]]

Default
    none
Context
    server config, <Global>, <VirtualHost>
Module
    mod_sql
Compatibility
    1.2.0 and later

Description
...
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}"
...



"proftpd и пароли с /etc/shadow в mysql"
Отправлено s90 , 03-Июл-12 11:11 
> Crypt
> Allows passwords in the database to be of Unix crypt(3) form.
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> ...

SQLAuthTypes Crypt
как я уже писал, это не работает с паролями вида '$1$KN3z4N1N$wbkjzxaINVrA6WEgtyjjW.', хоть везде и пишут что должно, проверял с двумя разными версиями proftpd, ось freebsd
насчет дебага - пароли для сравнения выдавались только модулем mod_sql_passwd


"proftpd и пароли с /etc/shadow в mysql"
Отправлено LSTemp , 05-Июл-12 02:40 
>> 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

это просто смешно.



"proftpd и пароли с /etc/shadow в mysql"
Отправлено s90 , 05-Июл-12 10:38 
много слов, просто приведите пример работающего конфига



"proftpd и пароли с /etc/shadow в mysql"
Отправлено LSTemp , 05-Июл-12 20:42 
> много слов, просто приведите пример работающего конфига

Вы меня убиваете. Совсем не читаете, что Вам говорят? ЭТО ВЫ НЕ ДАЛИ НИКАКИХ ДАННЫХ для решения Вашего же вопроса. Именно от вас словоблудие идет.

Покажите хотя бы с подключением каких shared object собраны Ваши сервисы для начала (я уже не заикаюсь про конфиги).


"proftpd и пароли с /etc/shadow в mysql"
Отправлено LSTemp , 05-Июл-12 21:07 
>> Crypt
>> Allows passwords in the database to be of Unix crypt(3) form.
>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>> ...
> SQLAuthTypes Crypt
> как я уже писал, это не работает с паролями вида '$1$KN3z4N1N$wbkjzxaINVrA6WEgtyjjW.',
> хоть везде и пишут что должно, проверял с двумя разными версиями
> proftpd, ось freebsd

Вы наверное полный лось, если даже выдержку из мануала, что Вам напечатали, осилить не смогли.

> насчет дебага - пароли для сравнения выдавались только модулем mod_sql_passwd


"proftpd и пароли с /etc/shadow в mysql"
Отправлено s90 , 06-Июл-12 10:46 
мне кажется, что тему давно пора закрыть
даже если proftpd и поддерживает shadow пароли, pure-ftpd сделал это без лишних телодвижений
может как-нибудь по свободе попробую реализовать на proftpd