我正在使用postfix和dovecot,我似乎无法找到如何创建此设置的任何地方:
1)允许从发送方域为本地服务器域且收件人地址为任何东西(不仅仅是本地收件人)的外部(telnet)提交电子邮件。
2)加密协议
3)创建身份验证,以便在通过协议将电子邮件提交给服务器之前,客户必须证明他们被允许从服务器发送电子邮件(中继?)
默认情况下,postfix在端口25上运行SMTP,无需任何加密或身份验证,我可以使用它从任何地址发送电子邮件到任何地址。我不认为这是我想要的。Telnet EHLO返回
250-PIPELINING
250-SIZE 104857600
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
然后它还在端口587上运行SMTP,这个也对任何人开放,但它只接受那些接收者的域与服务器域相同的电子邮件。再一次没有身份验证。Telnet EHLO返回
250-PIPELINING
250-SIZE 104857600
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
此外,我是否正确理解SMTP提交协议(587)用于接收来自其他服务器(及其客户端)的邮件给我的客户端(我的域名地址)?还是只用于POP和IMAP?这三种SMTP协议中的哪一种-- 25,465,587应该用于这个设置?
发布于 2019-02-24 13:26:28
您的配置是扭曲的;应该是这样的:
25
上的SMTP用于在没有身份验证的情况下接收来自其他服务器的邮件给本地收件人。为了兼容性,它应该接受未加密的连接,但在其他服务器能够协商加密连接时,允许与STARTTLS
进行加密连接是明智的。587
上的提交是针对您自己的用户--邮件用户代理(MUA)。它应该在身份验证之前需要STARTTLS
,并且只允许经过身份验证的用户发送邮件。我建议使用smtpd_sender_login_maps
来防止任何用户使用任何发件人地址。虽然端口25
上的SMTP可以同时接受这两种连接,但它通常仅限于消费者级别的互联网连接。对于这两种不同的场景,在单独的端口上设置单独的设置也更容易。
端口465
用于TLS连接。它的工作方式与提交类似,但连接直接以TLS的形式启动。最后,POP3和IMAP是使用MUA读取邮件的协议,而不是电子邮件传递协议。
https://serverfault.com/questions/955501
复制相似问题