融资租赁行业收入:SPF记录

来源:百度文库 编辑:中财网 时间:2024/04/29 10:32:38

SPF记录

  

什么是SPF?

SPF就是Sender Policy Framework。SPF可以防止别人伪造你来发邮件,是一个反伪造性邮件的解决方案。当你定义了你的domain name的SPF记录之后,接收邮件方会根据你的SPF记录来确定连接过来的IP地址是否被包含在SPF记录里面,如果在,则认为是一封正确的邮件,否则则认为是一封伪造的邮件。关于更详细的信息请参考RFC4408(http://www.ietf.org/rfc/rfc4408.txt)

  SPF是为了防范垃圾邮件而提出来的一种DNS记录类型,它是一种TXT类型的记录,它用于登记某个域名拥有的用来外发邮件的所有IP地址。例如:   dig TXT 21cn.com   21cn.com. 27970 IN TXT "v=spf1 ip4:202.105.45.0/24 ip4:61.140.60.0/24 ip4:202.123.79.206 ip4:220.232.167.218 ip4:221.192.129.0/24 ip4:59.36.102.0/24 -all"   按照SPF的格式在DNS记录中增加一条TXT类型的记录,将提高该域名的信誉度,同时可以防止垃圾邮件伪造该域的发件人发送垃圾邮件。   SPF是跟DNS相关的一项技术,它的内容写在DNS的txt类型的记录里面。mx记录的作用是给寄信者指明某个域名的邮件服务器有哪些。SPF的作用跟mx相反,它向收信者表明,哪些邮件服务器是经过某个域名认可会发送邮件的。   由定义可以看出,SPF的作用主要是反垃圾邮件,主要针对那些发信人伪造域名的垃圾邮件。   例如:当coremail邮件服务器收到自称发件人是spam@gmail.com的邮件,那么到底它是不是真的gmail.com的邮件服务器发过来的呢?那么我们可以查询gmail.com的SPF记录

目前,SPF国内应用现状

目前包括新浪、尚易、263等主流的邮件运营商,都设置有自己的SPF,同时,作为运营企业邮箱的263网络通信针对终端客户,也有相关的263企业邮局SPF设置规范,其中TXT记录已经做为一项必不可少的增值服务提供给了终端客户。

相关邮件厂商的SPF设置规范:

263:v=spf1 include:spf.263xmail.com ~all

尚易:v=spf1 mx ptr ~all

新浪免费:v=spf1 include:spf.sinamail.sina.com.cn –all

搜狐免费:

"v=spf1 ip4:61.135.130.0/23 ip4:61.135.132.0/23 ip4:61.135.134.0/23 ip4:

61.135.145.0/23 ip4:61.135.150.0/23 ip4:220.181.26.0/24 ip4:222.28.152.128/25 ip

4:218.206.87.0/25 ip4:221.236.12.128 ip4:203.184.141.0/24 ip4:61.152.234.0/24 ~a

ll"

查看SPF记录的方法

  Windows下进入DOS模式后用以下命令   nslookup -type=txt 域名   Unix操作系统下用:   # dig -t txt 域名   关于SPF的一些知识   当前市场上很多邮件系统和供应商都已经开始支持SPF,比如163.com,那么该如何得到163.com的SPF值呢?在CMD环境中,键入:   nslookup   set type=txt   163.com   就会得到以下的结果:   163.com text =   "v=spf1 ip4:220.181.12.0/22 ip4:202.108.9.128/25 ip4:202.108.5.0/24 ~all"   163.com nameserver = ns3.nease.net   163.com nameserver = ns.nease.net   ns.nease.net internet address = 202.106.185.75   ns3.nease.net internet address = 220.181.28.3   其中:"v=spf1 ip4:220.181.12.0/22 ip4:202.108.9.128/25 ip4:202.108.5.0/24 ~all"就是163.com的SPF值。这个数据中说明了163.com有效合法服务器都有哪些!   那么我们该如何创建呢?   进入域名解析创建一条TXT记录填写正确的SPF数据就可以生效了。   在MDaemon7.x中启用SPF功能,并作适当调整就可以了。   另外8.x版本新增加了一个DomainKey签名,不过MDaemon已经自动帮你创建。   另外给大家一个网址,很实用   http://www.microsoft.com/mscorp/safety/content/technologies/senderid/wizard/   这个网址是一个创建SenderID的向导网站,他能帮你创建一个SenderID值。   SenderID (寄件人身份识别技术)。   SPF(SenderPolicyFramework,寄件人政策架构)。   SenderID技术与SPF一样,都是一种以IP(互联网协定)位址认证电子邮件寄件人身份的技术。   SPF 诞生于2003年,它的缔造者 Meng Weng Wong 结合了反向 MX 域名解析(Reverse MX) 和 DMP (Designated Mailer Protocol) 的优点而付予了 SPF 生命。   SPF 使用电子邮件头部信息中的 return-path (或 MAIL FROM) 字段,因为所有的 MTA 都可以处理包含这些字段的邮件。不过微软也提出了一种叫做 PRA (Purported Responsible Address)的方法。PRA 对应于 MUA (比如 thunderbird) 使用的终端用户的地址。   这样,当我们把 SPF 和 PRA 结合起来的时候,就可以得到所谓的“Sender ID”了。Sender ID 允许电子邮件的接收者通过检查 MAIL FROM 和 PRA 来验证邮件的合法性。有的说法认为,MAIL FROM 检查由 MTA 进行,而 PRA 检查由 MUA 来完成。   事实上,SPF 需要 DNS 以某种特定的方式来工作。也就是必须提供所谓的“反向 MX 解析”记录,这些记录用来解析来自给定域名的邮件对应的发送主机。这和目前使用的 MX 记录不通,后者是用来解析给定域名对应的接收邮件的主机的。

添加SPF记录的方法:

    这方法很简单,只要我们的DNS供应商提供的管理界面中可以添加SPF记录就可以设置了(不是所有的供应商会提供这设置,我的域名是在 godaddy.com上注册的,可以设置SPF记录)。设置时,添加一个SPF记录,然后输入域名,如果是本域,可用@来表示。然后在VALUE中输入如“v=spf1 ip4:67.202.107.106 -all”的值。 这值分三部分:

   (1)v=spf1 说明是一个SPF的v1记录

   (2)ip4:67.202.107.106 说明邮件会从此声明IPv4地址发出。它可以是一个IP,或一个IP段。如果有多个IP或多个IP段的话,可以声明多个ip4记录(如 “ip4:1.0.1.0/24 ip4:1.0.2.0/24″),每个ip4记录间用空格分隔。另外,除了用IPv4外,还可以有如下选择:

       1) ip6: 使用IPv6 进行验证。

       2) a: 使用一个域名进行验证。这将引起对域名服务器进行一次A RR 查询。可以按照a:domain, a:domain/cidr 或a/cidr 的形式来使用。

       3) mx: 使用DNS MX RR 进行验证。MX RR 定义了收信的MTA,这可能和发信的MTA 是不同的,这种情况基于mx 的测试将会失败。 可以用mx:domain, mx:domain/cidr 或mx/cidr 这些形式进行mx 验证。

       4) ptr: 使用域名服务器的PTR RR 进行验证。这时,SPF 使用PTR RR 和反向图进行查询。如果返回的主机名位于同一个域名之内,就验证通过了。这个参数的写法是ptr:domain

       5) exist: 验证域名的存在性。可以写成exist:domain 的形式。

       6) ext: 定义对type 的可选扩展。如果没有这个字段,那么仅使用单个记录进行问询。

       7) mod: 这是最后的类型指示,作为记录的一个修正值。修正值 描述:

