У меня установлен ProFTPd, и я пытаюсь связать аутентификацию с аутентификацией удаленной базы данных. У меня все настроено правильно, кроме хеширования пароля. Хэши паролей создаются путем добавления текста md5
перед результатом хэша md5 пароля, соединенного с именем пользователя. Итак, в SQL мы можем воспроизвести пример этой схемы хеширования:
SELECT 'md5' || MD5('stimpy' || 'ren')
дает
md5995dab9d6bdcd572f6b4caaf5399417f
Это довольно просто. Что до сих пор было непросто, так это воспроизвести это хеширование в proftpd.conf
файл, используя параметры, доступные в mod_sql
и mod_sql_passwd
Я сейчас нахожусь в том месте, где копаюсь в исходном коде, чтобы посмотреть, смогу ли я реализовать что-то таким образом. Я надеюсь, что у кого-то есть идея получше!
После некоторых действительно глубоких поисков я вижу, что мне, вероятно, потребуется кодировать свой собственный SQLAuthType, но это будет не так уж плохо, поскольку в программе есть положения для добавления пользовательских схем аутентификации, что означает, что мне не придется изменить кодовую базу (уф!):
Вы можете использовать LDAP или Radius для аутентификации 1 или 100 компьютеров, и это значительно упростит администрирование.