sendmail rechaza algunas conexiones con falla de comunicación: alerta SSL número 40

8

Mi servidor sendmail en CentOS 5 comenzó a rechazar algunas conexiones con el siguiente mensaje registrado:

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

Cuando intento conectarme a él usando openssl del servidor CentOS 6, aparece el siguiente error:

$ 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
(...)

El correo en el servidor CentOS 6 se rechaza temporalmente con Deferred: 403 4.7.0 TLS handshake failed.

¿Qué hacer para poder enviar correo desde CentOS 6 / RHEL 6 al servidor CentOS6 / RHEL5?

Tometzky
fuente

Respuestas:

10

Esto se debe a que después de una actualización reciente de openssl en CentOS 6, los openssl-1.0.1e-30.el6.11.x86_64programas que usan esta biblioteca comenzaron a rechazar la conexión a servidores vulnerables a la vulnerabilidad TLS de Logjam .

Debe configurar sendmail para usar una clave temporal Diffie-Hellman más fuerte, al menos 1024 bits. No es la misma clave que usa en su certificado TLS, por lo que si su certificado usa una clave de 2048 bits, aún puede ser vulnerable.

Genere el archivo de parámetros DH en su servidor:

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

Configure sendmail para usar este archivo de parámetros y para usar solo cifrados fuertes. Añadir a /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

Luego usa make -C /etc/mail/y service sendmail restart.

Tometzky
fuente
+1 de mi parte - un buen trabajo y un salvavidas. ¡Gracias!
MadHatter
Para aclarar, ¿es el servidor emisor o receptor el que necesita realizar este cambio? ¿o ambos?
Joe
1
@ Joe recibiendo el lado. No estoy seguro de que todavía sea estrictamente necesario, ya que hay un nuevo paquete openssl para RHEL5 / CentOS5 lanzado ( openssl-0.9.8e-36.el5_11) que podría haber corregido este problema. Sin embargo, todavía se recomienda.
Tometzky
No esperaría que los parámetros DH de 1024 bits sean seguros por mucho más tiempo. Comience a usar parámetros de 2048 bits ahora.
Michael Hampton
Ok, eso puede arreglar el servidor, pero ¿cómo hago s_client STFU y me conecto de todos modos?
Ricky Beam
0

Si, funciona:-)

Mi error fue un poco diferente, pero la solución es la misma:

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

Genero clave temporal del servidor: archivo DH (no tengo ninguno en mi configuración, el valor predeterminado es 512bits)

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

(toma mucho, mucho tiempo ;-)

y puse una línea en sendmail.cf

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

Después de reiniciar mi sendmail comienza a enviar correos nuevamente :-)

zipp
fuente