핸드 셰이크 실패로 일부 연결을 거부하는 sendmail : SSL 경고 번호 40 오류가 발생합니다. $

CentOS 5의 sendmail 서버는 다음 메시지가 기록 된 상태에서 일부 연결을 거부하기 시작했습니다.

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

CentOS 6 서버에서 openssl을 사용하여 연결하려고하면 다음 오류가 발생합니다.

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

CentOS 6 서버의 메일은으로 일시적으로 거부됩니다 Deferred: 403 4.7.0 TLS handshake failed.

CentOS 6 / RHEL 6에서 CentOS6 / RHEL5 서버로 메일을 보내려면 어떻게해야합니까?



답변

CentOS 6에서 openssl을 최근에 업데이트 한 후이openssl-1.0.1e-30.el6.11.x86_64 라이브러리를 사용하는 프로그램이 Logjam TLS 취약점에 취약한 서버에 대한 연결을 거부하기 시작 했기 때문 입니다.

더 강력한 임시 Diffie–Hellman 키 (최소 1024 비트)를 사용하도록 sendmail을 구성해야합니다. TLS 인증서와 동일한 키가 아니므로 인증서가 2048 비트 키를 사용하는 경우 여전히 취약 할 수 있습니다.

서버에서 DH 매개 변수 파일을 생성하십시오.

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

이 매개 변수 파일을 사용하고 강력한 암호 만 사용하도록 sendmail을 구성하십시오. 추가 /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

그런 다음 make -C /etc/mail/및을 사용하십시오 service sendmail restart.


답변

예, 작동합니다 🙂

내 오류는 조금 다르지만 해결책은 동일합니다.

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

서버 임시 키를 생성합니다. DH 파일 (내 구성에는 없습니다. 기본값은 512 비트입니다)

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

(아주 오래 걸렸다)

sendmail에 줄을 넣습니다 .cf

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

다시 시작한 후 sendmail은 메일을 다시 보내기 시작합니다 🙂


답변