Postfix:优化垃圾邮件检查的顺序?

Postfix:优化垃圾邮件检查的顺序?

我在运行 Ubuntu 18.04 的 VPS 上有一个邮件服务器(postfix v3.3),使用各种系统处理入站和出站邮件(我有一些网站发送邮件,还有一些 SASL 身份验证用户在机器上有账户):速率限制以及 RBL、DKIM、SPF 和使用 Amavis 和 Spamassassin 的病毒检查。

但是,很难知道在哪里放置检查,以便它们仅在其他较便宜的检查运行时才启动,同时仍保留保护。我正在考虑像这样配置 main.cf,这看起来合理吗?就首先放置最便宜的检查而言,我是否应该在 中放置更多检查smtpd_client_restrictions,例如(因为我假设这些检查会在 之前运行smtpd_sender_restrictions)?

disable_vrfy_command = yes
smtpd_helo_required = yes

smtpd_client_restrictions = 
        check_client_access hash:/etc/postfix/blacklist, 
        permit_mynetworks
 
smtpd_helo_restrictions =
        reject_invalid_helo_hostname
 
smtpd_sender_restrictions =
        # Filter through Amavis + spamassassin:
        check_client_access cidr:/etc/postfix/internal_clients_filter,
        permit_mynetworks,
        reject_unknown_reverse_client_hostname,
        reject_non_fqdn_sender,
        reject_unknown_sender_domain

smtpd_recipient_restrictions =

smtpd_relay_restrictions =
        permit_mynetworks,
        # Rate limiting + geolimiting with postfwd
        # See https://github.com/Vnet-as/postfwd-anti-geoip-spam-plugin
        check_policy_service inet:127.0.0.1:10040,
        permit_sasl_authenticated,
        reject_unknown_recipient_domain,
        reject_non_fqdn_recipient,
        reject_unlisted_recipient,
        reject_unauth_destination,
        # Sender scoring https://github.com/DavidGoodwin/policyd-dnsbl-spf-geoip/blob/master/README.md 
        check_policy_service unix:private/senderCheck,
        permit_mx_backup

smtpd_data_restrictions =
        reject_unauth_pipelining

答案1

测试按照逗号分隔列表中指定的顺序触发:如果测试结果为 或permitreject则省略所有其他测试。如果成本较低的测试足以做出决定,则可以省略成本较高的测试。从使用 SMTP 访问限制列表进行选择

每个限制列表从左到右进行评估,直到某个限制产生 PERMIT、REJECT 或 DEFER(稍后再试)的结果。每个列表的末尾相当于 PERMIT 结果。通过在 REJECT 限制之前放置 PERMIT 限制,您可以为特定客户端或用户设置例外。这称为允许列表;上面的第四个示例允许来自本地网络的邮件,但拒绝发往任意目的地的邮件。

接下来是:

下表总结了每个 SMTP 访问限制列表的用途。所有列表都使用完全相同的语法;它们仅在评估时间和 REJECT 或 DEFER 结果的影响方面有所不同。

因此,从你的问题的角度来看,你使用哪个 SMTP 访问限制列表并不重要。不过,我实际上建议将大多数测试放在smtpd_recipient_restrictions或者smtpd_relay_restrictions因为两者都是在RCPT TO命令之后进行评估的。这样,您将在日志中保存完整的 和 ,这可能有助于调试任何错误HELO拒绝MAIL FROMRCPT TO

相关内容