问题:
我有一个运行 dovecot 的 Postfix 服务器。正在侦听的端口是25
,465
最后 993
两个具有强制性 TLS。其他“电子邮件”端口没有监听。
这意味着客户的 MUA 必须使用端口465
用于电子邮件“提交”和端口993
用于电子邮件“检索”。这意味着每个端口一个功能(很好)。
25
另一方面,端口具有三个功能,即电子邮件“中继发送”电子邮件“中继接收”和电子邮件“提交” (一团糟)。
其他两个端口已经要求强制 TLS,现在我也必须配置端口25
来做到这一点。我知道 Postfix 用于配置此端口,因为它是 SMTP 端口。我也明白,/etc/postfix/master.cf
我可以使用-o
下面一行下的参数来配置端口25
:
smtp inet n - y - - smtpd
我们在现场有一些嵌入式设备不能说 TLS,只能通过端口“提交”25
电子邮件。这就是为什么这个端口可以使用机会 TLS 但不能使用强制 TLS。
我已经为入站请求设置了机会 TLS,即电子邮件“提交”和电子邮件“中继接收”,如下所示:
smtp inet n - y - - smtpd
-o syslog_name=postfix/smtp
#
-o smtpd_use_tls=yes
-o smtpd_tls_security_level=may
-o smtpd_tls_protocols=!SSLv2,!SSLv3,!TLSv1,!TLSv1.1
-o smtpd_tls_cert_file=/etc/ssl/certs/server-rsa.cert
-o smtpd_tls_key_file=/etc/ssl/private/server-rsa.key
#
-o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=smtpd
-o smtpd_sasl_security_options=noanonymous
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
注意:
以配置开头的参数-o smtpd_
只配置入站 请求,而以-o smtp_
(目前我没有)开头的参数配置 出站请求。
问题:
现在我想知道...
- 我应该为出站请求设置强制 TLS,即在端口上“中继发送”
25
吗?可能会出现什么问题? - 如果我为出站请求设置强制 TLS,即在端口上“中继发送”并且某些目标服务器在其“中继接收”端口
25
上不支持强制 TLS 或机会 TLS,会发生什么情况?25
- 是否应该为出站请求设置机会 TLS,即端口上的“中继发送”
25
以避免问题? - 我知道机会性 TLS 不是 100% 安全的,而且我知道可以使用 DANE 对其进行保护,但 DANE 究竟保护了谁?“中继发送者”还是“中继接收者”?那么应该为入站或出站请求设置 DANE 吗?
除了接受来自 Internet 的电子邮件之外,您不需要传入端口 25 用于任何其他目的:端口 465 用于(隐式 TLS)提交,而对于出站 SMTP,您使用接收服务器的端口 25。
此外,在端口 25 上强制使用 TLS 也不是一个好主意,因为它破坏了向后兼容性,因此几乎破坏了您的整个电子邮件基础设施。DANE ( RFC 6698 ) 正是为此:让其他人知道您不需要向后兼容性,并且即使有人 (MitM) 删除了
250-STARTTLS
扩展 ( RFC 3207 ) 也不会退回到未加密的连接。