即使密碼正確,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 配置中的 shell 檢查也是如此。它在 Docker 容器中運行,所以我沒有任何 PAM 日誌(如果我不使用系統用戶,我不應該需要它們,對嗎?文件和搜尋結果對此不清楚)。

我可以檢查其他錯誤訊息來源嗎?我不相信Login Incorrect是我的真的錯誤,還有其他問題,但我已經有大約十年沒有認真使用 FTP 守護程序了,而且我已經忘記了大部分故障排除步驟。

(我知道配置全域棄用的協定(如FTP)在任何意義上都是一個壞主意™,我應該使用其他任何協議來代替,但我距離可以進行此類更改的任何位置至少有兩度的距離,所以FTP一定是。

答案1

問題仍然是 PAM。

文件重重地假設您肯定想要在伺服器中使用系統用戶,無論您是否有虛擬用戶,並且會堅持啟用 PAM,這讓我相信這是進行身份驗證的必要條件。問題是,PAM 身份驗證是「全有或全無」;這意味著如果您啟用了它,您的虛擬用戶將被有效地忽略,如果他們不在系統用戶資料庫中,您將被拒絕訪問,即使一切都排隊。

如果您希望拒絕系統使用者存取您的 FTP 伺服器並擁有純虛擬使用者資料庫,則必須將 AuthOrder 設定為如下:

AuthOrder mod_auth_file.c

相關內容