Postfix 拒绝没有 MX 记录的域的客户端

Postfix 拒绝没有 MX 记录的域的客户端

机器通过 Postfix 2.11mail.domain.com发送电子邮件,但今天查看文件时,我注意到一些机器上的 Wordpress以及 通过其中发件人地址发送电子邮件。显然他们配置了 Wordpress 进行身份验证并发送电子邮件到。domain.commail.logwordpress.domain.comblog.domain.commail.domain.com[email protected][email protected]mail.domain.com

这里的问题是mail.domain.com负责发送电子邮件,domain.com但不是*.domain.com,所以后者没有 DKIM 签名,显然不是有效的收件人地址,因为这些域无法接收电子邮件,所以我想拒绝使用无法接收电子邮件的域地址的客户端*.domain.com

我一直在查看文档,http://www.postfix.org/postconf.5.html但找不到一个完美的解决方案。有人知道我该怎么做吗?

多谢

答案1

您可以使用parent_domain_matches_subdomains和来实现它smtpd_sender_restrictions。将以下内容添加到您的main.cf

#/etc/postfix/main.cf
#...
parent_domain_matches_subdomains =
smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender_blacklists
#...

#/etc/postfix/sender_blacklists
domain.com      OK
.domain.com     REJECT

参考:Postfix 访问自述文件

答案2

编辑:删除 warn_if_rejected 解决了问题。愚蠢的错误!!:D

为了避免发件人地址欺骗,我尝试了以下设置,但没有成功:

smtpd_sender_restrictions在声明中,在现有政策基础上添加了以下政策:

拒绝未列出的发件人时发出警告,
警告如果拒绝拒绝已验证的发送者登录不匹配

我还添加了下表,以便让 Postfix 知道发件人登录不匹配的情况:

## 可选查找表,其中包含拥有发件人(MAIL FROM)地址的 SASL 登录名。
smtpd_sender_login_maps = 代理:mysql:/etc/postfix/mysql_sender_login_maps.cf

$ cat /etc/postfix/mysql_sender_login_maps.cf

用户=mail_user
密码=mail_user_password
数据库名称=mail_db
主机=127.0.0.1
查询 = 从 `users` 中选择 u.email,其中 u.email = '%s' 并且 u.enabled 为 TRUE

虽然之前的设置似乎运行良好,但我遇到了一个小问题,导致一切都无法进行。目前,Postfix 根据发件人/发件人地址的所有者拒绝电子邮件欺骗,但在将电子邮件传递给 amavisd-new 以扫描内容后,当 amavisd-new 将电子邮件注入 Postfix 时,我不知道 Postfix 最终为何会发送电子邮件。我猜想,可能在 master.cf 的某个地方,某些限制被覆盖了,但我找不到错误。

这是 mail.loghttps://gist.github.com/anonymous/2cb8736aa2baeef7dbd8在哪里检查它是如何先被拒绝然后被交付的。

以下是 master.cf,以防需要编辑https://gist.github.com/sibok/7d10c8d267170f4deb43

$ postconf |grep mail_version mail_version = 2.11.0

$ postconf-n https://gist.github.com/sibok/b3c8208d3fae7d696e3f

我希望有人能提供一些帮助。

相关内容