我遇到了一些糟糕的服务器试图向我发送一些我迫切需要的电子邮件的问题。
发件人总是请求 STARTTLS,但之后无法建立 TLS(我的服务器支持的 v1.2+)连接。据推测,它会将未加密的邮件发送到未宣布该功能的邮件服务器。
我可以使用 全局禁用 TLS smtpd_tls_security_level
,但这真的很糟糕,所以我想找到一个设置,仅针对尝试与我联系的给定远程服务器列表禁用它。
甚至可能吗?
编辑:这是来自 Postfix 的日志smtpd_tls_loglevel = 2
:
belette64 postfix/smtpd[145475]: connect from smtp.misconfigured.fr[XX.XX.XX.XX]
belette64 postfix/smtpd[145475]: setting up TLS connection from smtp.misconfigured.fr[XX.XX.XX.XX]
belette64 postfix/smtpd[145475]: smtp.misconfigured.fr[XX.XX.XX.XX]: TLS cipher list "aNULL:-aNULL:HIGH:MEDIUM:+RC4:@STRENGTH"
belette64 postfix/smtpd[145475]: SSL_accept:before SSL initialization
belette64 postfix/smtpd[145475]: SSL_accept:before SSL initialization
belette64 postfix/smtpd[145475]: SSL3 alert write:fatal:handshake failure
belette64 postfix/smtpd[145475]: SSL_accept:error in error
belette64 postfix/smtpd[145475]: SSL_accept error from smtp.misconfigured.fr[XX.XX.XX.XX]: -1
belette64 postfix/smtpd[145475]: warning: TLS library problem: error:1417A0C1:SSL routines:tls_post_process_client_hello:no shared cipher:../ssl/statem/statem_srvr.c:2282:
belette64 postfix/smtpd[145475]: lost connection after STARTTLS from smtp.misconfigured.fr[XX.XX.XX.XX]
如果你真的想解决他们的疏忽,你可以添加一个单独的 TLS-ignorant server。让它只与已知的坏客户端列表(由 ehlo 或地址标识)对话,并且只能通过更高优先级值的 MX 记录或防火墙对其进行访问,以免降低其他客户端的安全性。
这与 just 有何不同
smtp_tls_security_level=may
?STARTTLS
这将允许客户端无法建立安全通道(在向主 MX 请求之后)第二次机会,因为第二个服务器没有宣布功能,它不能重复其错误。怎么做?通过单独的 MX 记录路由发布更安全,因为当您的特殊情况配置不可避免地过时时,它或多或少会退回到常见情况,但只是端口重定向需要更少的设置步骤:
master.cf
,使用不同的端口和额外选项(标记日志行,为未来的管理员添加注释以了解究竟为什么这样做):-A PREROUTING .. -j REDIRECT --to-port ..
iptables 重定向到不同的端口;或在 nftables 中:但这可能既不是最简单的选择,也不是正确的选择。几乎所有发送邮件的人都在发送应该安全传输的邮件。如果你为打破最佳实践而进行特殊调整,你就会成为其中的同谋。让他们修复它。
如果他们是基于欧盟的,他们甚至会发布一个名为数据保护官的角色的首选联系方式,因此您不必解释他们修复其设置的优先级。您所要做的就是通知他们处理个人数据的未维护服务器。
这应该只设置为
may
。机会性 TLS 是我们在很长一段时间内将获得的最好的电子邮件。