邮件系统之 SPF reject

今天有客户打电话来,说不能发送邮件给我们,总是被退回,赶紧去服务器上翻了一下日志,大概列出部分内容如下:

(原文链接 http://ddbiz.com/?p=229)

...

2008-11-05 14:59:56.376147500 qmail-smtpd: spf-reject: HELO(ppt.com) from 220.168.182.245. MAILFROM:ygbcmjkh@ppt.com
2008-11-05 15:16:39.026731500 qmail-smtpd: spf-reject: HELO(163.com) from 119.131.38.59. MAILFROM:boyuangsg158@163.com
2008-11-05 15:33:12.943852500 qmail-smtpd: spf-reject: HELO(ibm.com) from 220.168.176.161. MAILFROM:dta@ibm.com
2008-11-05 16:52:05.517020500 qmail-smtpd: spf-reject: HELO(126.com) from 116.5.186.79. MAILFROM:huihua2006gongsi@126.com
2008-11-05 17:15:36.937319500 qmail-smtpd: spf-reject: HELO(ppt.com) from 220.168.182.245. MAILFROM:uvc@ppt.com
2008-11-05 17:42:48.931191500 qmail-smtpd: spf-reject: HELO(ibm.com) from 220.168.176.161. MAILFROM:lhjtaxqfs@ibm.com
2008-11-06 02:44:26.545103500 qmail-smtpd: spf-reject: HELO(ibm.com) from 220.168.182.67. MAILFROM:kyw@ibm.com
2008-11-06 04:00:36.046467500 qmail-smtpd: spf-reject: HELO(s1.mediagrade.com) from 209.188.84.148. MAILFROM:william@mediagrade.com
2008-11-06 04:07:57.727258500 qmail-smtpd: spf-reject: HELO(s1.mediagrade.com) from 209.188.84.148. MAILFROM:william@mediagrade.com
2008-11-06 06:32:27.099898500 qmail-smtpd: spf-reject: HELO(ibm.com) from 220.168.182.67. MAILFROM:vedxqmhkg@ibm.com
2008-11-06 06:53:53.347006500 qmail-smtpd: spf-reject: HELO(ibm.com) from 220.168.182.67. MAILFROM:si@ibm.com
2008-11-07 04:39:26.862175500 qmail-smtpd: spf-reject: HELO(s1.mediagrade.com) from 209.188.84.148. MAILFROM:william@mediagrade.com
2008-11-07 04:48:58.700226500 qmail-smtpd: spf-reject: HELO(s1.mediagrade.com) from 209.188.84.148. MAILFROM:william@mediagrade.com
2008-11-07 09:16:31.707701500 qmail-smtpd: spf-reject: HELO(s1.mediagrade.com) from 209.188.84.148. MAILFROM:william@mediagrade.com

2008-11-05 14:59:56.319463500 CHKUSER accepted sender: from <ygbcmjkh@ppt.com::> remote <ppt.com:unknown:220.168.182.245> rcpt <> : sender accepted
2008-11-05 14:59:56.376147500 qmail-smtpd: spf-reject: HELO(ppt.com) from 220.168.182.245. MAILFROM:ygbcmjkh@ppt.com
2008-11-05 17:15:35.892904500 CHKUSER accepted sender: from <uvc@ppt.com::> remote <ppt.com:unknown:220.168.182.245> rcpt <> : sender accepted
2008-11-05 17:15:36.937319500 qmail-smtpd: spf-reject: HELO(ppt.com) from 220.168.182.245. MAILFROM:uvc@ppt.com

...

查证后知道,上面大多数被 spf-reject 的邮件确实是非法的spammers伪造邮件,如 xxx@ibm.com,这些邮件都是spammers伪造的。但是也有正常的邮件,如:  william@mediagrade.com 只不过对方发送来的helo的域名为 s1.mediagrade.com,而不是mediagrade.com,并且两个域名的ip地址也不同,尽管都是同一个ip段的。

 

看来客户最近在调整服务器,而新的服务器配置没有做SPF Record. 造成我的服务器认为对方被假冒了,从而拒收邮件。下面我们先大概讲解一下SPF的概念,因为我的邮件服务器是用的Qmail,所有就结合Qmail的配置来说吧。

 

 SPF - Sender Policy Framework

 

SPF是一个基于DNS的 MX反向解析系统,采用在DNS内加入 SPF Record 的方式,用来指明只有域用户才被允许发送邮件。其目的是为了防止域用户的邮件地址被spammers伪造。

在Qmail中,SPF有4个配置文件(/var/qmail/control),一般系统漠然安装的话,会仅产生一个配置文件。

1. spfbehavior

spfbehavior是指明qmail系统是否启用反向解析。以前的qmail默认值是0(不启用),qmail-toaster 1.0.5以后,默认值就改为3. spfbehavior的取值意义为:
 0: 不做SPF检查
 1: 仅仅生成 Received-SPF 头,但是不阻止邮件投递
 2: 如果DNS检查出现问题,则产生一个 temporary 错误
 3: SPF解析错误是拒绝邮件,通常是指 deny
 4: SPF解析出现 softfail 时,拒绝邮件
 5: SPF解析出现 neutral 时,拒绝邮件
 6: SPF解析过程出现任何错误,拒绝邮件
 
环境变量 SPFBEHAVIOR 会覆盖 spfbehavior 的配置文件。当客户的请求环境中被设置了 RELAYCLIENT 时,Qmail不会启用 SPF 检查.

2. spfrules

spfrules 配置文件指明,如果根据 spfbehavior 的设定,一封邮件在检查SPF失败后(包括 fail, softfail, neutral),再执行 spfrules 的设定;spfrules 每行都表明了一条规则,如:
include: spf.abc.com
include: jxx.ori.com

3. spfguess

spfguess 配置文件指明,如果邮件发送者的服务器没有提供SPF配置(如目前花生壳上所作的域名就不能设置SPF Record),Qmail将进行 spfguess 指明的检查。如:
a mx

a  仅接收域名(如 domain.com)的IP地址为其A记录发送出来的邮件
mx 允许接收域名(如 domain.com)的MX服务器发送的邮件,如果日后域名增加了其他的mx记录,这些mx记录将被自动列入允许范围

4. spfexp

spfexp是自定义一个解释语句,当邮件发送者的发送请求被拒绝时,此语句显示给发送者。如

550 SPF not exist.

 

以上设定了 Qmail 的 SPF检查规则。我们还需要为自己的邮件服务器(域名)设置 SPF 规则,这样在发往其他域的邮件时,可以让别的服务器对我们的域名进行判定,防止某些人冒用我们的地址发送邮件:

 

通过 http://old.openspf.org/wizard.html 可以为我们完成格式化的TXT记录,如果我们的域名是 domain.com, 则类似如下:

 

v=spf1 a mx a:sub1.domain.com mx:mail.domain.com ~all

 

其中: sub1.domain.com 是区别于domain.com的IP的另外一个或者几个IP(可以添加多项)

        mail.domain.domain.com是domain.com的mx记录,此处也可以不用写,因为 spf1 a mx 已经允许 a, mx 的ip 发送邮件

~all 表明除了前面列出的 (a mx a:sub1.domain.com mx:mail.domain.com)的服务器,其他的服务器都不可以发送邮件

 

为邮件服务器设定SPF的更详细解释,可以参考另外一篇文章

垃圾邮件设定之 SPF

(原文链接 http://ddbiz.com/?p=229)

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值