Получено предупреждение TLS от сервера: сбой при установлении связи (40)

2386
user619271

У меня есть новый веб-сервер со proftpdвстроенным. Проблема в том, что я не могу подключиться к нему через filezillaFTP-клиент, потому что он выдает ошибку

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обеспечить хотя бы один безопасный шифр для успешного согласования с filezillaFTP-клиентом?

Дополнительное примечание

Есть похожий вопрос Получено предупреждение 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

2 ответа на вопрос

3
user619271

Корень проблемы был в отсутствии 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
Liam Dennehy

Предполагая, что вы используете системные библиотеки OpenSSL (например, вашу установку RedHat RPM), вы можете просмотреть доступные шифры, выполнив:

openssl ciphers -v 'ALL:!ADH:!DES:!SSLv2:!SSLv3'

Если filezilla просто не говорит по SSLv3 / TLSv1 (примерно эквивалентно), вам не повезло, и вам следует поискать обновленную версию, которая это делает.

Может быть другой параметр конфигурации / конфигурации ciphersuite, который подходит для вашей рабочей нагрузки, но не рекомендуется получать его с этого форума без должного анализа требований вашей ситуации.

Теперь вам нужно посмотреть, какие шифры и версии SSL / TLS поддерживаются вашим клиентом filezilla. Если хотя бы один из них не перекрывается, это никогда не сработает. Liam Dennehy 6 лет назад 1

Похожие вопросы