如果我尝试 telnet 一个流行的 SMTP 服务器,我会收到以下消息:
telnet smtp.mail.yahoo.it 25
Trying <ip>...
Connected to <smtp banner>.
Escape character is '^]'.
220 <smtp host> ESMTP ready
EHLO example.host
250-<smtp host>
250-PIPELINING
250-SIZE 41697280
250-8 BITMIME
250 STARTTLS
MAIL FROM: <[email protected]>
530 5.7.1 Authentication required
现在,如果我尝试使用自己的服务器 (Postfix),则 MAIL FROM 命令后不会要求我进行身份验证。我如何才能获得该配置?
附言:这与拒绝连接无关,我已经尝试过诸如 permit_sasl_authenticated 之类的方法......
谢谢你!
答案1
为了实现类似的行为,即仅在 TLS 后提供 AUTH,您可能需要smtpd_tls_auth_only = yes
在 postfix 的main.conf
文件中添加:
仅支持通过 TLS 进行 AUTH
通过未加密的通道发送 AUTH 数据会带来安全风险。当需要 TLS 层加密 (
smtpd_tls_security_level = encrypt
) 时,Postfix SMTP 服务器将仅在使用 STARTTLS 激活 TLS 层后才宣布并接受 AUTH。当 TLS 层加密是可选的 (smtpd_tls_security_level = may
) 时,仅在 TLS 处于活动状态时提供 AUTH 可能仍然有用。为了保持与非 TLS 客户端的兼容性,默认为接受不加密的 AUTH。为了更改此行为,请设置smtpd_tls_auth_only = yes
。例子:
/etc/postfix/main.cf: smtpd_tls_auth_only = no