我有可以正常工作的 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 ...