Proftpd TLSRequired приводит к ошибке “550 требуется SSL/TLS на канале данных”

Вопрос или проблема

При установке TLSRequired в on вместо off в моем proftp tls.conf, я всегда получаю

550 SSL/TLS required on the data channel

ошибку при попытке подключения. Я пробовал как с filezilla, так и с winscp, и версиями proftpd 1.3.3a и 1.3.4a

Вот мой файл tls.conf:

<IfModule mod_tls.c>
TLSEngine                               on
TLSProtocol                             SSLv23 TLSv1
TLSRSACertificateFile                   /etc/ssl/private/cert.crt
TLSRSACertificateKeyFile                /etc/ssl/private/cert.key
TLSVerifyClient                         off
TLSRequired                             on
</IfModule>

Ошибка возникает после выполнения команды FTP-LIST. Вот краткий отрывок из отладочного лога в filezilla:

Command:    PASV
Trace:  CFtpControlSocket::OnReceive()
Response:   227 Entering Passive Mode (78,46,187,75,208,71).
Trace:  CFtpControlSocket::TransferParseResponse()
Trace:  CFtpControlSocket::SendNextCommand()
Trace:  CFtpControlSocket::TransferSend()
Command:    LIST
Trace:  CFtpControlSocket::OnReceive()
Response:   550 SSL/TLS required on the data channel
Trace:  CFtpControlSocket::TransferParseResponse()
Trace:  CFtpControlSocket::ResetOperation(2)
Trace:  CControlSocket::ResetOperation(2)
Trace:  CFtpControlSocket::ParseSubcommandResult(2)
Trace:  CFtpControlSocket::ListSubcommandResult()
Trace:  CFtpControlSocket::ResetOperation(2)
Trace:  CControlSocket::ResetOperation(2)
Error:  Directory listing could not be retrieved

Недавно я столкнулся с аналогичной проблемой, но не с filezilla. Когда я использую “Filezilla” в качестве FTP-клиента, все было хорошо. Но по какой-то причине внутренний FTP-клиент phpstorm имел вышеупомянутую проблему, он мог подключаться, но не мог вывести список каталога.

В proftpd.conf я использовал следующую конфигурацию, и теперь FTP-клиент phpstorm может подключаться к FTP-серверу. Однако для нижеследующей опции шифрование канала данных не требуется:

TLSRequired                    ctrl

Другим возможным решением может быть установка FTP-соединения в режим “пассивного”, поскольку это проблема со сложением каталога.

Для тех, кто сейчас сталкивается с этой проблемой, с ProFTPD и FTPS-клиентами, такими как FileZilla и WinSCP, аналогичное обсуждение было зарегистрировано на форумах ProFTPD здесь.

Коренной причиной было то, что в другом месте в proftpd.conf @Zulakis была секция <Limit>, охватывающая команду FTP PROT. Команда PROT является частью FTPS и используется клиентами FTPS для информирования сервера о том, чтобы защитить запрашиваемую передачу данных. Если секция <Limit> в proftpd.conf говорила ProFTPD отклонять эту команду PROT, но политика TLS, настроенная через TLSRequired, заявляла, что SSL/TLS защита была обязательной для передачи данных, это бы привело к вышеупомянутой ошибке, сообщаемой клиенту.

Для решения этой проблемы была подана и исправлена ошибка ProFTPD Bug#3887, начиная с ProFTPD 1.3.4c (и ProFTPD 1.3.5).

Надеюсь, это поможет!

Ответ или решение

Ошибка "550 SSL/TLS required on the data channel" при использовании ProFTPD с установленным параметром TLSRequired

Ошибка "550 SSL/TLS required on the data channel" при попытке использовать FTP-клиент после установки параметра TLSRequired в конфигурации ProFTPD может быть результатом нескольких факторов. Давайте подробно рассмотрим эту проблему и возможные решения.

Описание ситуации

Вы столкнулись с ошибкой после перехода от использования TLSRequired off к TLSRequired on в файле конфигурации tls.conf. Это изменение обязывает клиентов использовать защищенные каналы для передачи данных. Ошибка возникает в основном при выполнении команды LIST для получения списка директорий, как видно из логов FileZilla:

550 SSL/TLS required on the data channel

Анализ конфигурации TLS

Ваш файл tls.conf в настоящее время выглядит следующим образом:

<IfModule mod_tls.c>
TLSEngine                               on
TLSProtocol                             SSLv23 TLSv1
TLSRSACertificateFile                   /etc/ssl/private/cert.crt
TLSRSACertificateKeyFile                /etc/ssl/private/cert.key
TLSVerifyClient                         off
TLSRequired                             on
</IfModule>

Данная конфигурация активирует TLS, однако необходимо учитывать дополнительные настройки в основном файле proftpd.conf, которые могут конфликтавать с требованием защиты данных.

Проблема с PROT

Как упоминается в обсуждениях на форумах ProFTPD, одной из вероятных причин данной ошибки может быть наличие секции <Limit> в proftpd.conf, которая запрещает команду PROT. Эта команда служит для указания на необходимость защиты канала передачи данных. Если команда PROT отклоняется, но TLSRequired указывает на необходимость шифрования, это приведет к ошибке, которую вы наблюдаете.

Решения

  1. Измените конфигурацию PROT в proftpd.conf:
    Убедитесь, что в вашем конфигурационном файле отсутствуют ограничения на использование команды PROT. Если такие ограничения есть, их нужно убрать или изменить:

    <Limit PROT>
        AllowAll
    </Limit>
  2. Проверьте настройки режима передачи:
    Если вы используете PASV (пассивный режим), убедитесь, что ваш сервер правильно настроен для работы с этим режимом. Иногда ошибка может заключаться в том, что клиент FTP не может установить защищенное соединение для передачи данных.

  3. Обновление ProFTPD:
    Проверьте, какую версию ProFTPD вы используете. Если это версия 1.3.3a или 1.3.4a, возможно, следует обновить до более новой версии, где исправлены известные ошибки, такие как приведенная вами ссылка на Bug#3887.

  4. Настройка TLSRequired:
    Если проблема все еще не решена, вы можете временно установить TLSRequired ctrl и посмотреть, будет ли это работать как временное решение. Это позволит поддерживать шифрование для управления, но не для передачи данных.

Заключение

Ошибка "550 SSL/TLS required on the data channel" может возникать из-за нескольких конфигурационных нюансов в ProFTPD, особенно связанных с командами, управляющими защищенной передачей данных. Проверив настройки PROT, обновив ProFTPD и убедившись в правильной конфигурации TLS, вы сможете устранить эту проблему. Всегда стоит вести журнал изменений и тестировать каждую настройку, чтобы удостовериться в правильности работы сервера.

Оцените материал
Добавить комментарий

Капча загружается...