sendmail từ chối một số kết nối với lỗi bắt tay: Cảnh báo SSL số 40


8

Máy chủ sendmail của tôi trên CentOS 5 bắt đầu từ chối một số kết nối với thông báo sau được ghi lại:

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

Khi tôi cố gắng kết nối với nó bằng openssl từ máy chủ CentOS 6, tôi gặp lỗi sau:

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

Thư trên máy chủ CentOS 6 tạm thời bị từ chối Deferred: 403 4.7.0 TLS handshake failed.

Phải làm gì để có thể gửi thư từ máy chủ CentOS 6 / RHEL 6 đến máy chủ CentOS6 / RHEL5?

Câu trả lời:


10

Điều này là do sau khi cập nhật gần đây lên openssl trên CentOS 6 openssl-1.0.1e-30.el6.11.x86_64, các chương trình sử dụng thư viện này đã bắt đầu từ chối kết nối với các máy chủ dễ bị tổn thương với lỗ hổng TLS của Logjam .

Bạn cần định cấu hình sendmail để sử dụng khóa Diffie hay Hellman tạm thời mạnh hơn - ít nhất 1024 bit. Nó không phải là cùng một khóa mà bạn sử dụng trong chứng chỉ TLS của mình, vì vậy nếu chứng chỉ của bạn sử dụng khóa 2048 bit thì bạn vẫn có thể bị tổn thương.

Tạo tệp tham số DH trên máy chủ của bạn:

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

Định cấu hình sendmail để sử dụng tệp tham số này và chỉ sử dụng các mật mã mạnh. Thêm vào /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

Sau đó sử dụng make -C /etc/mail/service sendmail restart.


+1 từ tôi - một tác phẩm hay và cứu người. Cảm ơn!
MadHatter

Để làm rõ, đó có phải là máy chủ gửi hoặc nhận cần thay đổi này được thực hiện trên đó không? hoặc cả hai?
Joe

1
@Joe Bên nhận. Tôi không chắc chắn rằng nó vẫn được yêu cầu nghiêm ngặt, vì có một gói openssl mới cho RHEL5 / CentOS5 được phát hành ( openssl-0.9.8e-36.el5_11) có thể đã khắc phục vấn đề này. Nó vẫn được khuyến khích mặc dù.
Tometzky

Tôi sẽ không mong đợi các thông số DH 1024 bit sẽ an toàn lâu hơn nữa. Bắt đầu sử dụng thông số 2048 bit ngay bây giờ.
Michael Hampton

Ok, điều đó có thể sửa chữa máy chủ, nhưng làm cách nào để tạo s_client STFU và kết nối bằng mọi cách?
Ricky Beam

0

Có nó hoạt động:-)

Lỗi của tôi rất ít, nhưng giải pháp là như nhau:

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

Tôi tạo khóa tạm thời của máy chủ: Tệp DH (Tôi không có bất kỳ cấu hình nào, mặc định là 512 bit)

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

(mất rất nhiều thời gian ;-)

và tôi đặt dòng vào sendmail.cf

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

Sau khi khởi động lại, sendmail của tôi bắt đầu gửi thư lại :-)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.