我是新来的邮件服务器的世界,并一直在设置自己的Ubuntu 11.10通过Postfix的。 到目前为止,我有SASLauthentication工作在TLS,所以这是很好的; 我现在担心安全问题。
简而言之:我希望Postfix接受所有未经身份validation的传入邮件,但只允许经过身份validation的传出邮件。 这也让我怀疑在端口465和587上是否有STARTTLS和TLS支持,还是需要在端口25上监听? 如果25封闭,邮件服务器是否会尝试在587端口上发送邮件?
但回到允许未经身份validation传入,但只validation传出,我试着添加
-o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject
到我的master.cf文件中的smtp行,但然后阻止未经身份validation的传入邮件。 有没有办法只允许传入端口25,并离开端口465/587只传出?
我不知道它会做什么好,但如果有必要,我可以发布我的configuration的其余部分。 任何帮助非常感谢,因为我是新手,这仍然是混乱。 谢谢!
正如您已经理解的那样,要在master.cf应用选项,以基于每个端口的方式覆盖main.cf中的选项。
要实现您的目标,您希望将限制设置为smtpd_recipient_restrictions而不是smtpd_client_restrictions 。 关键是reject_unauth_destination而不是reject :
mydestination = aardvark.com, acme.com smtpd_recipient_restrictions = permit_sasl_authenticated,reject_unauth_destination
这可以防止未经身份validation的客户端发送到您不负责的任何域。 在这种情况下,您所负责的领域不仅仅是我的目标。 请参阅手册中的reject_unauth_destination 。
我一直在寻找几个小时来解决这个问题,你的答案是Couling。
有关更多信息,这也适用于使用Plesk / CentOS(我的情况)。 特别是在使用Plesk时,默认情况下, smtpd_recipient_restrictions的值也会添加到smtpd_recipient_restrictionsvariables中,从而允许所有Plesk域在没有身份validation的情况下发送SMTP邮件。
请参阅: http : //forum.parallels.com/showthread.php?296391-Plesk-domains-can-submit-emails-through-unauthenticated-SMTP
也出于安全原因添加到main.cf(对于任何感兴趣的人;
smtpd_client_connection_count_limit = 20 smtpd_sasl_authenticated_header = yes maximal_queue_lifetime = 1d