我已经将我的 Postfix 设置为需要 STARTTLS 或 SSL/TLS,并且如果发送到其他域则需要对用户进行身份验证,或者如果接收邮件则需要我的主机知道收件人。
我可以在没有初始加密的情况下进行连接,如下所示:
telnet myserver.com 587
elho there
mail from: [email protected]
服务器响应530 5.7.0 Must issue a STARTTLS command first
我注意到 smtp.gmail.com 有使用 TLS 的相同要求。
我认为这很好,也是我想要的。但是有多少客户端/服务器尝试向我的域发送邮件会失败,因为它们无法使用 SSL/TLS?我的证书是由 letsencrypt 签名的,所以这应该不是问题。
换句话说,是否可以安全地假设到 2022 年所有邮件发件人都可以使用 SSL/TLS?
如果不是,我必须在我的 postfix 配置中做哪些更改才能允许第三方在没有 TLS 的情况下将邮件传递到我的服务器(对于我域中的邮件),但仍然要求想要通过我的服务器发送邮件的用户登录并使用 STARTTLS 或 SSL/TLS?
第二个问题:我注意到,如果我发送以下内容,我会收到相同的错误,但是我是否刚刚通过互联网将我的密码有效地未加密地发送到服务器,这意味着我应该更改我的密码(请注意,连接是通过 telnet 完成的,而不是 openssl!)
telnet myserver.com 587
ehlo there
AUTH PLAIN GFudEBtYaXhdhbnQuY2...doh!
答案1
换句话说,是否可以安全地假设到 2022 年所有邮件发件人都可以使用 SSL/TLS?
不是。今天(2022 年 3 月 3 日)Google 仅使用加密方式发送了 85% 的出站邮件:
同样,今天只有 89% 的入站电子邮件是加密的:
如果不是,我必须在我的 postfix 配置中做哪些更改才能允许第三方在没有 TLS 的情况下将邮件传递到我的服务器(对于我域中的邮件),但仍然要求想要通过我的服务器发送邮件的用户登录并使用 STARTTLS 或 SSL/TLS?
# postconf smtpd_tls_security_level=may
# postconf smtpd_tls_auth_only=yes
文档smtpd_tls_security_level,smtpd_tls_auth_only。
如果你还想允许在不加密的情况下发送出站电子邮件,你应该阅读smtp_tls_security_level。
请注意,你可以固定已知良好域名列表,以便始终使用加密smtp_tls_policy_maps,你可能需要考虑实施转运站以及更具可扩展性的替代方案。以下是一些与 Postfix 兼容的软件,尽管我自己没有用过。请注意,Postfix 页面谈到了 DNSSEC 和 DANE,但DNSSEC 无法拯救我们,以及Chromium 团队同意。