postfix 指定有限的中继域,同时允许 sasl-auth 中继

postfix 指定有限的中继域,同时允许 sasl-auth 中继

我正在尝试设置 postfix 以允许在有限的条件下进行中继:

  • 目标域是预定义列表之一
    -或者-
  • 客户端登录成功

以下是相关的配置部分:

smtpd_sasl_auth_enable=yes
relay_domains=example.com
smtpd_recipient_restrictions=permit_auth_destination,reject_unauth_destination
smtpd_client_restrictions=permit_sasl_authenticated,reject

问题在于它要求同时满足两个限制,而不是非此即彼。也就是说,只有当客户端经过身份验证并且收件人域为 @example.com 时,它才允许中继。

相反,我需要它在满足其中任何一个要求时允许中继。如何才能做到这一点,而无需在两个具有不同规则的单独端口上运行 SMTP?

注意:
上下文是共享 Web 服务器上的仅供出站使用(绑定到 127.0.0.1)的 MTA,所有站点所有者都可以将邮件转发到“拥有的”域之一(但不是服务器本地),并且允许有限的一组“受信任的”站点所有者无限制地转发邮件,只要他们具有有效的 SMTP 登录。

答案1

当然,我在提出问题 6 分钟后就明白了。

您可以放入permit_sasl_authenticated您的smtpd_recipient_restrictions设置并将其smtpd_client_restrictions全部删除。

smtpd_sasl_auth_enable=yes
relay_domains=example.com
smtpd_recipient_restrictions=permit_auth_destination,
     permit_sasl_authenticated,reject_unauth_destination

事实上,这个选项没有记录在http://www.postfix.org/postconf.5.html#smtpd_recipient_restrictions已被证明是本案中造成不少挫折的一个根源。

相关内容