Postfix和未知客户端的访问限制

我想configuration一个后缀的邮件服务器,我有一个像smtpd_reject_unlisted_sender和类似的东西的参数怀疑。

当然,如果客户端(例如[email protected])是我的服务器的托pipe域“mydomain.com”,使用其SMTP客户端MUA(如Outlook或Thunderbird)尝试fromjohn不同的发件人地址发送电子邮件,拒绝该请求,并拒绝从未知“发件人”发送的每个邮件,除非该发件人属于其他“安全”/“存在”域。

我知道如何configuration这些东西,但是我不知道这些重新定义的“范围”是什么。

具体的例子:如果我将smtpd_reject_unlist_sender设置为on ,并且[email protected]发送电子邮件给[email protected],alice的邮件将被拒绝,因为它是一个未知的发件人? 我不想拒绝这些types的电子邮件,并且postfixconfiguration没有指定哪个地址类属于每个*_reject_*参数(默认,托pipe或规范)。

Postfix提供了几个“检查”,可以在传入SMTP连接的不同“阶段”进行评估。 “检查”就像“ 是远程客户端SASLauthentication? “,” 是提供FQDN HELO主机名的远程客户端? “,” 是远程客户端要求SMTPstream水线? “以及” 是否将远程客户列入黑名单? “或” 是从我的一个IP子网连接的远程客户端 “?

这种检查可以在SMTP交易的不同阶段进行评估:

  • 只要build立了TCP连接( smtpd_client_restrictions
  • 当客户端发出“MAIL FROM”命令( smtpd_sender_restrictions
  • 当客户端发送“RCPT TO”命令( smtpd_recipient_restrictions

以及其他阶段。

上面的限制/指令可以按照以下示例进行组合(请注意,“ ……按照指定的顺序应用了限制;第一个与获胜相匹配的限制 ”):

 smtpd_client_restrictions = permit_sasl_authenticated check_client_access hash:/etc/postfix/access check_policy_service inet:127.0.0.1:4466 warn_if_reject reject_unknown_reverse_client_hostname reject_non_fqdn_helo_hostname reject_unauth_pipelining reject_invalid_helo_hostname reject_rbl_client bl.spamcop.net smtpd_sender_restrictions = reject_non_fqdn_sender, reject_unknown_sender_domain, check_sender_access hash:/etc/postfix/sender_access smtpd_recipient_restrictions = check_policy_service inet:127.0.0.1:10045, permit_sasl_authenticated, reject_invalid_helo_hostname, reject_non_fqdn_recipient, reject_unknown_recipient_domain, check_recipient_access hash:/etc/postfix/access_recipient permit_mynetworks, warn_if_reject reject_unverified_recipient, reject_unauth_destination, check_policy_service inet:127.0.0.1:2501` 

为了正确地logging“ smtpd_client_restrictions ”(或其他)上下文中可能不知道的有用信息,参数“smtpd_delay_reject = yes”可能会有用,因为它会延迟“拒绝时间”,因此要收集其他信息例如,收件人对正确解决最终用户抱怨丢失收到的邮件的问题非常有用)。

Postfix是一个非常复杂的系统,因此非常灵活和强大。 您可以在官方网页( http://www.postfix.org/postconf.5.html )中find大量的信息,BTW也包含一些有用的configuration,可以作为一个起点您自己的设置( http://www.postfix.org/STANDARD_CONFIGURATION_README.html

PS:请,这样的答案是“善良”…这是我在ServerFault / StackExchange舞台上的第一次POST 😉

smtpd_reject_unlisted_sender用于控制来自本地提交的邮件或来自提交端口的saslauthentication用户。 它会根据虚拟域或规范地址中的地址,检查用户发出的电子邮件中是否存在信封,即SMTP FROM地址。