Добрый день!
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