设置SPF记录,防止邮件地址被盗用

因为某些原因,我的域名被各种广告机认为是企业域名,然后疯狂的给我群发各种代开发票偷税漏税的邮件。嗯,我就不说我真的不需要这些了。
由于更多的原因,我的邮箱是开启了“错误地址转发”功能的,也就是说如果给一个不存在的邮箱地址发送邮件,那么它会被投递到我的主邮箱中。方便我使用的同时也就导致了大量垃圾邮件的产生。
最近我频繁收到一些奇怪的退信,大致的意思就是我发到他们那边的邮件邮箱是不存在的。而我却压根没有发过那些邮件。检查了一下其中一封邮件,如下:

您好!您的邮件不能成功的递送到指定地址。这是一个永久的错误,因此不得不放弃继续递送。

<zengcheng@chinalightsolar.com>, the user's maildir is over the allowed quota (size : 105328857)

--- Below this line is a copy of the message.
Received: from SCWT-18.yinksoft.com ([115.63.10.56])
(envelope-sender <wljgipl9400@best33.com>)
by 192.168.16.101 with ESMTP
for <zengcheng@chinalightsolar.com>; Sun, 05 May 2013 03:25:13 +0800
Date: Sun, 5 May 2013 03:25:16 +0800
Subject:  Dz,
From: " " <Wljgipl9400@best33.com>
Reply-To: " " <Wljgipl9400@best33.com>
To: <zengcheng@chinalightsolar.com>
(以下省略)

很明显,我是不会有Wljgipl9400@best33.com这么一个邮箱的。看Received字段,有一个很神奇的域名:yinksoft.com。Google之,发现是一个垃圾邮件发送公司,鄙视。
稍微思考了一下,这封退信是这么到我的邮箱里面来的:这个叫yinksoft的公司(或者是它卖的软件)其中投递了一封邮件给zengcheng@chinalightsolar.com。而zengcheng这个倒霉鬼的邮箱早就被发爆掉了,所以chinalightsolar的邮件服务器就把这封邮件退回来了。那么退到哪里呢?好死不死的,这个yinksoft的发信软件把发件人地址填成了我域名下的邮箱wljgipl9400@best33.com。由于chinalightsolar是一个正规的邮件投递者,Gmail就没有把它当成垃圾邮件过滤,从而经过错误地址转发到达我的邮箱。
那么事情就很明显了,我的域名best33.com被盗用,盗用者伪装成我的域名下面的邮件地址给别人发送邮件。好吧,这种情况真够神奇的,由于SMTP的协议缺陷,这样做是完全没有问题的。那么要怎么解决呢?答案就是传说中的“SPF”记录了。
SPF记录的工作原理也很简单。把一条TXT记录加入到你域名下就能工作。工作的时候,接收邮件的服务器对你的DNS服务器进行查询,确认你的SPF记录,而后对SPF记录中记载的服务器进行查询,和收到邮件的IP地址比对就能确认这封邮件是不是你发送的。
由于SPF记录其实就是一条TXT记录,现在的主流解析商比如DNSPod都已经支持了。在@下的TXT记录下加入一句SPF记录就好了。我这里是Gmail的,其它邮箱的请查询你自己的提供商:
v=spf1 include:_spf.google.com ~all
只需这么一个记录就能将垃圾邮件阻挡在外啦~解析完成后可以自己dig查询一下:

$ dig best33.com txt

; <<>> DiG 9.9.2-P1 <<>> best33.com txt
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34100
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;best33.com.                    IN      TXT

;; ANSWER SECTION:
best33.com.             600     IN      TXT     "v=spf1 include:_spf.google.com ~all"

;; Query time: 102 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Fri May 10 13:47:00 2013
;; MSG SIZE  rcvd: 87

嗯,看起来毫无问题,尝试外发和收信都无压力,问题算是解决了。

评论

tiandi

目前SPF倒是一种好手段,用来识别地址的真伪。不过SPF也有麻烦的地方,比如黑莓手机的邮件系统,都是通过黑莓网关代理发送的,还得额外添加配置。

mllao

大神,想请教一下,这边有个客户,在后台服务器没有查到发往qq的垃圾记录,检查这个客户已经设置SPF了,但是他收到qq发过来大量的主题含“自动回复”的邮件,这些邮件都由qq发出的SPF设置也是通过的,所以就搞不清楚为啥这些邮件会发到客户那边去了……

三三

现在国内的主流邮箱提供商都支持 DMARC 了,设置 DMARC 配合 SPF 可能会更加有效;SPF 记录参考价值会不如 DMARC 那么高。

发表评论

发表评论代表你授权本网站存储并在必要情况下使用你输入的邮箱地址、连接本站服务器使用的 IP 地址和用户代理字符串 (User Agent) 用于发送评论回复邮件,以及将上述信息分享给 Libravatar Akismet,用于显示头像和反垃圾。