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은 메일을 다시 보내기 시작합니다 🙂