多数Exchange管理员使用第三方的邮件过滤器,但是Exchange Server 2003也内置了一套很好的垃圾防护工具。事实上,微软就用这些工具作为他们自己的系统的第一道防线,并且微软的雇员一般会告诉你他们不会有太多的垃圾邮件。你的组织充分利用了这套Exchange Server 2003内置工具吗?要回答这个问题,你需要彻底理解这套工具,了解它们如何应用以及有什么配置选项。
Exchange反垃圾的过程
Exchange Server 2003组合了几种类型的反垃圾防护,包括阻止指定IP地址或发件人,还有Microsoft Exchange Intelligent Message Filter(IMF)。Exchange按照一个预定义的顺序应用过滤器。这个过程开始于一个远程系统打开一个到Exchange服务器的SMTP连接。如果服务器接受了连接,则会应用下列过滤:
1. 连接过滤——Exchange基于发件人IP地址和其它数据检查,比如SMTP会话是否具有正确的格式。
2. 发件人和收件人过滤器——Exchange检查发件人的IP地址是否在黑名单中,然后根据允许和拒绝用户列表检查发件人及收件人地址。
3. 内容过滤——Exchange通过IMF检查消息。
接着Exchange将消息提交到邮箱存储,在那里可能被存储(按照IMF设置的选项)或客户端Ootlook垃圾邮件过滤器进行处理。
设置过滤
你可以用两种方式控制在你的Exchange服务器上应用什么类型的过滤器。首先,你可以使用Exchange系统管理器(ESM)中的邮件传递节点来为IMF、发件人和收件人过滤、内容过滤以及发件人ID过滤来指定过滤设置。在消息传递属性对话框中,每个过滤器类型都有自己的标签,如图1所示。
图1:消息传递属性对话框
其次,你可以控制将何种过滤机制应用到组织中的各个SMTP虚拟服务器上。打开SMTP虚拟服务器属性,在常规标签点击高级按钮,然后点击编辑,显示如图2所示的标识对话框。选择你希望应用的过滤器类型后,你必须重新启动SMTP虚拟服务器以使选项生效。被选择的过滤器的设置从每个虚拟服务器的配置数据中取出。每一个虚拟服务器具有独立的过滤选项对于如何过滤入站消息提供了灵活性。
一定要理解这个事实:尽管连接、发件人和收件人过滤发生在不同的时间,但它们都是SMTP会话的一部分,因此它们不是分散的操作。
图2:标识对话框
连接过滤
连接过滤捕获包含在Exchange接受一个SMTP连接时发生的几个步骤中的所有周期。连接开始于一个远程服务器连接到Exchange SMTP服务的时候。Exchange接收发件人的IP地址并执行几个检查。
• Exchange根据允许和阻止IP地址列表检查发件人的IP地址,该列表存储在活动目录(AD)中。SMTP虚拟服务器智能地更新地址列表而不必重启服务。如果IP出现在全局接受列表中,则消息不会再进行更多的检查。如果地址在全局拒绝列表中,则连接立即被丢弃。未送达报告(NDR)被生成,发送服务器将收到一个5.7.0 Access Denied错误消息。要设置用于这个步骤的列表:第一个设置是全局接受和拒绝列表,在消息传递属性的连接过滤器标签来定义,第二个设置是为独立的虚拟服务器指定接受和拒绝列表。
• 如果你已经启用了反向DNS查询,Exchange使用IP地址执行一个反向DNS检查,校验DNS名称是否与这个IP地址关联。如果没有结果,则Exchange丢弃连接。
• Exchange服务器接受发件人的HELO/EHLO消息。如果它的格式不正确,Exchange放弃连接。
• Exchange接受发件人的MAIL FROM关键词,它提供了所谓envelope FROM(or P1)地址。这个地址是发件人对自己身份的声明,Exchange并不验证它。但是Exchange会根据阻止发件人列表来检查P1地址。如果地址在列表中,Exchange丢弃连接并返回一个5.1.0 Sender Denied错误消息;否则,Exchange服务器发送一个250 OK状态消息并继续SMTP会话。
如果在这个过程中,Exchange过滤机制发现SMTP动作顺序错误(例如数据在MAIL FROM之前)或具有明显的邮件格式问题,Exchange也会丢弃连接。
发件人和收件人过滤
在这个步骤,Exchange已经接受了P1发件人地址并准备接受消息的收件人列表。在此之前,Exchange会执行Realtime Blackhole List(RBL)检查。如果你已配置了Exchange的RBL,Exchange通过向RBL提供者反向查询发件人的地址。例如,如果发件人的IP地址为a.b.c.d,RBL提供者是example.com,Exchange向RBL提供者查询d.c.b.a.example.com。如果RBL提供者具有一个该发件人IP地址的记录,提供者返回一个状态代码,表示该RBL包含这个IP地址;否则,它返回一个Host Not Found错误消息。
Exchange查询列表中的每一个RBL直到发现一个匹配的或者到最后一个RBL。当Exchange发现一个匹配时,Exchange SMTP服务器返回一个5.7.0错误消息以及一个可选的定制错误消息,你可以用它来解释为何此邮件消息被弹回。你也可以定义一个列表,其中的收件人不会被执行RBL检查。发送到这些收件人的消息将被接受,即使发件人IP地址在一个RBL上,并且被标记为免除更进一步的检查。
接着,Exchange接受RCPT TO部分,它指定了消息的收件人。像发件人一样,收件人根据两个列表来检查:一个阻止收件人列表和一个允许收件人列表。如果收件人在两个列表中都没有,则依据消息传递属性对话框中的收件人过滤标签中的Filter recipients who are not in the Directory设置来处理。当这个复选框被选中时,Exchange根据AD来比较收件人别名,确保收件人有效;发送到无效收件人的消息将被返回一个NDR。如果收件人有效或者该复选框没有选中,则Exchange接受DATA部分,其中包含邮件内容。
DATA会话包括传送消息头,其中包含发件人答复地址(即P2地址)。如果这个地址出现在发件人过滤器列表上,Exchange丢弃连接并删除消息。
如果SMTP连接仍然活动并且启用了发件人ID检查,Exchange在DNS服务器上查找Sender Policy或Sender ID resource记录。如果发现了域记录,Exchange根据发件人的P1地址进行检查。如果不存在记录或者记录的信息与发件人P1地址不匹配,Exchange根据消息传递属性对话框中的Sender ID过滤标签的设置来处理消息,如图4所示。由于Sender ID的结果影响IMF对于消息是否合法的判断,微软建议你使用默认配置接受消息,即便是Sender ID检查失败。很少有组织设置Sender ID记录;像大多数组织所做的,你可以通过删除或拒绝来自没有Sender ID记录的域的消息,从而强制进行Sender ID检查。
图4:Exchange根据消息传递属性对话框中的Sender ID过滤标签的设置来处理消息
内容过滤
内容过滤由IMF来执行。不像大多数第三方解决方案,IMF几乎不需要管理员调整设置,而是依赖于一套过滤数据,它是通过分析MSN Hotmail用户发送的成千上万的消息来产生的。IMF为消息指派两个数字等级:垃圾等级(SCL)和钓鱼等级(PCL)。数值越低,则消息的合法性越高:SCL为9表明消息肯定是垃圾,反之SCL为1表明消息很可能是合法的。SCL为 -1表明消息免于IMF扫描,因为它来自被信任的IP地址或发件人,或者通过一个被验证的连接进行传递,或来自于同一个Exchange组织的另一个用户。PCL与SCL类似,但是它测算的是消息为钓鱼邮件的可能性。
如图5所示,IMF允许你控制两个阀值:gateway阀值,它控制消息被拒绝的SCL等级;store阀值,它控制消息被接受但是被路由到用户的垃圾邮件文件夹的SCL等级(不幸的是没有与PCL相对应的设置)。你也可以告诉Exchange当一个消息超出了gateway阀值应该做什么:删除消息、拒绝并发送NDR,归档以便随后检查,或者无操作。微软建议你开始的时候设置为无操作,然后让过滤器运行几天并使用IMF的性能计数器帮助你确定如何设置gateway SCL。
图5:IMF允许你控制两个阀值:gateway阀值和store阀值
你可以组合其它对IMF的调整,尽管它们没有被显示在UI中。例如,你可以定义一个XML文件形式的定制关键词列表(存储在exchsrvrbinMSCFV2目录下的MSExchange.UceContentFilter.xml文件中),然后向上或向下调整包含指定关键词的消息的SCL。如果你关注包含哪些关键词,这是一个有用的功能。你也可以使用CustomRejectResponse注册表键来强制IMF为被拒绝的消息返回一个定制的SMTP响应(例如550 5.7.0 Die, spammers, die!)。再没有其它需要调整和设置的了。这种简易性对于多数站点都是一个优点,尽管一些管理员希望对接受和拒绝消息进行更细致的控制。
未来的好消息
Exchange Server 2007增加了几个新功能。基本的IMF引擎仍然一样大,但是它作为内容过滤代理的一部分运行,它是运行在HUB传输或边界传输服务器角色上的一个组件,通过在边界过滤消息来保护你的网络。
Exchange Server 2007也引入了IMF过滤器规则的自动更新;一个设置IMF自定义关键词列表的UI;以及一个根据主题、附件尺寸或类型、发件人、收件人等标准定义阻止、隔离、转发或丢弃消息的灵活的引擎。边界传输服务器角色可以从独立的Outlook邮箱收集安全和阻止发件人列表,并将它们集合到边界过滤进行监视。
但是这些改进并不能改变一个事实,即Exchange已经具有了一套强大的反垃圾工具,并且无需额外投资成本。如果你还没有使用它们,那么应该进行尝试来看看它是如何很好地满足你的需求的。你会发现保持消息清洁的成本大幅下降,而并不会因此降低你的保护水平。