·OWASP要素增强Web应用程序安全(2)
·“恶搞”盗用你无线网络的邻居
·如何入侵jsp网站
·黑客知识:如何隐藏 PHP文件后门的技
·jsp+javabean学习(二)
·Java入门视频教程-第61讲
·OWASP 10要素增强Web应用程序安全(1
·什么是asp木马
·如何在Windows Server 2003中安装Java
·Web 2.0网站安全堪忧 JavaScript恐引
Exchange 2003 SP2在大家的热切期待下,终于正式发布了,值得庆贺的日子.前面Exchange 2003 SP2新功能(一)(http://news.5dmail.net/html/2005-10-21/20051021171502.htm)中,我们对SP2里的存储容量增强做了描述,大家还记得吗?(不记得了?那再看看以前的文章吧)
今天我们来看看SP2的第二个新功能--SENDER ID(发信人ID).
一.SENDER ID的概要
SENDER ID是一种针对垃圾邮件的伪造发信人来做的防范技术.其本质有点象我们用的很广泛的RDNS(反向DNS解析),它可以保证发信的服务器是真实的域名的提供者,而不是被伪造或钓鱼的.但是它和RDNS的区别在于,RDNS是要依靠注册反向记录(也被称为指针),它依赖于DNS的技术和局限,所以工作起来很有局限(比如在中国,大部分的域名是没有RDNS技术的),SENDERID是一种新的协议,它可以更好的借助DNS由管理员自己主动发布SPF记录来实现.SPF记录会声明正确的有效的发信服务器的信息,以防止被他人伪造.同时该技术不依赖DNS反向区域,因此实现起来比较方便.
二.SENDER ID是如何工作的?
了解了SENDER ID的基本概念,我们要从技术面来看看它是如何工作的了.首先我们来看一个图:
上图清楚的显示了SENDERID的工作方式,我们来解释一下:
1.发信人向目标服务器发送邮件
2.目标服务器将接收此邮件传递
3.目标服务器将依据SENDER ID的机制向DNS服务器查询发信人声明的域名的SPF记录(发信人声明的域名就是发信人电子邮件的域名部分,如[email protected],则我声明的域名就是163.net),依据查询的记过,获得声明域名所发布的SPF记录中的有效合法电子邮件服务器的IP地址,并与当前提交邮件的服务器IP比较,看是否符合
4.如果比较符合,即发信人的IP地址是存在在声明域的SPF记录中的,则发信将被接收并被认证,反之则认为该邮件属于伪造而拒收.
从上面的工作过程中,是不是很象是反响域名解析啊,没错,很象.那这个东西有什么好处呢?很显然,它可以帮助你过滤掉伪造的邮件,比如在之前由于Exchange服务器没有MAIL FROM的验证能力,因此外人可以利用我的服务器向我的内部用户传递大量的垃圾邮件,尽管可以用各种手段去拦截,但收效很小,现在好了,你要向我的服务器传递邮件,必须有严格有效的域名,如果你是个动态域名或是个自己建立的没有域名的服务器.那么你将不能通过SPF的校验.能看清楚吗?这无疑可以对垃圾邮件制造者给予很大的打击.使我们的邮件系统更加的干净.呵呵..又说远了.
三.SENDER ID的实现
说了这么多了,有人已经烦了,我知道这个东西很好,具体怎么做呢?怎么实现呢?别着急,听我慢慢说来.(又卖关子......)
1.SENDER ID的发信方实现--SPF记录的建立
通过一个简单的在现向导,可以帮助你建立SPF记录:SPF建立向导(http://www.anti-spamtools.org/SenderIDEmailPolicyTool/Default.aspx)一个有效的SPF记录类似这样
v=spf1 ip4:202.108.255.192/26 ip4:202.108.252.129/26 -all
该记录是TXT类型的.任何DNS服务器都支持该记录类型.
更详细的建立SPF记录的方法请看:
建立自己的SPF记录(http://www.microsoft.com/downloads/details.aspx?FamilyId=B7CE1CAC-D884-4216-82FE-379F875663FF)2.SENDER ID的检查
建立好自己的SENDER ID后,如何检查是否确实建立了呢?我们还是要用到NSLOOKUP这个熟悉的工具了.
在命令行输入:nslookup -q=TXT domainname
如:
D:\Documents and Settings\Administrator>nslookup -q=TXT 163.net
*** Can't find server name for address 192.168.1.40: Non-existent domain
Server: UnKnown
Address: 192.168.1.40
Non-authoritative answer:
163.net text =
"v=spf1 ip4:202.108.255.192/26 ip4:202.108.252.129/26 -all"
就可以查找到指定域名的SPF记录.
3.邮件服务器配置
作好了以上的步骤,你就可以在邮件服务器上配置使用SENDER ID技术了.当然,只有安装了Exchange 2003 SP2后你的邮件服务器才支持该技术哦.还没装SP2的赶快装哦.
装好SP2后,你会在全局配置的邮件传递里看到SENDER ID的配置页.见图:
在这个地方,你有三个选择:
* 接受:将邮件接收并附加上SENDER ID的检查结果传递.
* 删除:接受邮件并删除它,不提供NDR.
* 拒绝:不接受邮件,并提供NDR回应.
SENDER ID的检查结果和默认处理方式有以下情况:
Neutral (?)
描述:域名没有主动声明自己的SPF记录的IP地址(SPF记录有)
处理:接受
Pass (+)
描述:发信方被确认是合法的域名声明的SPF的IP地址,并经过验证
处理:接受
Fail (-)
描述:发信方被明确的认为是不符合SPF记录的IP地址,属于伪造
可能原因:
发信方域不存在(如动态域名)
发信人不被认可
伪造域名
在邮件头上没有找到发信人记录信息
处理:接受 OR 拒绝 OR 删除(取决你刚才配置页上的设置)
Soft Fail (~)
描述:发信人是从和SPF记录匹配的IP发送的邮件,但可能没有经过验证
处理:接受
None
描述:域名不存在SPF记录信息
处理:接受
TempError
描述:在接收服务器反馈时出现临时性错误
处理:接受
PermError
描述:域名建立的SPF记录格式不正确,无法解释
处理:接受
为了保证SENDER ID的工作正常和不影响现有域名的过渡,因此除了FAIL的处理方式可以由用户设置外,其他处理方式都是不能修改的.
如同IMF的SCL一样,微软也把SPF的检查结果以数字来描述,如下:
NEUTRAL 0x1
PASS 0x2
FAIL 0x3
SOFT_FAIL 0x4
NONE 0x5
TEMP_ERROR 0x80000006
PERM_ERROR 0x80000007
并通过XCH50来交换和传递SENDER ID检查结果,因此如果你的邮件在传递过程中经过了不支持XCH50命令SMTP服务器,这些信息可能丢失!
4.查看SENDER ID的检查结果
我们可以通过OUTLOOK或OWA查看SENDER ID的检查结果,以做排错需要.
将以下文件保存为senderid.cfg文件:
;**********The CFG file**********
[Description]
MessageClass=IPM.Note.SenderID
CLSID={00020D0C-0000-0000-C000-000000000046}
DisplayName=SenderID Extension Form
Category=Standard
Subcategory=Form
Comment=This forms allows the SenderID to be viewed in a column in Outlook
LargeIcon=IPML.ico
SmallIcon=IPMS.ico
Version=1.0
Locale=enu
Hidden=1
Owner=Microsoft Corporation
[Platforms]
Platform1=Win16
Platform2=NTx86
Platform9=Win95
[Platform.Win16]
CPU=ix86
OSVersion=Win3.1
[Platform.NTx86]
CPU=ix86
OSVersion=WinNT3.5
[Platform.Win95]
CPU=ix86
OSVersion=Win95
[Properties]
Property01=SenderID
[Property.SenderID]
Type=3
;NmidString=PR_SENDER_ID_STATUS
NmidInteger=0x4079
DisplayName=SenderID
[Verbs]
Verb1=1
[Verb.1]
DisplayName=%26amp;Open
Code=0
Flags=0
Attribs=2
[Extensions]
Extensions1=1
[Extension.1]
Type=30
NmidPropset={00020D0C-0000-0000-C000-000000000046}
NmidInteger=1
value=1000000000000000
;**********END CFG
并通过以下方法安装到OUTLOOK中:
1)将CFG文件放在OUTLOOK的窗体配置文件目录里,一般为Program Files\Microsoft Office\Office11\forms\language ID(中文的语言ID为2052)
2)使用工具菜单里的选项中的窗体管理,安装自定义的窗体
3)在邮件标题上选择字段选择器
4)选择窗体里的已经安装的窗体,并选中
5)将SENDID字段拖拉到标题栏
这样就可显示邮件的SENDID结果了,样本:
点击查看大图如果你觉得这些数字很难理解,可以在字段选择器里新建立一个字段,在类型栏选择"公式",在公式里写如如下的内容:
IIf([SenderID]=1,"NEUTRAL",IIf([SenderID]=2,"PASS",IIf([SenderID]=3,"FAIL",IIf([SenderID]=4,"SFAIL",IIf([SenderID]=5,"NONE",IIf([SenderID]=-2147483641,"PERM_ERR",IIf([SenderID]=-2147483642,"TEMP_ERR",[SenderID])))))))
这样你就可以在新字段里看到翻译后的状态了,如图:
点击查看大图怎么样,不错吧.赶快试试吧..
四.结语
好今天我们就SENDER ID做了些讨论,时间关系,写的不是很详细.提供一些参考性资源,供参考,最后说一下,本文版权归yinjie所有,转载请保留版权.谢谢..
资源:
1.SENDER ID HOME PAGE:
http://www.microsoft.com/mscorp/safety/technologies/senderid/default.mspx2.支持SENDER ID的厂家:http://www.microsoft.com/mscorp/safety/technologies/senderid/support.mspx3.相关SENDER ID的资源和下载:http://www.microsoft.com/mscorp/safety/technologies/senderid/resources.mspx下次我们谈谈SP2里的移动支持,请关注我们的系列课程,