![如何在 Postfix 中阻止电子邮件地址?](https://linux22.com/image/616938/%E5%A6%82%E4%BD%95%E5%9C%A8%20Postfix%20%E4%B8%AD%E9%98%BB%E6%AD%A2%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6%E5%9C%B0%E5%9D%80%EF%BC%9F.png)
我需要阻止 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
应该可以工作,因此您可能在它之前还有其他可以接受电子邮件的东西。