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что это мойистинныйошибка, и что-то еще идет не так, но я не работал серьезно с FTP-демоном около десяти лет и забыл большинство шагов по устранению неполадок.

(Я знаю, что настройка глобально устаревших протоколов, таких как FTP, в любом смысле является Плохой Идеей™, и мне следовало бы использовать буквально что угодно вместо этого, но я как минимум на две ступени дальше от любой позиции, где я могу внести такого рода изменения, так что это должен быть FTP.)

решение1

Проблема все еще была в PAM.

Документациятяжелопредполагает, что вы определенно хотите использовать системных пользователей на своем сервере, независимо от того, есть ли у вас виртуальные или нет, и будете настаивать на том, чтобы вы держали PAM включенным, что привело меня к мысли, что это было требованием для аутентификации вообще. Проблема в том, что аутентификация PAM — это «все или ничего»; то есть, если она включена, ваши виртуальные пользователи фактически игнорируются, и если их нет в базе данных пользователей системы, вам будет отказано в доступе, даже если все выровнено.

Если вы хотите запретить системным пользователям доступ к вашему FTP-серверу и имеете чисто виртуальную базу данных пользователей, вам необходимо установить AuthOrder именно так:

AuthOrder mod_auth_file.c

Связанный контент