Postscreen 有时会因 450 4.3.2 服务当前不可用而停止邮件

dro*_*k11 3 postfix spam postscreen

有时在使用 postfix 时遇到问题,不一致地拒绝客户端邮件:

Sep 15 09:24:07 mail postfix/postscreen[16209]: NOQUEUE: reject: RCPT from [x.x.x.x]:15037: 450 4.3.2 Service currently unavailable; from=<user@externaldomain.com>, to=<user@ourdomain.com>, proto=ESMTP, helo=<mail.external.com>
Sep 16 07:41:01 mail postfix/postscreen[16209]: NOQUEUE: reject: RCPT from [x.x.x.x]:13720: 450 4.3.2 Service currently unavailable; from=<user@externaldomain.com>, to=<user@ourdomain.com>, proto=ESMTP, helo=<mail.external.com>
Sep 16 09:08:22 mail postfix/postscreen[16209]: NOQUEUE: reject: RCPT from [x.x.x.x]:34719: 450 4.3.2 Service currently unavailable; from=<user@externaldomain.com>, to=<user@ourdomain.com>, proto=ESMTP, helo=<mail.external.com>
Run Code Online (Sandbox Code Playgroud)

这是一个运行 postfix 2.9.6-2 的 debian wheezy 服务器。查看给定时间的性能图,服务器和 postfix 都没有高负载,所以我怀疑它被拒绝了。

有没有办法减少这个postscreen守护进程的负载,禁用它或将特定用户列入白名单,以便他们可以“通过它”?

mas*_*oeh 10

这些错误出现在您的日志中是因为您启用了POSTSCREEN_README 中记录的深度协议测试。因为 postscreen不是 proxy,所以当您第一次尝试推迟客户端连接时,它会变成某种灰名单。更多信息在这两个邮件列表线程中,这个这个

  • 如果您不知道/理解深度协议测试中发生了什么,请不要启用它。通过更改这些参数来禁用它main.cf

    postscreen_bare_newline_enable = no
    postscreen_non_smtp_command_enable = no
    postscreen_pipelining_enable = no
    
    Run Code Online (Sandbox Code Playgroud)
  • 如果您想在将某些客户端列入白名单时启用它,请查看此页面中的参数postscreen_access_list。总之, 在postscreen_access_listmain.cf

    postscreen_access_list = cidr:/etc/postfix/postscreen_access.cidr
    
    Run Code Online (Sandbox Code Playgroud)

    然后在/etc/postfix/postscreen_access.cidr,定义 acl

    # Rules are evaluated in the order as specified.
    # Blacklist 192.168.* except 192.168.0.1.
    192.168.0.1          permit
    192.168.0.0/16       reject
    
    Run Code Online (Sandbox Code Playgroud)