我可以对reject_unknown_client_hostname进行例外处理吗?


11

我的外部SMTP阻止了一些带有错误的电子邮件450 4.7.1 Client host rejected: cannot find your hostname,我们将其追溯到reject_unknown_client_hostname。碰巧的是,反向地址解析为的主机名本身没有DNS记录。解决此问题的机会很小,但是我们确实需要获取他们的电子邮件。

因此,我们可以配置某种异常来解决这个规则只是针对他们?

Answers:


14

您可以允许特定的客户端绕过smtpd_client_restrictions

smtpd_client_restrictions =
  check_client_access hash:/etc/postfix/client_access,
  reject_invalid_hostname

这将首先执行中的指定操作client_access,如果不符合此处列出的任何规则,则拒绝没有有效域的发件人。

client_access中的语法为:

1.2.3.4    OK
bad.domain REJECT

设置此文件后,执行以下命令以生成此文件的索引版本(db):

postmap /etc/postifx/client_access

重新加载后缀,你应该没问题。

有关访问表的更多文档

有关smtpd_client_restrictions的更多信息

编辑:如果出于某种原因需要调试,则可以尝试根据谁连接到服务来在smtpd中启用调试。编辑/etc/postfix/master.cf,找到smtpd服务并添加如下代码:

smtp      inet  n       -       -       -       -       smtpd
       -o debug_peer_level=10 -o debug_peer_list=1.2.3.4

它将仅为对等1.2.3.4启用调试。通过查看您的邮件日志,这应该使您了解客户端1.2.3.4连接到smtp服务向您发送电子邮件时的情况。


由于某种原因,它不起作用。有什么办法可以调试吗?
Daniel C. Sobral

查看答案。我编辑并放置了一些有关如何仅为困扰您的同伴调试场景的信息。
Torian

谢谢,但是我想我知道问题出在哪里……不是拒绝电子邮件的发件人规则,而是客户端的规则-所以我在错误的地方进行了更改。我现在正在就客户端进行配置(在smtpd_client_restrictions中为check_client_access),如果一切顺利,我将在此处发布注释。在接受答案之前,我要求对文本进行更正。:-)无论如何,谢谢您为我提供了正确的指导。
Daniel C. Sobral

实际上,您是对的。smtpd_client_restrictions解决了没有反向dns记录的客户端而不是向其发送(或从其发送)接收者的问题。解决这个问题的方法是相似的。我会改正答案。谢谢您,并感谢您指出错误。
Torian

似乎我在该堆栈平台上没有足够的要点来编辑此有用的帖子:很容易错过一个错字“ postifx”。
BurninLeo19年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.