我有一个主机,我们称之为foo.com,我在Debian上运行Postfix。 Postfix目前configuration为做这些事情:
不过,我最近注意到一些垃圾邮件发送者能够在通过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的电子邮件时,应该丢弃该电子邮件。