O utilitário ftpasswd
que acompanha o ProFTPD gera hashes de senha que são aceitáveis para a função crypt(3)
da biblioteca C subjacente. Portanto, não é o ProFTPD, per se , que está usando hashes de senha MD5 (ou DES, ou qualquer outra coisa); é o ProFTPD usando a função crypt(3)
.
Em outros tipos de Unix / Linux, a função crypt(3)
pode suportar diferentes algoritmos de hash (por exemplo, DES, MD5, Blowfish, até SHA-256 / SHA-512 ), identificados pelas primeiras partes do hash gerado. Portanto, um prefixo de "$1$..."
pode indicar um valor de hash DES, "$2$...
para MD5, etc . No entanto , nem toda variante Unix suporta esta sintaxe; Parece que a função MacOSX crypt(3)
não .
O ftpasswd
chama crypt(3)
e examina o valor de hash retornado. Se a opção de linha de comando --md5
foi usada (solicitando assim valores de hash MD5), e o valor de hash retornado não começa com "$2$..."
, então ftpasswd
indica que a plataforma não oferece suporte Senhas criptografadas MD5. Adicionar esse suporte envolve a biblioteca C e talvez outras bibliotecas fundamentais; não é, portanto, uma tarefa fácil.
Alternativas, incluindo o uso de um banco de dados SQL para o banco de dados do usuário (por meio do módulo mod_sql
); o módulo mod_sql_passwd
do ProFTPD permite uma grande variedade de algoritmos / funções de hash de senhas.
Além disso, você provavelmente deve não estar usando uma senha padrão no seu proftpd.conf
; essas coisas podem facilmente vazar. Eu recomendo strongmente que você use algo como mod_sql
, ou mesmo um AuthUserFile
separado, ou qualquer outra coisa.
Espero que isso ajude!
Aviso completo: Eu sou o autor do ProFTPD, e o módulo mod_sql_passwd
.