当我尝试连接到安装在 Freenas 8.3.0 上的启用 SSL 的 proftpd 时,我看到我的客户端反馈输出表明 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 相关指令(在 FreeNAS GUI 中取消选中“启用 SSL”),即可完美运行。
答案1
这两个软件都存在这个问题。您的 proftpd TLS 日志可能会显示以下内容:
mod_tls/2.4.1[9592]: client did not reuse SSL session, rejecting data connection (see TLSOption NoSessionReuseRequired)
因此,解决该问题所需的指令是TLSOptions NoSessionReuseRequired
。但是,您不能简单地将其添加到要附加到 FreeNAS GUI 中的 conf 文件的指令中,因为内部它已经使用了TLSOptions
指令,并且该指令的后续使用将被忽略(即您的添加)。
proftpd 的未来版本将通过允许多个声明来解决此问题TLSOptions
。或者,FreeNAS GUI 需要NoSessionReuseRequired
在其 Enabled SSL 指令保护伞下包含或添加复选框(如果并不总是需要这样做的话)(要求会话重用可以节省资源,因此如果所有客户端都支持它,则最好这样做)。
与此同时,导航到/usr/local/etc/
并编辑proftpd.conf
。找到以下行:
TLSOptions NoCertRequest
并使其看起来像:
TLSOptions NoCertRequest NoSessionReuseRequired
我针对此事创建了一个错误报告。请在此处查看: https://bugs.freenas.org/issues/1910