Thunderbird, sendmail и dh key too small

Обновился Тандерберд до версии 31.8.0 и перестал работать SSL при отправке почты на моем сервере.
При проверке сертификата на сервере, получаю ошибку
openssl s_client -connect smtp.local.local:25 -starttls smtp

140195198617232:error:14082174:SSL routines:SSL3_CHECK_CERT_AND_ALGORITHM:dh key too small:s3_clnt.c:3339:

Да, я лопух, не позаботился о закрытии дырки в SSL. Впрочем, кому нужно ломать SSL при отправке почты через этот сервер, учитывая, что аутентификация клиентов идет не по сертификатам?
Ну да ладно.
В новой версии библиотеки nss, жестко ограничили длину:

  • The minimum modulus size for RSA keys is now 512 bits
  • The minimum modulus size for DSA keys is now 1023 bits
  • The minimum modulus size for Diffie-Hellman keys is now 1023 bits

Решение для sendmail.
Генерируем DH файл параметров.
openssl dhparam -out /etc/pki/tls/certs/dhparams.pem 2048

Важно! Длинна должна быть не меньше, чем 1024, но на всякий пожарный я выбрал 2048. А вдруг они потом изменят свое решение в сторону увеличения?

Поскольку для тонкой настройки SSL (выбора чиперов) нет макросов m4, в файле sendmail.mc, в самом конце добавляем секцию LOCAL_CONFIG и в ней пишем соответствующие параметры:

LOCAL_CONFIG
O CipherList=HIGH:!ADH
O DHParameters=/etc/pki/tls/certs/dhparams.pem

Собственно используем тока эти чиперы:
# openssl ciphers -v ‘HIGH,!ADH’

3 thoughts on “Thunderbird, sendmail и dh key too small

  1. Спасибо огромное, очень кстати.
    Вместо LOCAL_CONFIG
    Можно прописать в .mc файле:
    define(`confDH_PARAMETERS',`/etc/mail/certs/dhparams.pem')
    и перегенерить m4 конфиг.
    Впрочем, это дело вкуса. 🙂

  2. Да, я про это знаю. Но как определить chiperlist в m4 и (в новых версиях sendmail) выключение SSLv3 я так и не понял, поэтому LOCAL_CONFIG 🙂

  3. А зачем его определять? я добавил в .mc вышеуказанную строку, этого оказалось достаточно, чтобы Thunderbird начал отправлять и openssl s_client -connect smtp.example.com:465 перестал давать ошибку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *