我的用户通过 SASL 身份验证使用 SMTP AUTH 发送电子邮件。不幸的是,他们的邮件会被NoBounceOpenRelay
Amavis 标记为。
所以我将其设置为 postfix main.cf
smtpd_sasl_authenticated_header = yes
是否可以告诉 amavis 检查此电子邮件标题,以便我可以policy_bank
使用弹跳或者拒绝包含垃圾邮件的邮件?
答案1
看起来你的情况类似于Amavisd 文档中的这个示例案例
如果由于某种原因 SASL 用户连接到端口 25,作为替代方法,您可以让 Postfix 的 $mynetworks 和 SASL 身份验证发送方中的所有客户端绕过检查,并让其他所有内容落入设置 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
在此模式下,
- SASL 用户将被允许通过,
permit_sasl_authenticated
因此它将落入content_filter
参数即content_filter = smtp-amavis:[127.0.0.1]:10026
。 - 其他电子邮件将归入 catchall
check_client_access regexp:/etc/postfix/filter-catchall.regexp
。因此,它将通过 smtp-amavis:[127.0.0.1]:10024。
最后一部分是在端口10024和10026配置单独的策略库。
上述设置可以扩展为允许基于其他因素列入白名单,例如:SASL 用户名和发件人域。
对于 SASL 用户名,您可以使用检查 sasl 访问在 permit_sasl_authenticated 之前。注意:此功能适用于 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
对于发件人域名,您可以使用检查发送者访问
# 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