У меня есть сервер под управлением CentOS 7.4, cPanel и Pure-FTPd 1.0.45. Я могу использовать FTP на этом сервере с одних хостов, но не с других.
Это не проблема брандмауэра, поскольку я могу видеть отклоненные попытки входа в систему в файле журнала. Я пробовал вариант совместимости со сломанными клиентами, а также отключил TLS, необязательно и обязательно. Ни одно из этих изменений не имеет положительного эффекта (требуется TLS, что еще хуже). Я не вижу способа, которым Pure-FTPd поддерживает черный или белый список IP-адресов, поэтому я не думаю, что проблема в этом.
Все предложения, которые я нашел через Googling, касаются пользователей FTP и оболочки, поврежденных баз данных паролей и т. Д., И это, очевидно, не проблема, поскольку он надежно работает с некоторых хостов.
Я набрал максимальное значение для регистрации Pure-FTPd (две строчки «VerboseLog yes»), но регистрируемая информация по-прежнему довольно минимальна и бесполезна. Вот разговоры об успешных и неудачных попытках:
(?@xxx.xxx.xxx.xxx) [INFO] New connection from xxx.xxx.xxx.xxx
(?@xxx.xxx.xxx.xxx) [DEBUG] 220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
(?@xxx.xxx.xxx.xxx) [DEBUG] 220-You are user number 1 of 50 allowed.
(?@xxx.xxx.xxx.xxx) [DEBUG] 220-Local time is now 16:43. Server port: 21.
(?@xxx.xxx.xxx.xxx) [DEBUG] 220-This is a private system - No anonymous login
(?@xxx.xxx.xxx.xxx) [DEBUG] 220-IPv6 connections are also welcome on this server.
(?@xxx.xxx.xxx.xxx) [DEBUG] 220 You will be disconnected after 15 minutes of inactivity.
(?@xxx.xxx.xxx.xxx) [DEBUG] Command [user] [me@mydomain.com]
(?@xxx.xxx.xxx.xxx) [DEBUG] 331 User me@mydomain.com OK. Password required
(?@xxx.xxx.xxx.xxx) [DEBUG] Command [pass] [<*>]
(?@xxx.xxx.xxx.xxx) [INFO] me@mydomain.com is now logged in
(me@mydomain.com@xxx.xxx.xxx.xxx) [DEBUG] 230 OK. Current restricted directory is /
(?@yyy.yyy.yyy.yyy) [INFO] New connection from yyy.yyy.yyy.yyy
(?@yyy.yyy.yyy.yyy) [DEBUG] 220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
(?@yyy.yyy.yyy.yyy) [DEBUG] 220-You are user number 1 of 50 allowed.
(?@yyy.yyy.yyy.yyy) [DEBUG] 220-Local time is now 16:45. Server port: 21.
(?@yyy.yyy.yyy.yyy) [DEBUG] 220-This is a private system - No anonymous login
(?@yyy.yyy.yyy.yyy) [DEBUG] 220-IPv6 connections are also welcome on this server.
(?@yyy.yyy.yyy.yyy) [DEBUG] 220 You will be disconnected after 15 minutes of inactivity.
(?@yyy.yyy.yyy.yyy) [DEBUG] Command [user] [me@mydomain.com]
(?@yyy.yyy.yyy.yyy) [DEBUG] 331 User me@mydomain.com OK. Password required
(?@yyy.yyy.yyy.yyy) [DEBUG] Command [pass] [<*>]
(?@yyy.yyy.yyy.yyy) [DEBUG] 530 Login authentication failed
(?@yyy.yyy.yyy.yyy) [WARNING] Authentication failed for user [me@mydomain.com]
Любые предложения о том, что еще посмотреть, очень ценятся. Мое лучшее предположение (основанное на относительном возрасте различных установок) заключается в том, что это может быть связано с различными версиями библиотеки OpenSSL на клиенте, но я не знаю, как проверить эту гипотезу. Простое обновление клиента до последней версии не является хорошим решением, поскольку новые установки не работают, а старые работают!
РЕДАКТИРОВАТЬ
Похоже, что cPanel использует собственный скрипт pureauth для аутентификации на Pure-FTPd. Я не могу найти много информации об этом, но я ничего не вижу в файлах конфигурации, которые я нашел об IP-адресах. cPanel вполне может использовать какую-то другую базу данных (не в смысле MySQL) для более централизованного управления заблокированными IP-адресами, но единственное, что я нашел до сих пор, - это их «IP Blocker», который ничего не блокирует.
Оказывается, виноват здесь cPHulk. Внесение рассматриваемого IP-адреса в белый список устранило проблему. Я думал, что cPHulk устарел в недавнем обновлении, поэтому не смотрел на это, но остановлено только хранение его данных в базе данных MySQL.