1

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

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

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

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

2 ответа2

3

Корень проблемы заключался в отсутствии директивы 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 (примерно эквивалентно), вам не повезло, и вам следует поискать обновленную версию, которая это делает.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .