防止垃圾email的spf的DNS记录
2015-09-29 16:30
387 查看
目前垃圾邮件多如牛毛,与之对应的防止方法层出不穷,黑名单,白名单,关键字过滤,特征分析,专门网站提供特征,还有这个SPF。
这个SPF是啥呢,全称为 Sender Policy Framework
是DNS记录配合的一个协议。
目前的DNS服务器大多不支持SPF记录,我还没看见那个DNS服务支持的,那么为了解决这个问题,都是使用该域的txt记录。
SPF记录定义了几种方式
+ 通过
- 拒绝
~ 软拒绝
? 不置可否,也就是不做判断
来看一个例子
synkbit.com text =
"v=spf1 +a +mx +a:vps1038566.cp.hosting-srv.net -all"
spf1 是版本1 ,如果使用 Sender ID 的话,这个字段就应该是 v=spf2,那个东西是微软搞出来的。+a 是a记录通过,这里是指synkbit.com这个域名的a记录所对应的IP地址,下面是+mx,是synkbit.com这个域名的mx记录,所对应的IP地址,+a:vps1038566.cp.hosting-srv.net,就是直接指定一个域名vps1038566.cp.hosting-srv.net所对应的IP地址,从这些地址发出来的信才是合法的,然后是最后一句-all,-是拒绝,-all就是拒绝所有的,就和我们做防火墙策略的时候,前面都是许可,最后跟一条拒绝所有一样。但是-all后面还是可以跟东西的,exp,如果出现必须是最后一项,
exp=getlost.example.com,exp指定的域名,是为了给拒绝提供一个拒绝信息,这个信息就从getlost.example.com域名的DNS的text记录里找,所以做完了exp记录还没完,需要添加getlost的txt记录,比如"You are not authorized to send mail for the domain",明白告诉被拒绝的对象,是什么原因拒绝收你的信。
过滤选项可以是a记录,mx记录,这些是依赖DNS的,当然可以直接指定IP地址,ip4:192.168.1.1,当然是支持prefix的,ip4:192.168.1.0/24,也支持IPv6,ipv6:111::11,当然也支持prefix。
还有测试项目include,比如v=spf1 include:spf1.hichina.mail.aliyun.com -all,这就是像一个别名一样,配置的内容到spf1.hichina.mail.aliyun.com去找,再去查询DNS的txt的spf1.hichina.mail.aliyun.com 记录,一般出现在虚拟共有主机,独立IP主机不会用。
还有测试项目exists,这个我觉得就是鸡肋,没啥用处,可以写成 exist:domain 的形式,就是看看这个域名是否存在A记录,这似乎对放垃圾邮件没啥用处吧。
还有测试项目ptr,可以写成 ptr:domain 的形式熟悉DNS记录的就知道,这个是非常效率资源的一种方式,官方都不推荐使用,还是算了吧。
还有redirect,格式为
官方地址:http://www.openspf.org/
RFC4408协议 http://www.openspf.org/RFC_4408
本文出自 “天才没有那1%是万万不行的” 博客,请务必保留此出处http://xushen.blog.51cto.com/1673219/1699199
这个SPF是啥呢,全称为 Sender Policy Framework
是DNS记录配合的一个协议。
目前的DNS服务器大多不支持SPF记录,我还没看见那个DNS服务支持的,那么为了解决这个问题,都是使用该域的txt记录。
SPF记录定义了几种方式
+ 通过
- 拒绝
~ 软拒绝
? 不置可否,也就是不做判断
来看一个例子
synkbit.com text =
"v=spf1 +a +mx +a:vps1038566.cp.hosting-srv.net -all"
spf1 是版本1 ,如果使用 Sender ID 的话,这个字段就应该是 v=spf2,那个东西是微软搞出来的。+a 是a记录通过,这里是指synkbit.com这个域名的a记录所对应的IP地址,下面是+mx,是synkbit.com这个域名的mx记录,所对应的IP地址,+a:vps1038566.cp.hosting-srv.net,就是直接指定一个域名vps1038566.cp.hosting-srv.net所对应的IP地址,从这些地址发出来的信才是合法的,然后是最后一句-all,-是拒绝,-all就是拒绝所有的,就和我们做防火墙策略的时候,前面都是许可,最后跟一条拒绝所有一样。但是-all后面还是可以跟东西的,exp,如果出现必须是最后一项,
exp=getlost.example.com,exp指定的域名,是为了给拒绝提供一个拒绝信息,这个信息就从getlost.example.com域名的DNS的text记录里找,所以做完了exp记录还没完,需要添加getlost的txt记录,比如"You are not authorized to send mail for the domain",明白告诉被拒绝的对象,是什么原因拒绝收你的信。
过滤选项可以是a记录,mx记录,这些是依赖DNS的,当然可以直接指定IP地址,ip4:192.168.1.1,当然是支持prefix的,ip4:192.168.1.0/24,也支持IPv6,ipv6:111::11,当然也支持prefix。
还有测试项目include,比如v=spf1 include:spf1.hichina.mail.aliyun.com -all,这就是像一个别名一样,配置的内容到spf1.hichina.mail.aliyun.com去找,再去查询DNS的txt的spf1.hichina.mail.aliyun.com 记录,一般出现在虚拟共有主机,独立IP主机不会用。
还有测试项目exists,这个我觉得就是鸡肋,没啥用处,可以写成 exist:domain 的形式,就是看看这个域名是否存在A记录,这似乎对放垃圾邮件没啥用处吧。
还有测试项目ptr,可以写成 ptr:domain 的形式熟悉DNS记录的就知道,这个是非常效率资源的一种方式,官方都不推荐使用,还是算了吧。
还有redirect,格式为
redirect=<domain>,将用给定域名的 SPF 记录替换当前记录,真不知道有了前面那么多选择,这个还有啥用处。
官方地址:http://www.openspf.org/
RFC4408协议 http://www.openspf.org/RFC_4408
本文出自 “天才没有那1%是万万不行的” 博客,请务必保留此出处http://xushen.blog.51cto.com/1673219/1699199
相关文章推荐
- 安卓:service间通信AID实现
- Windows Server 2012 磁盘管理之 简单卷、跨区卷、带区卷、镜像卷和RAID-5卷
- LeetCode -- Climbing Stairs
- Codeforces Round #233 (Div. 2)D. Painting The Wall 概率DP
- chrome浏览器调试报错:Failed to load resource: the server responsed width a status of 404 (Not Found)…http://127.0.0.1:5099/favicon.ico
- failed to install service or service already installed
- tair(四)--命令
- git clone error: RPC failed; result=56, HTTP code = 200 错误解决
- tair(三)--安装配置
- exits和In的区别(http://hi.baidu.com/delphi_relive/blog/item/d7c0034a49c4932208f7ef21.html)
- tair(二)--概述
- tair(一)--入门
- 增加samba用户提示Failed to add entry for user
- editor does not contain a main type的解决方案
- 文件系统检测工具AIDE
- how to prevent hadoop job to fail on corrupted input file
- 采用opencv_cascadetrain进行训练的步骤及注意事项
- Win10 用户强烈要求:取消登录界面Email信息,避免暴露隐私
- 用opencv的traincascade.exe训练行人的HAAR、LBP和HOG特征的xml
- Odoo 8.0 新API 之constrains装饰