我想在我的 Postfix 配置中将几个域列入白名单,这样,只要这些域的所有电子邮件都使用 SPF 和/或 DKIM 进行了正确的身份验证,如果该域使用它们,它们就会被接受。这意味着来自这些域的电子邮件不应经过通常的 DNSBL 和灰名单流程,而只需经过 SPF 和 DKIM 验证。
sender_access
现在,通过配置文件并使用postmap
实用程序将其转换为合适的哈希数据库,我已经设法从灰名单过滤器中保存来自这些域的电子邮件。
主文件:
...
parent_domain_matches_subdomains = yes
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_rbl_client zen.spamhaus.org
reject_unauth_destination
check_sender_access hash:/etc/postfix/sender_access
check_policy_service unix:private/tumgreyspf
...
发件人访问:
domain1.com OK
domain2.net OK
我发现了postscreen并且还找到了一个简洁的小例子,但它似乎是一个 DNSBL-only 措施,对我的情况只有一点帮助。
每当您的限制不能全局应用于所有情况时,您可以使用Postfix 限制类。这个想法是排除一些域以分离限制。
我按照以下原则重新排序您当前的配置“轻量级检查应在重级检查之前执行”。所以,我建议配置变成
现在,应该通过这一行应用后缀限制类
check_sender_access hash:/etc/postfix/sender_access
。在此之前定义smtpd_restriction_classes参数main.cf
。于是内容就
/etc/postfix/sender_access
变成了逻辑是,postfix 将对所有域应用默认限制(permit_mynetwork、permit_sasl_authenticated、reject_unauth_destination)。然后因为 example.com 和 example.org 在whitelistdomain 类中,postfix 只执行check_policy_service unix:private/tumgreyspf。其他域应通过默认限制。
现在,问题是如何配置
tumgreyspf
从灰名单中排除这些域。基于此页面,这里是排除灰名单的步骤。请注意,此路径适用于 Debian。其他系统可能有不同的路径。
首先,为每个域创建一个文件夹
在中创建文件配置
/etc/tumgreyspf/disablegreylist.conf
现在,将其符号链接到每个域目录
更多信息,tumgreyspf 的 github 页面
只需
smtpd_recipient_restrictions
相应地排序。这个列表是从前到后处理的。一些过滤器可以返回拒绝或不返回(黑名单、spf;要么是恶意发件人,要么我们不知道)或许可(SASL、网络,如果它们不匹配,则继续)在您的情况下,它将是:
始终允许本地和经过身份验证的发件人。对于所有其他人,我们检查我们的
sender_access
文件。如果没有匹配,则继续使用黑名单、SPF 和灰名单。