我的用户通过SASLauthentication发送带SMTP AUTH的电子邮件。 不幸的是,他们的邮件将被Amavis标记为NoBounceOpenRelay 。
所以我把它设置为postfix main.cf
smtpd_sasl_authenticated_header = yes
是否可以告诉amavis检查这个邮件头,所以我可以使用policy_bank来反弹或拒绝包含垃圾邮件的邮件?
看起来你的情况与Amavisd文档中的这个例子类似
如果由于某些原因,SASL用户连接到端口25,作为一种替代方法,您可以让Postfix'$ mynetworks和SASL auth发送者的所有客户端绕过检查,并让其他所有内容落入设置content_filter的catchall。
#main.cf content_filter = smtp-amavis:[127.0.0.1]:10026 smtpd_data_restrictions = reject_unauth_pipelining permit_mynetworks permit_sasl_authenticated check_client_access regexp:/etc/postfix/filter-catchall.regexp # /etc/postfix/filter-catchall.regexp: /^/ FILTER smtp-amavis:[127.0.0.1]:10024
在这种模式下,
permit_sasl_authenticated允许,因此它将落入content_filter参数,即content_filter = smtp-amavis:[127.0.0.1]:10026 。 check_client_access regexp:/etc/postfix/filter-catchall.regexp 。 所以,它会通过smtp-amavis:[127.0.0.1]:10024。 最后一部分是在10024和10026端口configuration单独的策略库。
以上设置可以扩展为允许基于其他因素的白名单,例如:SASL用户名和发件人域。
对于SASL用户名,您可以在permit_sasl_authenticated之前使用check_sasl_access 。 注意:此function适用于Postfix 2.11及更高版本。
# main.cf ... check_sasl_access hash:/etc/postfix/amavis-bypass-sasl permit_sasl_authenticated ... #/etc/postfix/amavis-bypass-sasl # Use this when smtpd_sasl_local_domain is empty. username FILTER smtp-amavis:[127.0.0.1]:10026 # Use this when smtpd_sasl_local_domain=example.com. [email protected] FILTER smtp-amavis:[127.0.0.1]:10026
对于发件人域,您可以使用check_sender_access
# main.cf ... check_sender_access hash:/etc/postfix/amavis-bypass-sender permit_sasl_authenticated ... #/etc/postfix/amavis-bypass-sasl # Use this when smtpd_sasl_local_domain is empty. internal.example.com FILTER smtp-amavis:[127.0.0.1]:10026 # Use this when smtpd_sasl_local_domain=example.com. whitelist.example.org FILTER smtp-amavis:[127.0.0.1]:10026