未知客户端的后缀和访问限制

Per*_*-lk 3 email-server smtp postfix

我正在尝试配置一个 postfix 邮件服务器,但我对smtpd_reject_unlisted_sender诸如此类的参数有疑问。

当然,如果客户端(例如,john@mydomain.com)作为我的服务器的托管域“mydomain.com”,我想以这种方式配置我的服务器,使用其 SMTP 客户端 MUA(如 Outlook 或Thunderbird),尝试从与from不同的地址发送电子邮件john,请求被拒绝,并且还会拒绝来自未知“发件人”的每封邮件,除非该发件人属于其他“安全”/“存在”域。

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

具体示例:如果我设置smtpd_reject_unlist_senderon,并且 alice@gmail.com 向 john@mydomain.com 发送电子邮件,那么 alice 的邮件将被拒绝,因为它是一个未知的发件人?我不想拒绝这些类型的电子邮件,并且 postfix 配置没有指定每个*_reject_*参数(默认、托管或规范)属于哪个地址类。

Dam*_*lli 5

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

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

  • 一旦建立 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`
Run Code Online (Sandbox Code Playgroud)

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

Postfix 是一个非常复杂的系统,因此非常灵活和强大。您可以在官方网页(例如:http : //www.postfix.org/postconf.5.html)中找到很多信息,顺便说一句,还包括一些有用的配置,可用作您自己的设置(http://www.postfix.org/STANDARD_CONFIGURATION_README.html

PS:请对这个答案保持“友善”,因为这是我在 ServerFault/StackExchange 领域的第一次 POST ;-)