sendmail이 핸드셰이크 실패로 인해 일부 연결을 거부함: SSL 경고 번호 40

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 서버로 메일을 보내려면 어떻게 해야 합니까?

답변1

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

답변2

네, 작동합니다:-)

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

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이 메일을 다시 보내기 시작합니다.:-)

관련 정보