Утилита ftpasswd
которая сопровождает ProFTPD, генерирует хэши паролей, которые приемлемы для функции crypt(3)
базовой библиотеки C. Так что не ProFTPD, по сути, использует хеши паролей MD5 (или DES, или что-то еще); это ProFTPD, использующий функцию crypt(3)
.
В других версиях Unix/Linux функция crypt(3)
может поддерживать различные алгоритмы хеширования (например, DES, MD5, Blowfish, даже SHA-256/SHA-512), идентифицируемые первыми частями сгенерированного хэша. Таким образом, префикс "$1$..."
может указывать хэшированное значение DES, "$2$...
для MD5 и т. Д.». Однако не каждый вариант Unix поддерживает этот синтаксис; похоже, что функция MacOSX crypt(3)
этого не делает.
ftpasswd
вызывает crypt(3)
и проверяет возвращаемое значение хеша. Если был использован параметр командной строки --md5
(таким образом запрашивались значения хеш-функции MD5), и возвращаемое значение хеш-функции не начинается с "$2$..."
, то ftpasswd
указывает, что платформа не поддерживает хешированные пароли MD5. Добавление такой поддержки включает библиотеку C и, возможно, другие фундаментальные библиотеки; таким образом, это не простая задача.
Альтернативы, включая использование базы данных SQL для вашей пользовательской базы данных (через модуль mod_sql
); модуль mod_sql_passwd
в ProFTPD позволяет использовать целый ряд алгоритмов / функций хеширования паролей.
Кроме того, вам, вероятно, не следует использовать пароль по умолчанию в вашем proftpd.conf
; такие вещи могут слишком легко вытечь. Я настоятельно рекомендую вам использовать что-то вроде mod_sql
, или даже отдельный AuthUserFile
, или что-то еще.
Надеюсь это поможет!
Полный отказ от ответственности: я являюсь автором ProFTPD и модуля mod_sql_passwd
.