![Postfix 和未知客户端的访问限制](https://linux22.com/image/644607/Postfix%20%E5%92%8C%E6%9C%AA%E7%9F%A5%E5%AE%A2%E6%88%B7%E7%AB%AF%E7%9A%84%E8%AE%BF%E9%97%AE%E9%99%90%E5%88%B6.png)
smtpd_reject_unlisted_sender
我正在尝试配置一个 Postfix 邮件服务器,但对类似参数之类的东西有疑问。
当然,我希望这样配置我的服务器,如果客户端(例如,[电子邮件保护]),即我的服务器托管域“mydomain.com”,使用其 SMTP 客户端 MUA(如 Outlook 或 Thunderbird),尝试从from
不同于的地址发送电子邮件john
,请求被拒绝,并且拒绝从未知“发件人”发送的所有邮件,除非该发件人属于其他“安全”/“存在”的域。
我知道如何配置这些东西,但我不知道这些限制的“范围”是什么。
具体例子:如果我设置smtpd_reject_unlist_sender
为on
,并且[电子邮件保护]发送电子邮件至[电子邮件保护]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 地址的信封是否存在。