sendmail отклоняет некоторые соединения при сбое рукопожатия: предупреждение SSL № 40


8

Мой сервер sendmail на CentOS 5 начал отклонять некоторые соединения со следующим зарегистрированным сообщением:

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

Когда я пытаюсь подключиться к нему с помощью openssl с сервера CentOS 6, я получаю следующую ошибку:

$ 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?

Ответы:


10

Это связано с тем, что после недавнего обновления openssl в CentOS 6 openssl-1.0.1e-30.el6.11.x86_64программы, использующие эту библиотеку, начали отказывать в подключении к серверам, уязвимым для уязвимости Logjam TLS.

Вам необходимо настроить sendmail для использования более сильного временного ключа Диффи-Хеллмана - не менее 1024 бит. Это не тот ключ, который вы используете в своем сертификате 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.


+1 от меня - хороший кусок работы и спасатель. Спасибо!
MadHatter

Для пояснения, является ли это отправляющим или получающим сервером, который нуждается в этом изменении на нем? или оба?
Джо

1
@Joe Приемная сторона. Я не уверен, что это все еще строго необходимо, так как выпущен новый пакет openssl для RHEL5 / CentOS5 ( openssl-0.9.8e-36.el5_11), который мог бы исправить эту проблему. Это все еще рекомендуется.
Томецкий

Я бы не ожидал, что 1024-битные параметры DH будут безопасными гораздо дольше Начните использовать 2048-битные параметры сейчас.
Майкл Хэмптон

Хорошо, это может исправить сервер, но как мне сделать s_client STFU и все равно подключиться?
Рикки Бим

0

Да, это работает:-)

Моя ошибка была немного другой, но решение то же самое:

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 снова начинает отправлять письма :-)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.