如何在 Postfix 中阻止电子邮件地址?

如何在 Postfix 中阻止电子邮件地址?

我需要阻止 Postfix 中的外部电子邮件地址向我发送电子邮件。这是一个第三方域名的外部电子邮件地址,我无法控制。

我之所以需要阻止它,是因为他们配置有误,每隔一秒左右我就会收到一条消息,说“警告,您的消息尚未送达”。我已经联系了他们的技术支持,但他们花了很长时间来修复它,与此同时,我的服务器和用户都受到了影响。

我尝试这样做。在我的 mail.cf 中我添加了:

smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender_access, permit

并在 /etc/postfix/sender_access 中添加:

[email protected] REJECT

我跑

postmap hash:sender_access

并重新启动postfix,但好像没有效果。

我也尝试过:

smtpd_recipient_restrictions = check_sender_access hash:/etc/postfix/sender_access

在 main.cf 中,失败并出现以下错误:

postfix/smtpd[2144]: fatal: parameter "smtpd_recipient_restrictions": specify at least one working instance of: check_relay_domains, reject_unauth_destination, reject, defer or defer_if_permit

试:

smtpd_recipient_restrictions = check_sender_access hash:/etc/postfix/sender_access, permit

给了我同样的错误。

答案1

正如 Laurentio Roescu 所提到的,smtpd_sender_restrictions 应该可以工作。只是我不认为这是预期的结果。发件人是从你的服务器发送电子邮件的人。而不是另一边的发件人。

所以您确实想使用smtpd_recipient_restrictions = check_sender_access ...,但正如文档中提到的那样,smtpd_relay_restrictions如果您使用它,它会被覆盖。

http://www.postfix.org/postconf.5.html#smtpd_recipient_restrictions

Postfix SMTP 服务器在 smtpd_relay_restrictions 之后在客户端 RCPT TO 命令上下文中应用的可选限制。有关评估上下文和时间的讨论,请参阅 SMTPD_ACCESS_README 中的“SMTP 访问限制列表的延迟评估”部分。

在 Postfix 2.10 之前的版本中,中继权限和垃圾邮件拦截规则在 smtpd_recipient_restrictions 下合并,导致配置容易出错。从 Postfix 2.10 开始,中继权限规则最好使用 smtpd_relay_restrictions 来实现,这样 smtpd_recipient_restrictions 下宽松的垃圾邮件拦截策略将不再导致宽松的邮件中继策略。

为了向后兼容,从 Postfix 2.10 之前的版本迁移的站点可以将 smtpd_relay_restrictions 设置为空值,并像以前一样使用 smtpd_recipient_restrictions。

因此你应该这样做:

smtpd_relay_restrictions = ...
    ...
    check_sender_access hash:/etc/postfix/sender_access
    ...

这样它就应该按预期被考虑。(... 代表其他选项,请确保将此检查放在列表中的正确位置。)

答案2

check_sender_access应该在之后reject_unauth_destination,否则您可能会成为开放中继。

smtpd_recipient_restrictions = reject_unauth_destination, check_sender_access hash:/etc/postfix/sender_access

看:http://www.postfix.org/postconf.5.html#smtpd_recipient_restrictions

重要提示:smtpd_relay_restrictions 或 smtpd_recipient_restrictions 参数必须指定以下限制之一。否则 Postfix 将拒绝接收邮件:

拒绝,reject_unauth_destination

推迟,defer_if_permit,defer_unauth_destination

另一方面,使用smtpd_sender_restrictions应该可以工作,因此您可能在它之前还有其他可以接受电子邮件的东西。

相关内容