Обновился Тандерберд до версии 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, жестко ограничили длину:
Решение для 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'
При проверке сертификата на сервере, получаю ошибку
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'
Спасибо огромное, очень кстати.
ОтветитьУдалитьВместо LOCAL_CONFIG
Можно прописать в .mc файле:
define(`confDH_PARAMETERS',`/etc/mail/certs/dhparams.pem')
и перегенерить m4 конфиг.
Впрочем, это дело вкуса. :)
Да, я про это знаю. Но как определить chiperlist в m4 и (в новых версиях sendmail) выключение SSLv3 я так и не понял, поэтому LOCAL_CONFIG :)
ОтветитьУдалитьА зачем его определять? я добавил в .mc вышеуказанную строку, этого оказалось достаточно, чтобы Thunderbird начал отправлять и openssl s_client -connect smtp.example.com:465 перестал давать ошибку.
ОтветитьУдалить