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

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

smtpd_reject_unlisted_sender我正在尝试配置一个 Postfix 邮件服务器,但对类似参数之类的东西有疑问。

当然,我希望这样配置我的服务器,如果客户端(例如,[电子邮件保护]),即我的服务器托管域“mydomain.com”,使用其 SMTP 客户端 MUA(如 Outlook 或 Thunderbird),尝试从from不同于的地址发送电子邮件john,请求被拒绝,并且拒绝从未知“发件人”发送的所有邮件,除非该发件人属于其他“安全”/“存在”的域。

我知道如何配置这些东西,但我不知道这些限制的“范围”是什么。

具体例子:如果我设置smtpd_reject_unlist_senderon,并且[电子邮件保护]发送电子邮件至[电子邮件保护]alice 的邮件会被拒绝吗,因为它是未知发件人?我不想拒绝这些类型的电子邮件,而且 postfix 配置没有指定每个参数属于哪个地址类*_reject_*(默认、托管或规范)。

答案1

Postfix 提供了几种“检查”,可以在传入 SMTP 连接的不同“阶段”进行评估。“检查”类似于“远程客户端是否经过 SASL 认证?”,“远程客户端是否提供了 FQDN HELO 主机名?”,“远程客户端是否要求 SMTP 流水线?“, 也 ”远程客户端是否在某些 RBL 中被列入黑名单?“ 或者 ”远程客户端是否从我的某个 IP 子网连接”吗?

可以在 SMTP 事务的不同阶段评估此类检查:

  • 一旦建立 TCP 连接(smtpd_客户端限制
  • 当客户端发出“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`

为了正确记录可能不为人知的有用信息,“smtpd_客户端限制”(或其他) 上下文中,参数“smtpd_delay_reject=yes”可能会很有用,因为它会延迟“拒绝时间”,从而收集其他信息(例如,收件人非常有用,可以正确解决最终用户抱怨丢失收到的邮件的问题)。

Postfix 是一个非常复杂的系统,因此非常灵活且功能强大。您可以在官方网页上找到大量信息(例如:http://www.postfix.org/postconf.5.html),顺便说一下,它还包括一些有用的配置,可以作为你自己设置的起点(http://www.postfix.org/STANDARD_CONFIGURATION_README.html

附言:请“友善”地回答这个问题...这是我在 ServerFault/StackExchange 领域发表的第一篇帖子 ;-)

答案2

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

相关内容