LINUX.ORG.RU
ФорумAdmin

Авторизация в proftpd после вывода ENCRYPT в новом MySQL 8

 ,


0

1

Добрый день! Ubuntu 22.04.2 LTS mysql Ver 8.0.33-0ubuntu0.22.04.2 for Linux on x86_64 ((Ubuntu)) PHP Version 8.1.2-1ubuntu2.13 ProFTPD Version 1.3.7c В связи с тем, что в MySQL 8 пропал метод шифрования ENCRYPT, для proftpd предлагается использование MD5, SHA1 и т.д.. Но в mod_sql они не поддерживаются, для этого надо подключить mod_sql_passwd, т.к. он вышел позднее чем mod_sql. В старых версиях proftpd настройки хранились в одном proftpd.conf и там же подключались модули. В новых, модули подключаются в файле modules.conf и для mod_sql используется свой конфигурационный файл. Я раскомментировал в modules.conf строку LoadModule mod_sql_passwd.c для подключения его при загрузке. Написал файл конфигурации sql_passwd.conf

<IfModule mod_sql_passwd.c>
    SQLPasswordEngine on
    SQLPasswordMD5 on
    SQLPasswordSHA1 on
</IfModule>

В sql.conf исправил SQLAuthTypes с Crypt Plaintext на Crypt MD5 SHA1 Plaintext Потом

systemctl restart proftpd

Далее в MySQL

UPDATE `ftpuser` SET `passwd` = SHA1('password') WHERE `ftpuser`.`id` = 5;

Пробую подключиться

331 Необходим пароль для пользователя pwd_chk
Password:
530 Некорректные данные аутентификации.
ftp: Login failed

При этом на существующего пользователя с не шифрованным паролем ответ:

331 Необходим пароль для пользователя TechData
Password:
230 Пользователь TechData подключён
Remote system type is UNIX.
Using binary mode to transfer files.

Может где то что-то еще надо включать? В описании на mod_sql_passwd сказано, что необходимо включить поддержку OpenSSL.

NOTE: it is important that mod_sql_passwd appear after mod_sql in your --with-modules configure option:

$ ./configure --enable-openssl --with-modules=mod_sql:mod_sql_passwd ...

Then follow the usual steps:

$ make
 $ make install

Но мне не понятно в какой директории производить сборку? Или, при уже установленном и настроенном proftpd предлагается выполнить

$ prxs -c -i -d mod_sql_passwd.c

Но я не найду где находится mod_sql_passwd.c. Поиском находится только mod_sql_passwd.so в /usr/lib/proftpd

Достаточно давно mod_sql_passwd.c идёт вместе с исходниками proftpd, так что prxs и команды configure, make касались каталога с исходникаим proftpd.

Но, прежде чем компилить и инсталить бинарники, ломая при этом пакетый менеджер, включите TraceLog, включите ″Trace sql.passwd:20″ и посмотрите лог. Да и SQLLogFile включите/посмотрите.

Плюс, я не совсем понял, вроде mod_sql базово обращается к таблице users, откуда у вас ftpuser?

mky ★★★★★
()
Ответ на: комментарий от mky

Ну это, как пропишешь в конфиге. Я вот назвал ftpusers. Ну, а насчет компилить и инсталить, я уже понял, что всё уже сделано до нас. В этом нет необходимости. И как я понял файлы с расширением so, это уже скомпилированные и готовые к применению файлы.

Counsellor
() автор топика