
Estou tentando configurar o ProFTPd com usuários virtuais para atender aos requisitos do cliente. Atualmente, estou testando localmente e só tenho um usuário de teste listado no arquivo de usuário virtual (me recuso a considerar usuários do sistema):
nicole:[secret redacted]:10001:10001::/srv/ftp/nicole:/bin/false
Ao tentar me conectar com o mesmo nome de usuário e senha, recebo 530 Login Incorrect
. Os logs gerados por proftpd -nd10
não são informativos:
2024-01-15 19:02:12,618 108c14613dd6 proftpd[7] 108c14613dd6 (172.17.0.1[172.17.0.1]): mod_auth_file/1.0: using passwd file '...'
2024-01-15 19:02:12,618 108c14613dd6 proftpd[7] 108c14613dd6 (172.17.0.1[172.17.0.1]): retrieved UID 10001 for user 'nicole'
2024-01-15 19:02:12,618 108c14613dd6 proftpd[7] 108c14613dd6 (172.17.0.1[172.17.0.1]): no supplemental groups found for user 'nicole'
2024-01-15 19:02:12,618 108c14613dd6 proftpd[7] 108c14613dd6 (172.17.0.1[172.17.0.1]): ROOT PRIVS at mod_auth_pam.c:348
2024-01-15 19:02:14,265 108c14613dd6 proftpd[7] 108c14613dd6 (172.17.0.1[172.17.0.1]): RELINQUISH PRIVS at mod_auth_pam.c:582
2024-01-15 19:02:14,265 108c14613dd6 proftpd[7] 108c14613dd6 (172.17.0.1[172.17.0.1]): USER nicole (Login failed): Incorrect password
2024-01-15 19:02:14,265 108c14613dd6 proftpd[7] 108c14613dd6 (172.17.0.1[172.17.0.1]): dispatching POST_CMD_ERR command 'PASS (hidden)' to mod_exec
2024-01-15 19:02:14,265 108c14613dd6 proftpd[7] 108c14613dd6 (172.17.0.1[172.17.0.1]): dispatching POST_CMD_ERR command 'PASS (hidden)' to mod_shaper
2024-01-15 19:02:14,265 108c14613dd6 proftpd[7] 108c14613dd6 (172.17.0.1[172.17.0.1]): dispatching POST_CMD_ERR command 'PASS (hidden)' to mod_wrap2
2024-01-15 19:02:14,265 108c14613dd6 proftpd[7] 108c14613dd6 (172.17.0.1[172.17.0.1]): dispatching POST_CMD_ERR command 'PASS (hidden)' to mod_radius
2024-01-15 19:02:14,265 108c14613dd6 proftpd[7] 108c14613dd6 (172.17.0.1[172.17.0.1]): dispatching POST_CMD_ERR command 'PASS (hidden)' to mod_delay
2024-01-15 19:02:14,265 108c14613dd6 proftpd[7] 108c14613dd6 (172.17.0.1[172.17.0.1]): dispatching LOG_CMD_ERR command 'PASS (hidden)' to mod_log
2024-01-15 19:02:14,265 108c14613dd6 proftpd[7] 108c14613dd6 (172.17.0.1[172.17.0.1]): dispatching LOG_CMD_ERR command 'PASS (hidden)' to mod_delay
2024-01-15 19:02:14,265 108c14613dd6 proftpd[7] 108c14613dd6 (172.17.0.1[172.17.0.1]): dispatching LOG_CMD_ERR command 'PASS (hidden)' to mod_auth
2024-01-15 19:02:14,266 108c14613dd6 proftpd[7] 108c14613dd6 (172.17.0.1[172.17.0.1]): dispatching PRE_CMD command 'SYST' to mod_exec
2024-01-15 19:02:14,266 108c14613dd6 proftpd[7] 108c14613dd6 (172.17.0.1[172.17.0.1]): dispatching PRE_CMD command 'SYST' to mod_rewrite
2024-01-15 19:02:14,266 108c14613dd6 proftpd[7] 108c14613dd6 (172.17.0.1[172.17.0.1]): dispatching PRE_CMD command 'SYST' to mod_core
2024-01-15 19:02:14,266 108c14613dd6 proftpd[7] 108c14613dd6 (172.17.0.1[172.17.0.1]): dispatching PRE_CMD command 'SYST' to mod_core
2024-01-15 19:02:14,266 108c14613dd6 proftpd[7] 108c14613dd6 (172.17.0.1[172.17.0.1]): dispatching CMD command 'SYST' to mod_core
2024-01-15 19:02:14,266 108c14613dd6 proftpd[7] 108c14613dd6 (172.17.0.1[172.17.0.1]): dispatching POST_CMD command 'SYST' to mod_exec
2024-01-15 19:02:14,266 108c14613dd6 proftpd[7] 108c14613dd6 (172.17.0.1[172.17.0.1]): dispatching LOG_CMD command 'SYST' to mod_log
RequireValidShell
está desabilitado, assim como a verificação do shell na configuração do PAM. Isso está sendo executado em um contêiner Docker, então não tenho nenhum log PAM (não deveria precisar deles se não estiver usando um usuário do sistema, certo? A documentação e os resultados da pesquisa não são claros sobre isso).
Existe outra fonte de mensagens de erro que eu possa verificar? Eu não acredito Login Incorrect
que seja meuverdadeiroerro e algo mais está errado, mas não trabalho seriamente com um daemon FTP há cerca de dez anos e esqueci a maioria das etapas de solução de problemas.
(Estou ciente de que configurar protocolos globalmente obsoletos como FTP em qualquer sentido é uma Má Idéia™ e eu deveria usar literalmente qualquer outra coisa, mas estou pelo menos dois graus afastado de qualquer posição onde eu possa fazer esse tipo de mudança, então FTP deve ser.)
Responder1
O problema ainda era o PAM.
A documentaçãofortementeassume que você definitivamente deseja usar usuários do sistema em seu servidor, sejam eles virtuais ou não, e insistirá em manter o PAM habilitado, levando-me a acreditar que era um requisito para que a autenticação ocorresse. O problema é que a autenticação PAM é “tudo ou nada”; ou seja, se você o tiver ativado, seus usuários virtuais serão efetivamente ignorados e, se não estiverem no banco de dados de usuários do sistema, seu acesso será negado, mesmo que tudo esteja alinhado.
Se você deseja negar aos usuários do sistema acesso ao seu servidor FTP e possui um banco de dados de usuários puramente virtual, você deve definir seu AuthOrder exatamente assim:
AuthOrder mod_auth_file.c