如何设置 Postfix 仅检查我想要检查的域名的 SPF 记录

如何设置 Postfix 仅检查我想要检查的域名的 SPF 记录

我有可以正常工作的 postfix 服务器。它配置了 amavis,并使用了相当好的 SMTP 标头控制。但有时我的用户会收到来自垃圾邮件发送者的垃圾邮件,这些垃圾邮件发送者使用知名邮件服务提供商的地址。例如:@gmail.com @yahoo.com 等。当然,他们从非法服务器发送这些垃圾邮件,但使用正确的 DNS 记录(A 和 PTR)和 EHLO 标头。服务器无法拒绝这封邮件。

因此,我不想使用 rbl,因为 false|positive。我也不想使用灰名单,因为超时。

我想使用 SPF 检查,但只针对来自已知域的邮件。我知道该域有正确的 SPF 记录。

我知道存在 2 个 SPF 守护进程(policyd-spf-perl 和 policyd-spf-python),但它们似乎没有这样的功能。

所以我的问题是:是否可以仅检查特定域列表的 SPF 记录?

答案1

是的你可以

看一下 postfix 的示例SMTP 访问策略委派其中显示您可以启用经常被伪造的域的灰名单。它使用smtpd_restriction_classes来实现它。

因此您可以使用该案例来满足您的场景

# /etc/postfix/main.cf:

smtpd_recipient_restrictions =
    reject_unlisted_recipient
    ...
    reject_unauth_destination 
    check_sender_access hash:/etc/postfix/sender_access
    ...
smtpd_restriction_classes = spfcheck
spfcheck = check_policy_service unix:private/spfcheck

# /etc/postfix/sender_access:
    aol.com     spfcheck
    hotmail.com spfcheck
    bigfoot.com spfcheck
    ... etcetera ...

相关内容