机器通过 Postfix 2.11mail.domain.com
发送电子邮件,但今天查看文件时,我注意到一些机器上的 Wordpress以及 通过其中发件人地址发送电子邮件。显然他们配置了 Wordpress 进行身份验证并发送电子邮件到。domain.com
mail.log
wordpress.domain.com
blog.domain.com
mail.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
答案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
我希望有人能提供一些帮助。