![postfix 跳过授权 SMTP 的垃圾邮件检查](https://linux22.com/image/486673/postfix%20%E8%B7%B3%E8%BF%87%E6%8E%88%E6%9D%83%20SMTP%20%E7%9A%84%E5%9E%83%E5%9C%BE%E9%82%AE%E4%BB%B6%E6%A3%80%E6%9F%A5.png)
有没有办法配置 postfix 以跳过对那些经过 SMTP-AUTH 的 smtp 连接的垃圾邮件/防病毒检查?我想保留对外部 smtp 流量的所有标准检查,但对于发送电子邮件的本地用户,我想跳过反垃圾邮件/防病毒检查。
我的配置有 Postfix + Amavisd + SpamAssassin + clamav,几乎是标准配置。
提前致谢。MR
答案1
在 main.cf 中,设置
smtpd_data_restrictions = reject_unauth_pipelining,permit_sasl_authenticated,check_sender_access pcre:/etc/postfix/content_filter.pcre
不要在 main.cf 中设置 content_filter=!
/etc/postfix/content_filter.pcre 应该是这样的:
/^/ FILTER smtp-amavis:[127.0.0.1]:10024
别忘了跑
postmap /etc/postfix/content_filter.pcre
master.cf 应该是这样的:
127.0.0.1:10025 inet n - n - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_data_restrictions=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
smtp-amavis unix - - n - 16 lmtp
-o lmtp_data_done_timeout=1200
-o lmtp_send_vforward_command=yes
-o disable_dns_lookups=yes
希望这能有所帮助。请参阅http://www.postfix.org/postconf.5.html了解更多信息。
答案2
在您的 main.cf 文件中,假设您的垃圾邮件过滤器位于 a smtpd_recipient_restrictions
(或smtpd_data_restrictions
/ smtpd_something_restrictions
) 中,请permit_sasl_authenticated
在其他任何内容之前添加。这将在流程中尽早接受经过身份验证的用户,而无需运行任何进一步的检查。可能有一种方法可以将垃圾邮件/病毒扫描包含在行中,smtpd_*_restrictions
使用类似条目的内容check_policy_service
,它将检查 master.cf 中定义的服务。我目前使用它来对所有邮件运行外部 spf 测试,但我希望它也能用于其他检查。
答案3
pcre
文件不应该后映射。
如果端口 25 未与 sasl 身份验证一起使用,则仅在 smtp 端口 25 中使用 content_filter 将会为 smtp 身份验证用户禁用它。
配置起来并不是很困难。