与发件人身份validation相结合的Postfix域白名单

我希望将Postfixconfiguration中的多个域列入白名单,以便只要使用SPF和/或DKIM对其进行了适当的身份validation,就可以接受来自这些域的所有电子邮件。 这意味着来自这些域名的电子邮件应该受到通常的DNSBL和灰名单过程的限制,只能进行SPF和DKIMvalidation。

现在,我已经设法通过configurationsender_access文件并使用sender_access实用程序将其转换为合适的散列数据库来保存来自sender_access milter的这些域的电子邮件。

main.cf

 ... 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 ... 

sender_access

 domain1.com OK domain2.net OK 

我已经发现了关于postscreen ,也发现了一个整洁的小例子 ,但它似乎是一个DNSBL的措施,只是在我的情况稍有帮助。

无论何时您的限制不能全局应用于所有情况,您可以使用Postfix限制类 。 这个想法是排除一些域来分开限制。

我按照以下原则对当前的configuration进行重新sorting:“轻量级检查应该在重型检查之前执行” 所以,我build议configuration成为

 smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination check_sender_access hash:/etc/postfix/sender_access reject_rbl_client zen.spamhaus.org check_policy_service unix:private/tumgreyspf 

现在, postfix限制类应该通过这一行check_sender_access hash:/etc/postfix/sender_access 。 在此之前,定义main.cfsmtpd_restriction_classes参数。

 smtpd_restriction_classes = whitelistdomain whitelistdomain = check_policy_service unix:private/tumgreyspf 

因此/etc/postfix/sender_access变成了

 example.com whitelistdomain example.org whitelistdomain 

逻辑是,postfix将默认限制( permit_mynetwork,permit_sasl_authenticated,reject_unauth_destination )应用到所有的域。 然后,因为example.com和example.org在whitelistdomain类中 ,postfix只执行check_policy_service unix:private / tumgreyspf 。 其他域应该通过默认限制。


现在,问题是如何configurationtumgreyspf从灰名单中排除这些域。

基于此页面 ,这里是排除灰名单的步骤。 注意这个path适用于Debian。 其他系统可能有不同的path。

首先,为每个域创build一个文件夹

 mkdir -p /var/lib/tumgreyspf/config/envelope_sender/example.com/ mkdir -p /var/lib/tumgreyspf/config/envelope_sender/example.org/ 

/etc/tumgreyspf/disablegreylist.conf创build文件configuration

 SPFSEEDONLY = 0 GREYLISTTIME = 600 CHECKERS = spf OTHERCONFIGS = 

现在,将其链接到每个域目录中

 ln -s /etc/tumgreyspf/disablegreylist.conf /var/lib/tumgreyspf/config/envelope_sender/example.org/__default__ ln -s /etc/tumgreyspf/disablegreylist.conf /var/lib/tumgreyspf/config/envelope_sender/example.com/__default__ 

更多信息, tumgreyspf的github页面

只要相应地sorting您的smtpd_recipient_restrictions 。 这个列表是从前到后处理的。 一些filter可以返回一个拒绝或没有(黑名单,SPF;或者它是一个恶意的发件人或我们不知道)或许可证(SASL,networking,如果他们不匹配,继续)

在你的情况下,这将是:

 smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated check_policy_service unix:private/tumgreyspf check_sender_access hash:/etc/postfix/sender_access reject_rbl_client zen.spamhaus.org reject_unauth_destination 

本地和authenicated发件人总是允许的。 对于所有其他我们检查我们的sender_access文件。 如果没有匹配继续黑名单,SPF和灰名单。