我正在新的 CentOS 7 服务器上设置 Postfix。启用附加调试后,我注意到一件事,它在连接时尝试使用最低的 TLS 版本,而不是最高的版本。如果我不在 main.cf 文件中输入最后四行,它将仅使用 TLSv1 而不是 TLS1.2。
smtp_tls_security_level = encrypt
smtpd_tls_loglevel = 1
smtpd_use_tls = yes
smtpd_tls_key_file = /etc/postfix/smtpd.key
smtpd_tls_cert_file = /etc/postfix/smtpd.crt
smtp_tls_loglevel = 1
smtp_tls_CApath = /etc/ssl/certs
smtpd_tls_CApath = /etc/ssl/certs
smtpd_tls_mandatory_ciphers = high
smtpd_tls_mandatory_protocols = !SSLv2,!SSLv3,!TLSv1
smtp_tls_mandatory_protocols = !SSLv2,!SSLv3,!TLSv1
smtpd_tls_protocols = !SSLv2,!SSLv3,!TLSv1
smtp_tls_protocols = !SSLv2,!SSLv3,!TLSv1
使用这些设置我在日志中看到以下内容:
Trusted TLS connection established to hotmail-com.olc.protection.outlook.com[104.47.6.33]:25: TLSv1.2 with cipher
现在我担心的是,如果谁还在使用 TLS1,电子邮件将无法发送。我是否缺少一些参数来使用最高 TLS?
谢谢
答案1
我正在使用 Centos 7.5,使用 (stock) postfix 2.10.1-6.el7 不会发生这种情况
我的 main.cf 与您的的唯一区别是:
tls_preempt_cipherlist = yes
smtp_tls_security_level = may
smtp_tls_protocols= !SSLv2 !SSLv3
smtp_tls_ciphers = high
而且我没有任何强制指令,因为我没有强制加密。你没有我的第一行和最后一行。为了清晰起见,我将一般的 TLS、smtp 和 smtpd 指令分成不同的组。
日志显示:
postfix/smtp[968]: Untrusted TLS connection established to mta7.am0.yahoodns.net[98.136.102.54]:25: TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)
我尝试过:
smtp_tls_security_level = encrypt
结果相同(TLSv1.2),所以对我来说它似乎开箱即用。我会删除 !TLSv1 并添加 tls_preempt_cipherlist = yes,看看它是否有效。