Alerta TLS recebido do servidor: Falha no handshake (40)

1

Eu tenho um novo servidor web com proftpd onboard. O problema é que não consigo me conectar a ele através do cliente filezilla FTP porque isso me causa um erro

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

Descobri que o erro corresponde ao log proftpd log /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

O que significa que o cliente ftp não suporta nenhum dos algoritmos de criptografia propostos pelo servidor. Como resultado, a conexão falha.

Também encontrei uma diretiva TLSCipherSuite em /etc/proftpd.conf que desativa ADH , DES , SSLv2 e SSLv3 ciphers.

TLSCipherSuite                 ALL:!ADH:!DES:!SSLv2:!SSLv3

Quando eu removo :!SSLv3 da diretiva e reinicio o servidor, o filezilla se conecta sem problemas. Mas ativar SSLv3 parece ser uma má ideia porque é vulnerável e insegura, de acordo com o link

Pergunta

Então, minha pergunta é: o que posso fazer para que proftpd forneça pelo menos uma codificação segura para negociar com êxito com filezilla cliente FTP?

Nota adicional

Há uma pergunta semelhante alerta TLS recebido do servidor : Handshake falhou (40) que informa

Use only plain FTP (insecure)

mas quero que a conexão seja segura, assim a resposta para mim é inadequada.

Nota adicional # 2

Lista de cifras disponíveis:

[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
    
por user619271 24.07.2017 / 15:01

2 respostas

3

A raiz do problema foi a ausência da diretiva TLSProtocol em /etc/proftpd.conf . O valor padrão é TLSv1 e evita o uso de TLSv1.2 .

Eu adicionei

  TLSProtocol                   TLSv1.2

para /etc/proftpd.conf , reiniciou o servidor e o problema foi resolvido.

link link

Embora tenha resolvido o meu caso, também é recomendável usar

  TLSProtocol                   ALL -SSLv3

em vez disso.

link

    
por 24.07.2017 / 20:36
2

Supondo que você esteja usando as bibliotecas OpenSSL instaladas pelo sistema (por exemplo, a instalação do RedHat RPM), é possível visualizar as cifras disponíveis executando:

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

Se o filezilla simplesmente não fala SSLv3 / TLSv1 (aproximadamente equivalente), você está sem sorte e deve procurar se houver uma versão atualizada disponível.

Pode haver outra configuração / configuração de ciphersuite adequada à sua carga de trabalho, mas não é recomendável obtê-la deste fórum sem analisar adequadamente os requisitos da sua situação.

    
por 24.07.2017 / 16:51