FTP 带有 vsftpd 的服务器:正在配置 SSL/TLS

FTP server with vsftpd: configuring SSL/TLS

我正在 Raspberry Pi(OS : debian wheezy)上设置我自己的 FTP 服务器。我已经安装了 vsftpd,我想用 SSL/TLS 来保护它(它在禁用 ssl 时运行良好)。

[编辑了以下部分]

我按照这里的教程进行操作:http://crunchtools.com/vsftpd-ssl/。我尝试与 FileZilla 建立连接,但出现错误:

Status: Connecting to 192.168.1.17:21... Status: Connection established, waiting for welcome message...
Response: 220 (vsFTPd 2.3.5)
Command: AUTH TLS
Response: 234 Proceed with negotiation.
Status: Initializing TLS...
Error: Received TLS alert from the server: Handshake failed (40)
Error: Could not connect to server

我的 Raspberry Pi 和我的电脑在同一个局域网上:我输入了

ftpes://192.168.1.17 in the FTP field in FileZilla. This is the RaspPi local IP address.

一个解决方案可能是 sftp(它有效),但我不想为此使用 ssh 端口。

编辑:我尝试了 WinSCP,它成功了。所以问题来自FileZilla。我输入了以下命令来生成证书文件:
openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
它似乎是安全的。我正在查看 FileZilla 支持的加密算法。

谢谢

查看有关 difference between FTPS and FTPES 的描述(这适用于服务器和客户端)。我不知道 vsftpd,但它可能正在使用隐式 FTPS,因此在使用 FileZilla 时应在主机前加上 ftps://

如有疑问,请在 Raspberry Pi 上使用 netstat -a 并检查侦听端口及其绑定的接口。如果您有非标准设置,您也可以在 FileZilla 中提供一个显式端口。

如果 vsftpd 没有监听任何端口,请查看 Raspberry Pi 上的 /var/log/syslog。错误消息通常记录在那里。如果 vsftpd 有自己的日志文件,也请检查那个文件。

错误Received TLS alert from the server: Handshake failed (40) 表示FileZilla 和服务器无法就加密(算法and/or 强度)达成一致。 FileZilla 拒绝使用弱加密,因此必须更新服务器以使用强加密。在 FileZilla 中,您可以在设置中启用调试输出。然后您将看到服务器建议的算法列表。

changelog of FileZilla 包含有关此主题的一些提示:

  • 通过 TLS
  • 在 FTP 中禁用不安全的 RC4 算法
  • 在使用 FTP over TLS 以防止 Logjam 攻击时拒绝小于 1024 位的 Diffie-Hellman 组