![为特定客户端禁用 Postfix 服务器 TLS](https://linux22.com/image/760810/%E4%B8%BA%E7%89%B9%E5%AE%9A%E5%AE%A2%E6%88%B7%E7%AB%AF%E7%A6%81%E7%94%A8%20Postfix%20%E6%9C%8D%E5%8A%A1%E5%99%A8%20TLS.png)
我遇到了麻烦,一些糟糕的服务器试图向我发送一些我急需的电子邮件。
发件人总是请求 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]
答案1
如果你真的想解决他们的疏忽,你可以添加一个独立的 TLS 忽略服务器。 有它只与已知的不良客户名单交谈(由 ehlo 或地址标识),并且只能通过优先级值更高的 MX 记录或防火墙进行访问,以免降低其他客户端的安全性。
这与刚才有什么不同smtp_tls_security_level=may
?它将为无法建立安全通道的客户端(在向主 MX 提出请求后)提供第二次机会,由于第二台服务器未宣布STARTTLS
功能,因此客户端不会重复犯错。
怎么做?这通过单独的 MX 记录发布路线更安全,因为它或多或少当你的特殊情况配置不可避免地变得陈旧时,就会回到常见情况,但只需在你的终端进行端口重定向,设置步骤就更少了:
- 在 中复制您的 smtpd 行
master.cf
,使用不同的端口和额外的选项(标记日志行,添加注释,以便未来的管理员了解为什么这样做):
smtp inet n - y - - smtpd
10025 inet n - y - - smtpd
-o syslog_name=postfix/smtpd/badstarttls
-o smtpd_tls_security_level=none
-o smtpd_helo_required=yes
-o smtpd_helo_restrictions=pcre:/etc/postfix/helo_badstarttls_allow.pcre,reject
- 重定向到不同的端口可以通过
-A PREROUTING .. -j REDIRECT --to-port ..
iptables 来实现;或者通过 nftables 来实现:
tcp dport 25 ip protocol tcp ip saddr { XX.XX.XX.XX } redirect to :10025
但这可能既不是最简单也不是正确的选择。几乎所有发送邮件的人都在发送应该安全运输。如果你在特殊住宿地工作却违反了最佳实践,那么你就是其中的同谋。让他们来修复它。
如果他们位于欧盟,他们甚至会发布一个名为数据保护官因此,您无需解释他们修复设置的优先级。您所要做的就是通知他们未维护的服务器正在处理个人数据。
答案2
这应该只设置为may
。机会性 TLS 是我们在未来很长一段时间内为电子邮件提供的最佳服务。