Когда я пытаюсь подключиться к proftpd с поддержкой SSL, установленной на Freenas 8.3.0, я вижу вывод обратной связи с моим клиентом, в котором говорится, что AUTH TLS работает, соединение зашифровано (как подтверждено Wireshark), и все доходит до:
[2] MLSD
[2] 150 Opening ASCII mode data connection for MLSD
Через некоторое время ничего не происходит я получаю:
[2] 425 Unable to build data connection: Operation not permitted
Точно такая же конфигурация, за исключением директив, связанных с SSL (снятие флажка «Включить SSL» в графическом интерфейсе FreeNAS), работает отлично.
Это проблема обоих программ. В вашем журнале TLS для proftpd, вероятно, будет что-то вроде этого:
mod_tls/2.4.1[9592]: client did not reuse SSL session, rejecting data connection (see TLSOption NoSessionReuseRequired)
Итак, директива, необходимая для решения проблемы: TLSOptions NoSessionReuseRequired
. НО, вы не можете просто добавить это в директивы для добавления в файл conf в графическом интерфейсе FreeNAS, потому что внутренне он уже использует TLSOptions
директива и последующее использование этой директивы игнорируется (т.е. ваше добавление).
В будущей версии proftpd эта проблема будет решена за счет разрешения нескольких объявлений TLSOptions
. Либо графический интерфейс FreeNAS должен включать NoSessionReuseRequired
в его директивах Enabled SSL или добавьте флажок, если это не всегда желательно (требование повторного использования сеанса экономит ресурсы, поэтому, если все ваши клиенты его поддерживают, это предпочтительно).
А пока перейдите к /usr/local/etc/
и редактировать proftpd.conf
. Найдите строку:
TLSOptions NoCertRequest
и сделайте так:
TLSOptions NoCertRequest NoSessionReuseRequired
Я создал отчет об ошибке по этому поводу. Посмотрите здесь: https://bugs.freenas.org/issues/1910