redirect 重定向查询,使用给出的域名的SPF 记录。

以redirect=domain 的方式使用。

exp 这条记录必须是最后一条,允许给出一条定制的失败消息。

IN TXT “v=spf1 mx -all exp=getlost.example.com”

getlost IN TXT “You are not authorized to send mail for the domain”

(3)-all 定义匹配时的返回值,可有如下选择:

   1) + 缺省值。在测试完成的时候表示通过。

   2) – 表示测试失败。这个值通常是-all,表示没有其他任何匹配发生。

   3) ~ 表示软失败,通常表示测试没有完成。

   4) ? 表示不置可否。这个值也通常在测试没有完成的时候使用。

所以“v=spf1 ip4:67.202.107.106 -all”的意思是这个域只有67.202.107.106这个IP可以发邮件出来,其他IP的都是非法的。  

SPF 有哪些需求?

  要想用 SPF 来保护你的系统,你必须:   配置 DNS,添加 TXT 记录,用于容纳 SPF 问询的信息。   配置你的电子邮件系统(qmail, sendmail)使用 SPF,也就是说对服务器上每封进入的邮件进行验证。   上述第一步要在邮件服务器所属的域名服务器上进行调整,下一节中,我们将讨论这个记录的细节内容。你首先需要确定的一点是你的域名服务器(bind,djbdns)所使用的语法。但别担心,SPF 的官方网站提供了一个很好用的向导来指导你如何添加记录。   SPF 的 TXT 记录   SPF 记录包含在一个 TXT 记录之中,格式如下:   v=spf1 [[pre] type [ext] ] ... [mod]   每个参数的含义如下表所示: 参数 描述   v=spf1 SPF 的版本。如果使用 Sender ID 的话,这个字段就应该是 v=spf2   pre 定义匹配时的返回值。   可能的返回值包括: 返回值 描述   + 缺省值。在测试完成的时候表示通过。   - 表示测试失败。这个值通常是 -all,表示没有其他任何匹配发生。   ~ 表示软失败,通常表示测试没有完成。    表示不置可否。这个值也通常在测试没有完成的时候使用。   type 定义使用的确认测试的类型。   可能的值包括: 候选值 描述   include 包含一个给定的域名的测试   以 include:domain 的形式书写。   all 终止测试序列。   比如,如果选项是 -all,那么到达这条记录也就意味着测试失败了。但是如果无法确定,可以使用"?all"来表示,这样,测试将被接受。   ip4 使用 IPv4 进行验证。   这个可以以 ip4:ipv4 或 ip4:ipv4/cidr 的形式使用。建议使用这个参数,以减少域名服务器的负荷。   ip6 使用 IPv6 进行验证。   a 使用一个域名进行验证。   这将引起对域名服务器进行一次 A RR 查询。   可以按照 a:domain, a:domain/cidr 或 a/cidr 的形式来使用。   mx 使用 DNS MX RR 进行验证。   MX RR 定义了收信的 MTA,这可能和发信的 MTA 是不同的,这种情况基于 mx 的测试将会失败。   可以用 mx:domain, mx:domain/cidr 或 mx/cidr 这些形式进行 mx 验证。   ptr 使用域名服务器的 PTR RR 进行验证。   这时,SPF 使用 PTR RR 和反向图进行查询。如果返回的主机名位于同一个域名之内,就验证通过了。   这个参数的写法是 ptr:domain   exist 验证域名的存在性。   可以写成 exist:domain 的形式。   ext 定义对 type 的可选扩展。如果没有这个字段,那么仅使用单个记录进行问询。   mod 这是最后的类型指示,作为记录的一个修正值。   修正值 描述   redirect 重定向查询,使用给出的域名的 SPF 记录。   以 redirect=domain 的方式使用。   exp 这条记录必须是最后一条,允许给出一条定制的失败消息。   IN TXT "v=spf1 mx -all exp=getlost.example.com"   getlost IN TXT "You are not authorized to send mail for the domain"   存在的问题:   嘿!我是 ISP   ISP 实施 SPF 可能对于他们处于漫游状态(roaming)的用户带来一些麻烦,当这些用户习惯使用 POP-before-Relay 这样的方式处理邮件,而不是 SASL SMTP 的时候问题就会出现。   嗯,如果你是一个被垃圾邮件、地址欺骗所困扰的 ISP 的话,你就必须考虑你的邮件策略、开始使用 SPF 了。   这里是你可以考虑的几个步骤。   首先设置你的 MTA 使用 SASL,比如,你可以在端口 25 和 587 使用它。   告诉你的用户你已经使用了这个策略(spf.pobox.com 给出了一个通知的例子,参见参考文献)。   给你的用户一个宽限期,也就是说,把你的 SPF 记录加入到域名服务器之中,但使用“软失败”(~all)而不是“失败”(-all)。   这样,你就保护了你的服务器、你的客户和整个世界免受垃圾邮件之类的困扰了。   SPF 的官方站点上有很多信息,还等什么呢?   有什么需要担心的?   SPF 是一个对于欺骗的完美保护。但它有一个局限:传统的邮件转发方式不再有效了。你不能仅仅从你的 MTA 接受邮件并简单地重新发送它了。你必须重写发送地址。常见的 MTA 的补丁可以在 SPF 的网站找到。换句话说,如果你把 SPF 记录加入到了域名服务器,你就必须更新你的 MTA 来进行发送地址改写,即使你还没有对 SPF 记录进行检查。   结论   你可能觉得 SPF 的实施有点难以理解。不过这确实不算复杂,而且还有一个不错的向导来帮你完成这个转换(参见参考文献)。   如果你被垃圾邮件所困扰的话,SPF 将可以帮助你,保护你的域名免受伪造邮件地址的影响,你所要做的仅仅是在域名服务器上添加一行文本并配置你的电子邮件服务器而已。   SPF 的优点有很多。不过,像我对一些人所说的,这不是一夜之间就可以达到的,SPF 的好处将通过日积月累来表现出来,当其他人都使用它的时候就能明显地看到了。   我也提到了 Sender ID,这和 SPF 有关,但我没有去解释它。可能你已经知道原因了,微软的策略一向如此---软件专利。在参考文献中,你可以看到 openspf.org 对于 Sender ID 的立场声明。   解决MT发送邮件通知给GMail遇到的SPF校验问题   blog系统有一个很有用的功能就是邮件发送留言通知:但是发送到GMail邮箱的通知信十有八九都会被标记为垃圾邮件。原因就是SPF:Sender Policy Framework (SPF) 要做发送人校验,而MT设置的发信人是留言者的邮件地址,而退信地址是MT系统所在服务器的邮箱。   Received-SPF: neutral (google.com: 60.195.249.163 is neither permitted nor denied by domain of apache@localhost.localdomain)   我的WEB服务器上没有任何邮件系统。所以无法通过SPF校验,有严格的SPF校验这也是GMail相对Spam比较少的原因。   如何解决呢:   1 增加邮件系统,设置MX记录等,需要学不少东西;   2 简单的就是先发到不支持SPF校验的邮件系统上,然后再转发给GMail,这时候的退信地址已经转发邮箱了:   Received-SPF: pass (google.com: domain of #####@yeah.net designates 60.12.227.137 as permitted sender)   您的域管理员或托管公司仅需在域名系统 (DNS) 中发布 SPF 记录。这些简单的文本记录标识了经过授权的电子邮件发送服务器(通过列出这些服务器的 IP 地址)。电子邮件接收系统会检查邮件是否来自经过正确授权的电子邮件发送服务器。检查步骤如下,发送人向接收方发送一封电子邮件后,邮件接收服务器接收电子邮件并执行如下操作:    检查哪一个域声称发送了该邮件并检查该域的 SPF 记录的 DNS。    确定发送服务器的 IP 地址是否与 SPF 记录中的某个已发布 IP 地址相匹配。    对电子邮件进行打分:如果 IP 地址匹配,则邮件通过身份验证并获得一个正分。如果 IP 地址不匹配,则邮件无法通过身份验证并获得一个负分。然后,对现有的防垃圾邮件筛选策略和启发式筛选应用这些结果。