我的问题类似于这个 ,但我正在运行一个较新版本的Postfix和那里的答案没有真正回答我的问题。
我使用的是Postfix 2.11,运行Debian Jessie服务器。
到目前为止,我明白Postfix有这些检查:
smtpd_client_restrictions smtpd_helo_restrictions smtpd_sender_restrictions smtpd_relay_restrictions smtpd_recipient_restrictions 从我读到的 ,Postfix将按照上述顺序处理它们。
现在我的问题是,当限制条目与OK匹配时会发生什么? 这是否意味着Postfix将跳过来自特定 *_restriction的剩余检查,还是会一起跳过所有 *_restrictions ?
除OK和REJECT之外是否还有其他可能发生的结果,或者这些检查有什么合适的值?
如果大多数教程仅提及smtpd_client_restrictions或smtpd_recipient_restrictions ,还有什么其他_restrictions用于?
现在,如果您以任何一种方式回答问题1,将所有检查放入上述的*_restrictions之一,将极有可能不会成功,因为白名单将覆盖SPF检查。
因此,我的configuration看起来像这样:
# basic configuration (myorigin, mydomain, etc.) smtpd_helo_required = yes smtpd_client_restrictions = check_client_access hash:/etc/postfix/blackwhitelists/whitelisted_client_addresses, check_reverse_client_hostname_access hash:/etc/postfix/blackwhitelists/blacklisted_reverse_hostnames, reject_rbl_client zen.spamhaus.org, reject_rbl_client bl.spamcop.net, reject_rbl_client dnsbl.sorbs.net, reject_unknown_client smtpd_helo_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname, reject_unknown_helo_hostname, reject_unauth_pipelining smtpd_sender_restrictions = permit_sasl_authenticated, permit_mynetworks, check_sender_access hash:/etc/postfix/blackwhitelists/blacklisted_sender_addresses smtpd_relay_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination, reject_unauth_pipelining, check_sender_access hash:/etc/postfix/blackwhitelists/whitelisted_sender_addresses, reject_non_fqdn_sender, reject_unknown_sender_domain, check_policy_service unix:private/policyd-spf, check_policy_service unix:/var/spool/postfix/postgrey/socket smtpd_etrn_restrictions = permit_sasl_authenticated, permit_mynetworks, reject # more basic configuration
正如你所看到的,现在很多选项都在重复着,因为我不确定,如果我还需要其他的限制。 总而言之,我认为这也相当糟糕。
我也运行SpamAssassin邮件通过所有这些检查。
这些限制适用于在SMTP对话的特定阶段可用的信息,即:
smtpd_client_restrictions适用于初始连接(IP / FQDN) smtpd_helo_restrictions应用于客户端HELO / EHLO命令 smtpd_sender_restrictions应用于MAIL FROM命令 smtpd_recipient_restrictions应用于RCPT TO命令 smtpd_relay_restrictions控制中继到第三方域。
在这些限制中的每个限制内的所有项目都会按照给定的顺序进行评估,如果有任何项目与此限制顺序的处理相符,则会停止并执行指定的操作。 完整的可能操作列表可以access(5)手册页。
如果行动是接受的或者其任何同义词评估进行到下一阶段的规则集。 如果操作是拒绝(或其兄弟),则向发送者返回错误,并且不进行进一步的处理。
你的规则看起来不错,但是限制性太强,容易出错 – 例如,发件人的DNS服务器closures,没有邮件被接收,HELO / EHLO限制将禁止configuration不良的Exchange服务器和其他一些深奥的邮件。
根据我的经验,我build议将其设置为最小值,并将所有RBL,HELO检查和反向检查与评分策略服务守护进程(例如postfwd2 。 在那里,你可以微调适用于所有这些小事情的政策,并根据复杂的参数采取不同的行动,而不是单一的打击。