添加SPF记录防止邮件伪造

投稿作者:小傲世 围观人数:901 所属分类:网络技术

如果有人告诉你,你的服务器存在邮件伪造的时候,你可能还在疑惑:这到底是什么东西?有什么危害?和我有什么关系?

首先,我们来了解一下如何验证邮件伪造?

这里有一个老外做的在线测试网站:https://emkei.cz/

可以尝试使用这个网站测试发送一封邮件给自己。例如:检测说a.com存在邮件伪造漏洞。那么我们可以尝试使用admin@a.com作为发件人,给你自己的邮箱发送一封测试邮件。内容随意填写,不到一分钟你应该就能收到邮件了,也有可能会在垃圾邮件里。注意,请勿用于非法用途。

第二,它有什么危害?

其一:可以想见如果有一个a.com的用户,在收到admin@a.com的邮件后,用户很可能就相信这就是管理员(admin)发来的邮件。因此,用户很可能会毫不犹豫地点开邮件中的链接、下载并打开其中的附件。这个时候,作为一个a.com的用户,就很可能被攻击控制了。如果用户是管理员,那么可能服务器权限也会沦落他人之手。

其二:一个垃圾邮件生产者可以伪造海量的a.com域名的邮件来散播木马、病毒、钓鱼页面,色情、暴力、恐怖的信息,等等。其危害是不可预测的。

第三,我们该如何防止邮件伪造,它到底是什么?

SPF,全称为 Sender Policy Framework,即发件人策略框架,它的内容写在DNS的txt类型的记录里面;作用是防止别人伪造你的邮件地址进行发信,是一种非常高效的反垃圾邮件解决方案。

当前 Email 通信,还是在使用 SMTP 这个协议。SMTP 的全称为 Simple Mail Transfer Protocol,即「简单邮件传输协议」。正如它的名字锁暗示的,SMTP 实际上是一个非常简单(甚至简陋)的传输协议,本身并没有很好的安全措施。根据 SMTP 的规则,发件人的邮箱地址是可以由发信方任意声明的。在 SMTP 协议制定的时候也许还好,但在垃圾和诈骗邮件横行的今天,这显然是极不安全的。SPF 出现的目的,就是为了防止随意伪造发件人。

关于SPF的一切,你可以在这个网站(英文)上获得:http://www.openspf.org

第四,SPF 记录的原理是什么?

SPF 记录实际上是服务器的一个 DNS 记录,原理其实很简单:

假设邮件服务器收到了一封邮件,来自主机的 IP 是1.1.1.1并且声称发件人为email@example.com。为了确认发件人不是伪造的,邮件服务器会去查询example.com的 SPF 记录。如果该域的 SPF 记录设置允许 IP 为1.1.1.1的主机发送邮件,则服务器就认为这封邮件是合法的;如果不允许,则通常会退信,或将其标记为垃圾/仿冒邮件。

因为不怀好心的人虽然可以「声称」他的邮件来自example.com,但是他却无权操作example.com的 DNS 记录;同时他也无法伪造自己的 IP 地址。因此 SPF 是很有效的,当前基本上所有的邮件服务提供商(例如 Gmail、QQ 邮箱等)都会验证它。

第五:如何使用SPF,如何设置它?

首先,登录你的域名提供商的管理页面,这个页面就是通常是用来设置域名解析ip地址的地方。例如上述例子,可以这样声明,在域名的解析记录里添加一条txt记录:

记录名为admin,txt记录值为:v=spf1 ip4:1.1.1.1 -all

这样,就设置了你的邮件只能是从1.1.1.1这个ip发出的。当然这样设置有些问题就是你的域名可能需要变化的ip地址,或扩增多个ip,这时候就可以用其他方式,更改中间的部分(ip4对应位置):

记录名为admin,txt记录值为:v=spf1 include:spf1.a.com include:spf2.a.com -all

再设置一个spf1.a.com的txt解析记录,内容为:

记录名为spf1,txt记录值为:v=spf1 ip4:1.1.1.0/24 ip4:1.2.3.4 -all

其中include的意思是使用其后的地址的SPF记录。而ip4:1.1.1.0/24则是使用一个段。设置spf2.a.com与此类似。这样就可以使用更多的地址作为合法地址。也可以include多层,但常见的一般最多三层已经够用,最后一层要指定到具体的ip或域名。

其他如:v=spf1 a mx ip4:x.x.x.x -all 使用a记录,mx解析记录和指定的ip作为合法地址。

一条 SPF 记录定义了一个或者多个 mechanism,而 mechanism 则定义了哪些 IP 是允许的,哪些 IP 是拒绝的。

这些 mechanism 包括以下几类:

all | ip4 | ip6 | a | mx | ptr | exists | include
每个 mechanism 可以有四种前缀:
"+"  Pass(通过)
"-"  Fail(拒绝)
"~"  Soft Fail(软拒绝)
"?"  Neutral(中立)
建议使用“-all”来拒绝陌生地址的邮件。当使用“~all”时,一般会将邮件标记为垃圾邮件。但是由于有时人们还是会翻查垃圾邮件(甚至有时官方都会建议去检查垃圾邮件),因此这样处理并不安全。所以如无特殊需求,建议使用“-all”来拒绝。

禁用所有邮件服务:

记录名为需要添加SPF记录的域名前缀,txt记录值为:v=spf1 -all

腾讯邮箱可设置记录值为:v=spf1 include:spf.mail.qq.com ~all

163邮箱可设置记录值为:v=spf1 include:spf.163.com -all

其他邮箱都是一样的操作,自行顿悟即可~

写在最后,SPF 记录本质上是一个 DNS 记录,所以并不是修改之后立即生效的——通常需要几个小时的时间。好了本文就介绍到这,希望能帮到您,更多资料可前往官网查阅。

展开全文
表白墙

免责声明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!

已有次赞
我要评论 0条评论,0条回复
签到 图片评论介绍
请先登录后再评论
作者信息
最新评论
为您推荐
热门标签

登录您的账号