如何在 postfix 中启用 RBL 检查?

Sfi*_*oza 7 email-server postfix rbl

如何在 postfix 中启用 RBL 过滤器?

我目前的配置:

submission inet n       -       n       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
  -o smtpd_helo_restrictions=
  -o smtpd_sender_restrictions=reject_sender_login_mismatch,permit
  -o receive_override_options=no_header_body_checks,no_address_mappings
  -o smtpd_sender_restrictions=permit_sasl_authenticated,reject
  -o smtpd_recipient_restrictions=reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject
Run Code Online (Sandbox Code Playgroud)

正在发送和接收邮件。

当我添加:

reject_rbl_client sbl-xbl.spamhaus.org,
reject_rbl_client bl.spamcop.net
Run Code Online (Sandbox Code Playgroud)

Thunderbird 在发送过程中永远循环,什么也没有发生。/var/log/mail.* 为空。

Dav*_*d W 9

您的reject_rbl_client声明进入 main.cf 中的 smtpd_recipient_restrictions 声明。对于我的 CentOS 机器,它在 /etc/postfix/ 中。您发布的代码往往会出现在 master.cf 中。这是一个完全不同的文件。

这是我的 smtpd_recipient_restrictions 定义的样子:

smtpd_recipient_restrictions =
        permit_mynetworks,
        permit_sasl_authenticated,
        reject_unauth_destination
        reject_unauth_pipelining,
        check_client_access hash:/etc/postfix/rbl_override,
        reject_unknown_reverse_client_hostname,
        reject_invalid_helo_hostname,
        reject_non_fqdn_helo_hostname,
        reject_non_fqdn_sender,
        reject_non_fqdn_recipient,
        reject_unknown_sender_domain,
        reject_unknown_recipient_domain,
        reject_invalid_hostname,
        check_client_access hash:/etc/postfix/client_checks,
        reject_rbl_client zen.spamhaus.org,
        reject_rbl_client bl.spamcop.net,
        reject_rbl_client b.barracudacentral.org,
        reject_rbl_client dnsbl.sorbs.net,
        check_policy_service unix:private/policy,
        permit
Run Code Online (Sandbox Code Playgroud)


mas*_*oeh 7

正如其他人所说,您将 reject_rbl_client 放在错误的位置。将其设置在 smtpd 行master.cfmain.cf.

如果您的 postfix 版本高于 2.8,则可以将 RBL 签入postscreen. 您可以在Postscreen Howto 页面获得更多信息。

例如,等效的配置

reject_rbl_client sbl-xbl.spamhaus.org,
reject_rbl_client bl.spamcop.net
Run Code Online (Sandbox Code Playgroud)

在后屏术语中是

postscreen_dnsbl_sites = sbl-xbl.spamhaus.org, bl.spamcop.net
postscreen_dnsbl_action = enforce
Run Code Online (Sandbox Code Playgroud)

将 rbl check、smtpd_*_restriction 或 postscreen 放在哪里的一些考虑

幕后优点

  • 在任何 SMTP 事务之前检查,因为输入只是 IP 地址
  • 在 RBL 中找不到 IP 地址时使用缓存机制
  • 支持dnsbl 站点的加权分数(例如您的内部 RBL 比 spamhaus RBL 更受信任,那么您可以放置postscreen_dnsbl_sites = internal.rbl.example.com*3, spamhaus.org
  • 重量可以是负值以获得相同的效果 permit_dnswl_client

幕后缺点

请参阅Sebix 对此问题的回答以及postfix 邮件列表中的一个线程