如何防止远程主机将邮件传送到带有欺骗From头的Postfix?

我有一个主机,我们称之为foo.com,我在Debian上运行Postfix。 Postfix目前configuration为做这些事情:

  1. 所有以@ foo.com作为收件人的邮件都由这个Postfix服务器处理。 它将所有这样的邮件转发到我的Gmail帐户。 防火墙因此允许端口25。
  2. 与另一个域作为收件人的所有邮件都被拒绝。
  3. 已经为foo.com域设置了SPFlogging,并说foo.com是来自@ foo.com的所有邮件的唯一来源。
  4. 在foo.com上运行的应用程序可以连接到localhost:25来发送邮件,用[email protected]作为发送者。

不过,我最近注意到一些垃圾邮件发送者能够在通过SPF检查时向我发送垃圾邮件。 进一步检查,它看起来像他们连接到我的Postfix服务器,然后说

HELO bar.com MAIL FROM:<[email protected]> <---- this! RCPT TO:<[email protected]> DATA From: "Buy Viagra" <[email protected]> <--- and this! ... 

我如何防止这种情况? 我只希望在本地主机上运行的应用程序能够说: MAIL FROM:<[email protected]> 。 这是我目前的configuration(main.cf): https : //gist.github.com/1283647

您需要smtpd_sender_restrictions为:

 smtpd_sender_restrictions = permit_mynetworks, check_sender_access hash:/etc/postfix/notfromme 

并在/etc/postfix/notfromme你把

 foo.com REJECT 

然后postmap /etc/postfix/notfromme并重新加载postfix。

完成。

这是我的承诺:

SPFv1保护信封寄件人地址(Return-Path),而不是寄件人寄件人地址(From)。 在大多数情况下(至less我见过),头部发件人地址(From)被欺骗(如foo.com),但这不是SPFv1正在检查的内容,因此它会通过。

我想如果你添加:

smtpd_helo_required = yes smtpd_helo_restrictions = permit_mynetworks check_helo_access hash:/ etc / postfix / helo_access,

到你的main.cf,和:

foo.com拒绝

到/ etc / postfix / helo_access,然后是“postmap helo_access”,然后重新启动postfix,这意味着任何将自己标识为“@ foo.com”的人将被直接拒绝,除非连接来自localhost,在这种情况下,允许(由于permit_mynetworks排名高于check_helo_access)。

编辑 – 实际上,这可能不会有帮助的情况下,有人标识为“HELO randomhost.net”,然后从@ foo.com发送邮件。 你需要实现的可能是header_checks:

http://www.postfix.org/header_checks.5.html http://www.postfix.org/BUILTIN_FILTER_README.html#remote_only

一旦将header_checksconfiguration为发现@ foo.com邮件,您应该能够configurationmaster.cf,以便localhost中的任何内容都可以跳过这些检查,并且只检查来自其他系统的传入邮件。 然后,当您从另一个互联网系统收到来自@ foo.com的电子邮件时,应该丢弃该电子邮件。