sendmail lehnt einige Verbindungen mit Handshake-Fehler ab: SSL-Warnnummer 40

8

Mein sendmail-Server unter CentOS 5 hat begonnen, einige Verbindungen mit der folgenden protokollierten Nachricht abzulehnen:

error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:s3_pkt.c:1092:SSL alert number 40

Wenn ich versuche, mit openssl vom CentOS 6-Server aus eine Verbindung herzustellen, wird folgende Fehlermeldung angezeigt:

$ openssl s_client -starttls smtp -crlf -connect hostname.example.net:smtp
(...)
error:14082174:SSL routines:SSL3_CHECK_CERT_AND_ALGORITHM:dh key too small:s3_clnt.c:3331
(...)
Server Temp Key: DH, 512 bits
(...)

Mail auf dem CentOS 6-Server wird mit vorübergehend abgelehnt Deferred: 403 4.7.0 TLS handshake failed.

Was tun, um E-Mails von CentOS 6 / RHEL 6 an den CentOS6 / RHEL5-Server senden zu können?

Tometzky
quelle

Antworten:

10

Dies liegt daran openssl-1.0.1e-30.el6.11.x86_64, dass Programme, die diese Bibliothek verwenden, nach einem kürzlich durchgeführten Update auf openssl unter CentOS 6 die Verbindung zu Servern verweigern, die für die Logjam TLS-Sicherheitsanfälligkeit anfällig sind.

Sie müssen sendmail so konfigurieren, dass ein stärkerer temporärer Diffie-Hellman-Schlüssel verwendet wird - mindestens 1024 Bit. Es ist nicht derselbe Schlüssel, den Sie in Ihrem TLS-Zertifikat verwenden. Wenn Ihr Zertifikat also einen 2048-Bit-Schlüssel verwendet, können Sie dennoch anfällig sein.

Generieren Sie eine DH-Parameterdatei auf Ihrem Server:

openssl dhparam -out /etc/pki/tls/certs/dhparams.pem 1024

Konfigurieren Sie sendmail so, dass diese Parameterdatei verwendet wird und nur starke Chiffren verwendet werden. Hinzufügen zu /etc/mail/sendmail.mc:

LOCAL_CONFIG
O CipherList=HIGH:!ADH
O DHParameters=/etc/pki/tls/certs/dhparams.pem
O ServerSSLOptions=+SSL_OP_NO_SSLv2 +SSL_OP_NO_SSLv3 +SSL_OP_CIPHER_SERVER_PREFERENCE
O ClientSSLOptions=+SSL_OP_NO_SSLv2 +SSL_OP_NO_SSLv3

Dann benutze make -C /etc/mail/und service sendmail restart.

Tometzky
quelle
+1 von mir - ein schönes Stück Arbeit und ein Lebensretter. Vielen Dank!
MadHatter
Ist es zur Verdeutlichung der sendende oder empfangende Server, auf dem diese Änderung vorgenommen werden muss? oder beides?
Joe
1
@ Joe Empfangsseite. Ich bin mir nicht sicher, ob dies weiterhin unbedingt erforderlich ist, da für RHEL5 / CentOS5 ein neues openssl-Paket veröffentlicht wurde ( openssl-0.9.8e-36.el5_11), das dieses Problem möglicherweise behoben hat. Es wird trotzdem empfohlen.
Tometzky
Ich würde nicht erwarten, dass 1024-Bit-DH-Parameter viel länger sicher sind. Beginnen Sie jetzt mit der Verwendung von 2048-Bit-Parametern.
Michael Hampton
Ok, das kann den Server reparieren, aber wie mache ich s_client STFU und verbinde mich trotzdem?
Ricky Beam
0

Ja es funktioniert:-)

Mein Fehler war wenig anders, aber die Lösung ist dieselbe:

SSL routines:SSL3_READ_BYTES:sslv3 alert illegal parameter:s3_pkt.c:1060:SSL alert number 47

Ich generiere einen temporären Serverschlüssel: DH-Datei (Ich habe keine in meiner Konfiguration, Standard ist 512 Bit)

openssl dhparam -out /etc/mail/certs/dhparams.pem 2048

(sehr, sehr lange dauern ;-)

und ich setze Zeile in die sendmail.cf

O DHParameters=/etc/mail/certs/dhparams.pem

Nach dem Neustart beginnt meine sendmail wieder Mails zu versenden :-)

zipp
quelle