Otrzymano alert TLS z serwera: Niepowodzenie uzgadniania (40)

1

Mam nowy serwer WWW z proftpdwbudowanym. Problem polega na tym, że nie mogę się z nim połączyć przez filezillaklienta FTP, ponieważ powoduje to błąd

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

Odkryłem, że błąd odpowiada /var/log/proftpd/tls.log/var/log/proftpd/tls.logrekordowi dziennika proftpd :

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

Co oznacza, że ​​klient ftp nie obsługuje żadnego z algorytmów szyfrowania zaproponowanych przez serwer. W rezultacie połączenie nie działa.

Mam również znalazł TLSCipherSuitedyrektywa /etc/proftpd.conf, która wyłącza ADH, DES, SSLv2i SSLv3szyfry.

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

Po usunięciu :!SSLv3z dyrektywy i ponownym uruchomieniu serwera filezilla łączy się bez żadnych problemów. Ale włączenie SSLv3wydaje się złym pomysłem, ponieważ jest podatne na zagrożenia i niepewne, zgodnie z http://disablessl3.com/

Pytanie

Więc moje pytanie brzmi: co mogę zrobić, aby proftpdzapewnić przynajmniej jeden bezpieczny szyfr, aby pomyślnie negocjować z filezillaklientem FTP?

Uwaga dodatkowa

Jest to podobne pytanie Recieved TLS alert z serwera: Uzgadnianie nie powiodło się (40) , który mówi

Używaj tylko zwykłego FTP (niepewne)

ale chcę, aby połączenie było bezpieczne, dlatego odpowiedź jest dla mnie nieodpowiednia.

Uwaga dodatkowa # 2

Lista dostępnych szyfrów:

[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
użytkownik619271
źródło

Odpowiedzi:

3

Źródłem problemu był brak TLSProtocoldyrektywy w /etc/proftpd.conf. Wartością domyślną jest TLSv1i uniemożliwia użycie TLSv1.2.

dodałem

  TLSProtocol                   TLSv1.2

do /etc/proftpd.conf, ponownie uruchomiony serwer i problem został rozwiązany.

https://forum.filezilla-project.org/viewtopic.php?f=2&t=45829&p=157134#p157134 http://www.proftpd.org/docs/contrib/mod_tls.html#TLSProtocol

Chociaż rozwiązało to moją sprawę, zaleca się również użycie

  TLSProtocol                   ALL -SSLv3

zamiast.

https://forum.filezilla-project.org/viewtopic.php?p=157135#p157135

użytkownik619271
źródło
2

Zakładając, że używasz zainstalowanych w systemie bibliotek OpenSSL (np. Instalacji RedHat RPM), możesz wyświetlić dostępne szyfry, uruchamiając:

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

Jeśli filezilla po prostu nie mówi SSLv3 / TLSv1 (mniej więcej odpowiednik), nie masz szczęścia i powinieneś sprawdzić, czy dostępna jest zaktualizowana wersja, która to robi.

Może istnieć inne ustawienie konfiguracji / szyfrowania, które jest odpowiednie dla twojego obciążenia, ale uzyskanie go z tego forum bez odpowiedniej analizy wymagań twojej sytuacji nie jest wskazane.

Liam Dennehy
źródło
1
Teraz musisz sprawdzić, które szyfry i wersje SSL / TLS są obsługiwane przez klienta filezilla. Jeśli nie ma co najmniej jednego nakładającego się, to nigdy nie zadziała.
Liam Dennehy