sendmail rejeitando algumas conexões com falha de handshake: número de alerta SSL 40

8

Meu servidor sendmail no CentOS 5 começou a rejeitar algumas conexões com a seguinte mensagem registrada:

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

Quando tento me conectar a ele usando o openssl no servidor CentOS 6, recebo o seguinte erro:

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

As mensagens no servidor CentOS 6 são temporariamente rejeitadas com Deferred: 403 4.7.0 TLS handshake failed.

O que fazer para poder enviar e-mails do CentOS 6 / RHEL 6 para o servidor CentOS6 / RHEL5?

Tometzky
fonte

Respostas:

10

Isso ocorre porque, após uma atualização recente do openssl no CentOS 6, os openssl-1.0.1e-30.el6.11.x86_64programas que usam essa biblioteca começaram a recusar a conexão com servidores vulneráveis ​​à vulnerabilidade do Logjam TLS.

Você precisa configurar o sendmail para usar uma chave Diffie – Hellman temporária mais forte - pelo menos 1024 bits. Não é a mesma chave que você usa no seu certificado TLS; portanto, se o seu certificado usa a chave de 2048 bits, você ainda pode estar vulnerável.

Gere o arquivo de parâmetros DH no seu servidor:

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

Configure o sendmail para usar esse arquivo de parâmetros e usar apenas cifras fortes. Adicionar 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

Então use make -C /etc/mail/e service sendmail restart.

Tometzky
fonte
+1 de mim - um bom trabalho e um salva-vidas. Obrigado!
MadHatter
Para esclarecimento, é o servidor de envio ou recebimento que precisa dessa alteração? ou ambos?
218 Joe Joe
1
@ Joe Recebendo lado. Não tenho certeza se ainda é estritamente necessário, pois há um novo pacote openssl para o RHEL5 / CentOS5 lançado ( openssl-0.9.8e-36.el5_11) que pode ter corrigido esse problema. Ainda é recomendado.
Tometzky
Eu não esperaria que os parâmetros DH de 1024 bits fossem seguros por muito mais tempo. Comece a usar os parâmetros de 2048 bits agora.
22415 Michael JacksonJul
Ok, isso pode consertar o servidor, mas como faço para conectar s_client STFU?
Ricky feixe
0

Sim, funciona :-)

Meu erro foi um pouco diferente, mas a solução é a mesma:

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

Gosto da chave temporária do servidor: arquivo DH (não tenho nenhum na minha configuração, o padrão é 512 bits)

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

(demora muito, muito tempo ;-)

e eu coloquei linha no sendmail.cf

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

Depois de reiniciar, o meu sendmail começa a enviar e-mails novamente :-)

zipp
fonte