You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

配置严格SPF后仍有伪造本域发件人的垃圾邮件绕过拦截的技术求助

配置严格SPF后仍有伪造本域发件人的垃圾邮件绕过拦截的技术求助

老哥,我仔细扒了你的问题和两封样本邮件头,这事儿的核心漏洞其实出在你的服务器没对自己域的发件人做SPF校验,还有白名单直接“放水”了,咱们一步步捋清楚:

先搞懂你看到的SPF Pass是啥意思

你邮件里的Received-SPF: pass (domain of gmail.com designates <spammer's IP> as permitted sender)根本不是在检查你的wickenburg.us域!要么是垃圾邮件伪造的头(毕竟邮件头可以随便编),要么是中转服务器在检查它自己的域,和你的SPF规则半毛钱关系都没有——你的SPF只规定了谁能发wickenburg.us的邮件,但你的服务器根本没执行这个检查!

现在给你解决步骤,按顺序来:

1. 先把白名单的“坑”填上

看你的SpamAssassin报告里,USER_IN_WHITELIST直接扣了-100分,这等于给所有声称来自jones@wickenburg.us的邮件开了“免死金牌”,不管是不是垃圾邮件都直接放行。赶紧去检查:

  • 要么把jones@wickenburg.us从全局白名单里删掉
  • 要么改成**只允许来自你服务器IP(96.125.170.48)**的这个地址才能触发白名单

2. 让Exim强制检查本域发件人的SPF

你需要在Exim的配置文件里加一条规则,对所有声称来自wickenburg.us的邮件,必须过SPF验证,否则直接拒绝。

找到Exim的acl_check_recipient或者acl_check_data段,添加这段配置:

deny
    senders = *@wickenburg.us
    !verify = sender/spf
    message = SPF verification failed: Only our server (96.125.170.48) is allowed to send emails from wickenburg.us.

这段规则的意思是:只要发件人地址是@wickenburg.us结尾,且SPF验证不通过,直接打回,不给进服务器。

3. 配置DMARC记录,把SPF和From头绑定

你的SPF只检查信封发件人(SMTP协议里的MAIL FROM),但垃圾邮件会伪造显示在收件箱里的From头,这时候需要DMARC来管这个“对齐”问题。

给你的wickenburg.us域加一条DMARC TXT记录:
v=DMARC1; p=reject; sp=reject; rua=mailto:dmarc@wickenburg.us; ruf=mailto:dmarc@wickenburg.us; adkim=s; aspf=s
解释下关键参数:

  • p=reject:所有SPF/DKIM验证失败且对齐不匹配的邮件,直接拒绝
  • adkim=s/aspf=s:严格对齐,要求DKIM/SPF的域和From头的域完全一致,不让垃圾邮件钻空子
  • rua/ruf:接收DMARC报告,方便你后续看有没有漏网之鱼

4. 确认Exim的SPF模块已启用

一般Exim默认带SPF验证模块,但你得确保配置里调用了它。检查Exim配置里有没有类似这样的行:

spf_enable = true

如果没有,加上之后重启Exim。

为啥之前开DKIM没用?

看你的样本邮件,垃圾邮件的DKIM是@aol.com或者其他第三方域的,和你伪造的From@wickenburg.us完全不沾边,没有DMARC的对齐检查,DKIM验证通过也没用——DMARC才是管“DKIM/SPF的域和显示的发件人域是不是一伙的”这个事儿的。

按上面的步骤弄完,基本就能把这类伪造本域的垃圾邮件拦在门外了!

备注:内容来源于stack exchange,提问作者Macs R We

火山引擎 最新活动