如何在 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
邮件正在发送和接收。
当我添加:
reject_rbl_client sbl-xbl.spamhaus.org,
reject_rbl_client bl.spamcop.net
Thunderbird 在发送过程中永远循环并且什么也没有发生。/var/log/mail.* 是空的。
答案1
您的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
答案2
正如其他人所说,您将reject_rbl_client放在了错误的位置。将其设置在 smtpd 行中master.cf
或 中main.cf
。
如果你的 postfix 版本是 2.8 以上,你可以把 RBL 检查放进去postscreen
。你可以在Postscreen 操作方法页面。
例如,等效配置
reject_rbl_client sbl-xbl.spamhaus.org,
reject_rbl_client bl.spamcop.net
在屏幕后术语中
postscreen_dnsbl_sites = sbl-xbl.spamhaus.org, bl.spamcop.net
postscreen_dnsbl_action = enforce
考虑将 rbl check、smtpd_*_restriction 或 postscreen 放在哪里
Postcreen 的优点
- 在任何 SMTP 交易之前进行检查,因为输入的只是 IP 地址
- 当 RBL 中未找到 IP 地址时使用缓存机制
- 支持dnsbl 站点的加权分数(例如,您的内部 RBL 比 spamhaus RBL 更受信任,那么您可以输入
postscreen_dnsbl_sites = internal.rbl.example.com*3, spamhaus.org
) - 权重可以为负值,以达到相同的效果
permit_dnswl_client
筛查后缺点
- 您可以排除某些发件人/收件人的 RBL 检查。您仍然可以白名单 IP 地址。