Я использую почтовый сервер Debian Jessie с Postfix 2.11.3-1 с OpenSSL 1.0.2k-1. Недавние изменения в политике Debian отключили несколько старых небезопасных шифров. К сожалению, некоторые почтовые серверы, с которых мы получаем почту, все еще работают на старой версии Exchange (я думаю, Exchange 2007 на Windows Server 2003), и теперь они не могут подключиться из-за сбоев установления связи TLS. Вот (очень ограниченные) шифры, поддерживаемые отправляющим сервером:
tls1: RC4-SHA
tls1: RC4-MD5
tls1: DES-CBC3-SHA
Я не контролирую его конфигурацию. В соответствии с http://www.postfix.org/TLS_README.html#server_cipher, "... Серверы Windows 2003 Microsoft Exchange имеют некорректные реализации DES-CBC3-SHA, который OpenSSL считает более сильным, чем RC4-SHA. Включение выбора набора шифров сервера может создать проблемы взаимодействия с клиентами Microsoft Exchange Windows 2003».
Вот соответствующие строки нашей конфигурации Postfix, созданные postconf | grep smtpd_tls
:
smtpd_tls_CAfile =
smtpd_tls_CApath =
smtpd_tls_always_issue_session_ids = yes
smtpd_tls_ask_ccert = no
smtpd_tls_auth_only = yes
smtpd_tls_ccert_verifydepth = 9
smtpd_tls_cert_file = /path/to/cert
smtpd_tls_ciphers = export
smtpd_tls_dcert_file =
smtpd_tls_dh1024_param_file =
smtpd_tls_dh512_param_file =
smtpd_tls_dkey_file = $smtpd_tls_dcert_file
smtpd_tls_eccert_file =
smtpd_tls_eckey_file = $smtpd_tls_eccert_file
smtpd_tls_eecdh_grade = strong
smtpd_tls_exclude_ciphers =
smtpd_tls_fingerprint_digest = md5
smtpd_tls_key_file = /path/to/key
smtpd_tls_loglevel = 0
smtpd_tls_mandatory_ciphers = medium
smtpd_tls_mandatory_exclude_ciphers =
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_protocols = !SSLv2, !SSLv3
smtpd_tls_received_header = yes
smtpd_tls_req_ccert = no
smtpd_tls_security_level = may
smtpd_tls_session_cache_database = sdbm:/var/lib/postfix/smtpd_scache
smtpd_tls_session_cache_timeout = 3600s
smtpd_tls_wrappermode = no
На данный момент похоже, что наш единственный вариант - полностью отключить TLS, пока отправляющие серверы не будут обновлены. Очевидно, я не хочу этого делать, но отказаться от этого письма нельзя. Можно ли перенастроить Postfix для временного включения RC4-SHA *? Если мы сможем установить для него самый низкий приоритет, тем лучше. Это рабочий почтовый сервер, поэтому возможности для тестирования ограничены, мне нужно решение, которое, я уверен, будет работать сразу, чтобы мы не теряли почту.
Заранее спасибо.
* На том основании, что он лучше, чем RC4-MD5, и DES-CBC3-SHA работать не будет.
Отвечая на свой вопрос, если он будет полезен другим. Я нашел обходной путь на форумах Postfix по адресу http://postfix.1071664.n5.nabble.com/selective-disable-of-smtpd-opportunistic-TLS-tp81383p81384.html. Добавьте следующую строку в /etc/postfix/main.cf
:
smtpd_discard_ehlo_keyword_address_maps = cidr:/etc/postfix/ehlo-map.cidr
Содержимое файла /etc/postfix/ehlo-map.cidr
тогда должно быть так, подставив 1.2.3.4/32
с диапазоном адресов, используемых проблемными серверами:
# Disable TLS for <X> as their server uses outdated ciphers
1.2.3.4/32 starttls
Это решение не идеально по двум причинам. Во-первых, он полностью отключает TLS для электронной почты, полученной с рассматриваемых IP-адресов. RC4-SHA, возможно, уже не так уж и силен, но это все же лучше, чем отправлять все в незашифрованном виде. Во-вторых, вы не можете указать его для домена электронной почты или имени хоста сервера, вместо этого вы должны знать IP-адрес (а).
Я собираюсь подождать пару дней, прежде чем отмечать это как принятый ответ, в надежде, что кто-то найдет лучшее решение. В идеале я ищу что-то вроде smtp_tls_policy_maps
кроме smtpd, но к сожалению smtpd_tls_policy_maps
не является фактическим вариантом конфигурации.