如何配置 SMTP 的 TLS 强制加密(require TLS)?
57
如何配置 SMTP 的 TLS 强制加密(require TLS)?
▼
原因
STARTTLS 是 SMTP 协议的安全扩展(RFC 3207)。默认 Postfix 使用机会式加密(opportunistic TLS),即对方支持就加密,不支持就降级为明文。在安全合规场景下需要强制要求 TLS。
操作
1. 入站(收信)强制 TLS:
编辑 /etc/postfix/main.cf:smtpd_tls_security_level = encryptsmtpd_tls_mandatory_protocols = !SSLv2,!SSLv3,!TLSv1,!TLSv1.1smtpd_tls_mandatory_ciphers = high
配置后,对方若不发起 STARTTLS 握手则立即拒绝连接。
2. 出站(发信)强制 TLS(谨慎使用):smtp_tls_security_level = encrypt
⚠ 出站强制要求目标服务器也支持 STARTTLS,否则邮件彻底无法投递。建议从 may 开始(机会式加密)。
3. Submission 端口(587)强制:
在 /etc/postfix/master.cf 中 submission 段添加:submission inet n - n - - smtpd
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
4. 验证:postfix reloadopenssl s_client -starttls smtp -connect mail.example.com:25
检查证书链和协商的 TLS 版本。
RFC 3207 (SMTP Service Extension for Secure SMTP over TLS) · RFC 7817 (Updated TLS Support) · RFC 8314 (Cleartext Considered Harmful)
