パスワードが正しいのに ProFTPd が「パスワードが間違っています」と表示

パスワードが正しいのに ProFTPd が「パスワードが間違っています」と表示

クライアントの要件を満たすために、仮想ユーザーを使用して ProFTPd を設定しようとしています。現在、ローカルでテストしており、仮想ユーザー ファイルにリストされているのは自分用のテスト ユーザーのみです (システム ユーザーは考慮しません)。

nicole:[secret redacted]:10001:10001::/srv/ftp/nicole:/bin/false

同じユーザー名とパスワードで接続しようとすると、 が表示されます530 Login Incorrect。 によって生成されたログにはproftpd -nd10情報がありません。

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無効になっており、PAM 構成のシェル チェックも無効になっています。これは Docker コンテナーで実行されているため、PAM ログはありません (システム ユーザーを使用していない場合は、ログは必要ないはずですよね? ドキュメントと検索結果ではこの点が明確ではありません)。

他に確認できるエラーメッセージソースはありますかLogin Incorrect真実エラーが発生し、何か他の問題が発生していますが、私は 10 年ほど FTP デーモンを本格的に使用しておらず、トラブルシューティングの手順のほとんどを忘れてしまいました。

(FTP のような世界的に非推奨のプロトコルを構成することは、いかなる意味においても「悪い考え」であり、代わりに文字通り他のものを使用する必要があることは承知していますが、私はそのような変更を行うことができる立場から少なくとも 2 段階離れているため、FTP を使用する必要があります。)

答え1

問題は依然として PAM でした。

ドキュメント重く仮想ユーザーの有無にかかわらず、サーバーでシステム ユーザーを必ず使用したいと想定し、PAM を有効にしておくことを要求します。そのため、認証を行うには PAM が必須であると私は考えます。問題は、PAM 認証が「すべてかゼロか」であることです。つまり、PAM を有効にすると、仮想ユーザーは事実上無視され、システム ユーザー データベースにない場合は、すべてが揃っていてもアクセスが拒否されます。

システム ユーザーによる FTP サーバーへのアクセスを拒否し、純粋に仮想的なユーザー データベースを使用する場合は、AuthOrder を次のように設定する必要があります。

AuthOrder mod_auth_file.c

関連情報