后缀 – 有没有办法拒绝无效的身份validation(即使是我的networking)?

我有一个工作的postfix / dovecotconfiguration运行与收件人拒绝以下规则:

smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject 

这按预期工作(授权经过authentication的用户或来自我的networking的用户,拒绝其他用户)。 但是,如果来自我的networking的用户未能通过身份validation,他不会被拒绝。

reject_invalid_sasl_auth这样的规则吗? 只有当他input了一个无效的validation才会拒绝用户,但是会允许用户没有validation。

否则,是否有限制规则来实现这种行为(SASL选项,自定义策略)?

由于您只明确允许SASLauthentication的用户,如果用户未通过authentication,则将检查行中的下一个限制 – 这是mynetworks,恰好匹配。

所以,完全由于您的规则订购非授权客户端允许从您的可信networking。

相反,可以考虑像这样设置它:

 smtpd_client_restrictions = permit_sasl_authenticated, reject smtpd_recipient_restrictions = permit_mynetworks, reject 

请注意,当您将此应用于您的外部端口25 smtpd监听器时,这会导致您无法接收Internet邮件。

我认为这个想法可以运行你的MTA,你可以从端口25接收来自其他对端(其他邮件服务器)的邮件。你可以在端口587上运行另一个smtpd进程,从经过authentication的用户接收。

这样你可以有像下面这样的标准规则:

 smtpd_recipient_restrictions = permit_mynetworks reject_unauth_destination 

在你的main.cf中

OTOH在master.cf中configuration你的端口587如下:

 submission inet n - - - - smtpd -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject 

UPDATE

回复评论。 这有两件事。

首先,如果它在端口25上接收到连接,它将只接受来自我的networking,除了可以在本地传送的信息外,它将永远不会接收邮件。

其次,如果它在端口587上接收到连接,它将仅接受来自经过validation的客户端的邮件。