我正在尝试在 postfix (Debian 12) 设置中为发件人和域实施黑名单。这是我目前所做的:
smtpd_sender_restrictions =
permit_sasl_authenticated,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
reject_unknown_client_hostname,
reject_unknown_reverse_client_hostname,
check_sender_access hash:/etc/postfix/access
和:
smtpd_recipient_restrictions =
permit_sasl_authenticated,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
reject_invalid_hostname,
reject_non_fqdn_hostname,
reject_unauth_destination,
reject_unauth_pipelining,
check_sender_access hash:/etc/postfix/access,
check_policy_service unix:private/policy, # SPF Checks
check_policy_service inet:127.0.0.1:10023 # Postgrey
据我所知,Postfix 文档中第一个适用于“MAIL FROM:”对话框,而第二个影响通信中的“RCPT TO:”对话框。
因此我的访问文件具有以下内容(postmap已完成):
.toobena.or.mg DISCARD Spam domain
但是我仍然可以使用要阻止访问的域的信封地址向我的本地帐户发送电子邮件。通过 telnet 查看对话框:
root@host:~# telnet mail.dom.com 25
Trying 18.16.42.16...
Connected to mail.dom.com.
Escape character is '^]'.
220 mail.dom.com ESMTP Postfix
ehlo mail.toobena.or.mg
250-mail.dom.com
[...]
mail from: [email protected]
250 2.1.0 Ok
我读到过一些限制是在稍后阶段而不是立即生效的。但是,我预计这里已经阻止了发送邮件的尝试。但如果没有,我可以轻松地插入已发送的本地帐户的邮件。这是成功发送的日志(应该被阻止):
Jun 12 20:51:41 nc postfix/smtpd[100170]: connect from mail.toobena.or.mg[5.104.111.28]
Jun 12 20:51:43 nc postfix/policy-spf[100175]: Policy action=PREPEND Received-SPF: pass (toobena.or.mg: 5.104.111.28 is authorized to use '[email protected]' in 'mfrom' identity (mechanism 'mx' matched)) receiver=mail.dom.com; identity=mailfrom; envelope-from="[email protected]"; helo=mail.toobena.or.mg; client-ip=5.104.111.28
Jun 12 20:51:43 nc postfix/smtpd[100170]: 07D1EDF910: client=mail.toobena.or.mg[5.104.111.28]
Jun 12 20:51:43 nc postfix/qmgr[99783]: 07D1EDF910: from=<[email protected]>, size=28861, nrcpt=1 (queue active)
Jun 12 20:51:43 nc postfix/smtpd[100170]: disconnect from mail.toobena.or.mg[5.104.111.28] ehlo=1 mail=1 rcpt=1 data=1 quit=1 commands=5
因此邮件会被接受并放入队列中等待本地投递。
我只是不明白为什么它会被接受。是的,发件人有有效的 SPF 记录。但它会覆盖其他检查吗?我以为它们是按顺序检查的 - 并且 spf 策略是最新的...
有人知道我在这里做错了什么吗?