我有proftpd
一个内置的新 Web 服务器。问题是我无法通过filezilla
FTP 客户端连接到它,因为它会给我一个错误
Status: Connection established, waiting for welcome message...
Response: 220 FTP Server ready.
Command: AUTH TLS
Response: 234 AUTH TLS successful
Status: Initializing TLS...
Error: Received TLS alert from the server: Handshake failed (40)
Error: Could not connect to server
我发现该错误对应的是proftpd日志/var/log/proftpd/tls.log/var/log/proftpd/tls.log
记录:
Jul 24 13:50:47 mod_tls/2.4.2[1572]: unable to accept TLS connection: protocol error:
(1) error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher
这意味着 ftp 客户端不支持服务器提供的任何加密算法。因此,连接失败。
我还发现了一个禁用、和密码TLSCipherSuite
的指令。/etc/proftpd.conf
ADH
DES
SSLv2
SSLv3
TLSCipherSuite ALL:!ADH:!DES:!SSLv2:!SSLv3
当我从指令中删除:!SSLv3
并重新启动服务器时,filezilla 连接没有任何问题。但启用它SSLv3
似乎不是一个好主意,因为它很容易受到攻击且不安全,根据http://disablessl3.com/
问题
所以我的问题是,我该怎么做才能proftpd
提供至少一个安全密码以便成功与filezilla
FTP 客户端进行协商?
补充说明
有一个类似的问题收到服务器的 TLS 警报:握手失败(40)这说明
仅使用普通 FTP(不安全)
但我希望连接是安全的,因此对我来说这个答案是不合适的。
附加说明 #2
可用密码列表:
[root@server ~]# openssl ciphers -v 'ALL:!ADH:!DES:!SSLv2:!SSLv3'
ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(256) Mac=AEAD
ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESGCM(256) Mac=AEAD
ECDHE-RSA-AES256-SHA384 TLSv1.2 Kx=ECDH Au=RSA Enc=AES(256) Mac=SHA384
ECDHE-ECDSA-AES256-SHA384 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AES(256) Mac=SHA384
DHE-DSS-AES256-GCM-SHA384 TLSv1.2 Kx=DH Au=DSS Enc=AESGCM(256) Mac=AEAD
DHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=DH Au=RSA Enc=AESGCM(256) Mac=AEAD
DHE-RSA-AES256-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AES(256) Mac=SHA256
DHE-DSS-AES256-SHA256 TLSv1.2 Kx=DH Au=DSS Enc=AES(256) Mac=SHA256
ECDH-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH/RSA Au=ECDH Enc=AESGCM(256) Mac=AEAD
ECDH-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH/ECDSA Au=ECDH Enc=AESGCM(256) Mac=AEAD
ECDH-RSA-AES256-SHA384 TLSv1.2 Kx=ECDH/RSA Au=ECDH Enc=AES(256) Mac=SHA384
ECDH-ECDSA-AES256-SHA384 TLSv1.2 Kx=ECDH/ECDSA Au=ECDH Enc=AES(256) Mac=SHA384
AES256-GCM-SHA384 TLSv1.2 Kx=RSA Au=RSA Enc=AESGCM(256) Mac=AEAD
AES256-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA256
ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(128) Mac=AEAD
ECDHE-ECDSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESGCM(128) Mac=AEAD
ECDHE-RSA-AES128-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AES(128) Mac=SHA256
ECDHE-ECDSA-AES128-SHA256 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AES(128) Mac=SHA256
DHE-DSS-AES128-GCM-SHA256 TLSv1.2 Kx=DH Au=DSS Enc=AESGCM(128) Mac=AEAD
DHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AESGCM(128) Mac=AEAD
DHE-RSA-AES128-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AES(128) Mac=SHA256
DHE-DSS-AES128-SHA256 TLSv1.2 Kx=DH Au=DSS Enc=AES(128) Mac=SHA256
ECDH-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH/RSA Au=ECDH Enc=AESGCM(128) Mac=AEAD
ECDH-ECDSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH/ECDSA Au=ECDH Enc=AESGCM(128) Mac=AEAD
ECDH-RSA-AES128-SHA256 TLSv1.2 Kx=ECDH/RSA Au=ECDH Enc=AES(128) Mac=SHA256
ECDH-ECDSA-AES128-SHA256 TLSv1.2 Kx=ECDH/ECDSA Au=ECDH Enc=AES(128) Mac=SHA256
AES128-GCM-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=AESGCM(128) Mac=AEAD
AES128-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA256
答案1
TLSProtocol
问题的根源是中缺少指令/etc/proftpd.conf
。默认值为TLSv1
,它阻止了 的使用TLSv1.2
。
我已经添加了
TLSProtocol TLSv1.2
至/etc/proftpd.conf
,重启了服务器,问题解决。
https://forum.filezilla-project.org/viewtopic.php?f=2&t=45829&p=157134#p157134 http://www.proftpd.org/docs/contrib/mod_tls.html#TLSProtocol
虽然它解决了我的问题,但也建议使用
TLSProtocol ALL -SSLv3
反而。
https://forum.filezilla-project.org/viewtopic.php?p=157135#p157135
答案2
假设您正在使用系统安装的 OpenSSL 库(例如 RedHat RPM 安装),您可以通过运行以下命令查看可用的密码:
openssl ciphers -v 'ALL:!ADH:!DES:!SSLv2:!SSLv3'
如果 filezilla 不支持 SSLv3/TLSv1(大致相当),那您就没那么幸运了,您应该看看是否有可用的更新版本。
可能存在另一种适合您工作负载的配置/密码套件设置,但在没有正确分析您的情况的要求的情况下从此论坛获取它是不可取的。