
Я хотел бы использовать собственный набор шифров TLS вместо использования встроенных в Postfix.
Мой желаемый набор шифров (взят из конфигурации nginx):
ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:-DES:!RC4:!MD5:!PSK:!aECDH:EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
К сожалению, я не могу найти ссылку на переопределение наборов шифров. Я нашел уведомления о том, что это возможно, но не как.
Как будет выглядеть эквивалентная конфигурация Postfix для smtp
и smtpd
?
Использование Debian/7, Postfix/2.11.2, OpenSSL/1.0.1e
решение1
ОтПрикладное криптоукреплениекbettercrypto.org:
smtpd_tls_security_level = may
smtp_tls_security_level = may
smtp_tls_loglevel = 1
# if you have authentication enabled, only offer it after STARTTLS
smtpd_tls_auth_only = yes
tls_ssl_options = NO_COMPRESSION
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_mandatory_ciphers=high
tls_high_cipherlist=EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA
[ОБНОВЛЕНИЕ: Поскольку проект bettercrypto, откуда я взял шифр-строку, больше не активен, обязательно выберите шифр-строку из актуального источника.]
Возможно master.cf
, вам захочется настроить порт отправки только на TLS:
submission inet n - - - - smtpd
-o smtpd_tls_security_level=encrypt
-o tls_preempt_cipherlist=yes
[ОБНОВЛЕНИЕ: Для TLS 1.3 доступно меньше шифров, и полученный шифр отличается от шифров для TLS <= 1.2. Хорошая новость в том, что разрешены только безопасные шифры. Подробнее здесь: https://wiki.openssl.org/index.php/TLS1.3#Ciphersuites]
Однако это не запрещает использование устаревших шифров для обеспечения уровня безопасности.может, в соответствии сзапрос на извлечение #97, вы можете сделать это с помощью:
smtpd_tls_protocols=!SSLv2,!SSLv3
smtp_tls_protocols=!SSLv2,!SSLv3
Но это не было объединено по следующей причине:
Я собираюсь закрыть эту тему. SSLv3 здесь имеет смысл, поскольку он лучше старого доброго открытого текста.
решение2
man postconf
говорит: «Вам настоятельно рекомендуется не менять эту настройку».
Тем не менее, вы можете сделать вот так:
smtp_tls_security_level = encrypt
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3
smtp_tls_mandatory_ciphers=high
smtpd_tls_security_level = encrypt
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_mandatory_ciphers=high
tls_high_cipherlist=ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:-DES:!RC4:!MD5:!PSK:!aECDH:EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
Я предполагаю, что это экспериментально, и вы не беспокоитесь о потоке почты от большинства MTA. Проверьте наличие "сбоев рукопожатия" в журналах postfix. Я бы посоветовал сначала протестировать smtp_ outgoing, чтобы вы могли видеть, что находится в очереди, и любые локальные сеансы SMTP, сгенерированные nginx, не должны терпеть неудачу.
решение3
Это хорошо документировано. Отhttp://www.postfix.org/TLS_README.html#server_cipher
smtpd_tls_mandatory_ciphers = high
smtpd_tls_mandatory_exclude_ciphers = aNULL, MD5