22 июля 2015 г.

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'

Отправить комментарий