最近碰到很多朋友或者网友问Exchange反垃圾邮件如何配置和使用的问题。原本以为Internet上会有很多关于Exchange反垃圾邮件的配置和截图的,结果google之后才发现,更多的只是文字说明,并且都停留在Exchange Server 2003 sp2阶段,针对新版的Exchange Server都没有太多的图文说明。所以,才有了这篇文章的诞生。
事先声明:
1、        由于本人才疏学浅,本文中难免会有错误之处,望各位嘴下留情,不喜勿喷;
2、        本文只做为学术探讨,并100%适用于生产环境,否则后果自负;
3、        本人不对本文所造成的后果负责;
4、        本文着重针对那些不知道technet为何物,或者不喜欢看technet的用户;
========================我是华丽的分割线======================
  正如前面所说,其实微软在Exchange Server 2003 sp2开始就支持在Exchange Server上配置简单的反垃圾邮件功能了。具体的细节配置这里不做探讨,因为Exchange Server 2003本身就已经处于被淘汰的产品序列,再者本人也没有测试环境,所以也就无法截图做说明,所谓无图无真相!有需要的朋友可以google之…
  本文以Exchange Server 2010作为反垃圾邮件配置实例为例。
  其实,在微软发布的Exchange Server 2010的几个角色中,Edge Server和Hub Transport Server都支持反垃圾邮件功能,只是在Edge Server上默认就是开启了这个功能,而在Hub Transport Server上需要手动来启用这个功能。
  虽然Edge Server在很大程度上和Hub Transport Server的功能有重复。但是个人还是建议安装Edge Server。因为在大型组织中,Hub Transport Server承载着繁重的邮件流工作,如果再让它去做本身不属于他的反垃圾邮件工作,可能会造成负载过重。当然,如果是小型企业,是否需要部署Edge Server,那就需要考量了。
  在正式配置反垃圾邮件功能之前,我们先来了解一下Exchange反垃圾邮件的处理顺序和过程
当 SMTP 服务器连接到 Exchange 2010 并启动 SMTP 会话时,对于面向 Internet 的边缘传输服务器,筛选器将按如下顺序进行应用:
?        连接筛选
?        发件人筛选
?        收件人筛选
?        发件人 ID 筛选
?        内容筛选
?        发件人信誉筛选
?        附件筛选
?        防病毒扫描(Exchange本身并不支持,需要配合Forefront Protection for Exchange Server )
?        Outlook 垃圾邮件筛选
下图说明了整个的处理过程:
 

   好啦,下面开始Exchane Server 2010的反垃圾邮件配置!
   如果在企业组织中没有反垃圾邮件设备,也没有部署Edge Server,那么就需要在Hub Transport Server上来启用反垃圾邮件功能。步骤如下:
   启用Exchange Server 2010反垃圾邮件功能
   进入到Exchange Server 2010的安装目录下的Script文件夹,执行以下脚本文件install-AntispamAgents.ps1。此处需要说明的是,很多Exchange Server 2007/2010的新手管理员对于Exchange Management Shell(EMS)很陌生和很恐惧,其实在EMS下,99%的命令和参数都可以使用键盘上的Tab键进行补全,比如,当你想要查询组织中的所有数据库的时候,可以输入Get-Mailboxd之后按Tab键,EMS会自动遍历所有以Get-Mailboxd开始的命令,这样就会自动补全Get-MailBoxDatabase命令了。
   再执行完这条命令之后,需要重新启动Exchange的传输服务。可以在Services.msc的控制台去重启,也可以用命令行来重启。

   如果需要用命令行来重启Exchange的传输服务,可以用以下命令来得到Exchange Server上所有的Exchange服务:
Get-Service –Name MSE* | ft –AutoSize –Wrap
命令解释:
   得到所有名字为MSE*的服务,并且自动调整显示方式以完整显示其内容

   在得到了和Exchange相关的服务之后,找到Exchange的传输服务,然后执行以下命令重启
Restart-Service MSExchangeTransport

   至此,Exchange Server 2010 Hub Transport Server上的反垃圾邮件功能就安装完毕了。重启完服务之后,重新打开Exhange Management Console(EMC)就可以看到反垃圾邮件已经可以使用了。

  可能有人会问,如果我的环境中有多台Hub Transport Server角色该怎么安装呢?针对这个问题,我们来看下图,在当前我的环境中有2台Hub Transport Server角色(如下图),此前我只是在Mailsvr这台服务器上启用了反垃圾邮件功能,可以看到两台的差异


   可以很明显的看到在Mailsvr2这台Hub Transport Server上没有反垃圾邮件选项卡。那么这样会造成什么问题呢?我们依旧看截图:

   可以很清楚的看到,会少两个功能,“IP允许列表”和“IP阻止列表”。那么这两个有什么用呢?我们可以看到这两个功能是在服务器配置-集线器传输层面的,所以它是服务器级别的。也就是说,如果只是在组织中的某一台Hub Transport Server上启用了反垃圾邮件功能,那么其他的Hub Transport Server上是不会有这两项功能的,直接的结果就会导致接收邮件故障。理由很简单,“IP允许列表”和“IP阻止列表”,顾名思义,就是用来配置阻止某些IP地址和允许某些IP地址用的。也就是说,当对方发送邮件给你的时候,如果出现了误判,那你就可以在此处将对方邮件服务器所对应的公网IP加入到“IP允许列表”中。这样就可以接受来自此IP地址发送过来的邮件了。那“IP阻止列表”也是同样的道理,当Exchange Server 2010的反垃圾邮件不给力的时候,出现漏网之鱼的时候,将对方IP地址加入到“IP阻止列表”就可以阻止对方的连接了。
   当然,不要高兴的太早!为什么?因为此处只是连接筛选,试想,如果你将对方的IP地址加入到了“IP允许列表”中,那对方发送给你一个垃圾邮件怎么办?邮件内容涵非法信息怎么办?我们前面提到了Exchange反垃圾邮件过滤的过程和顺序。连接筛选只是第一步,后面还有发件人筛选、收件人筛选、发件人 ID 筛选、内容筛选、发件人信誉筛选、附件筛选等等一系列的反垃圾邮件措施等待着…
好啦,废话少说。起码,至此,Exchange Server 2010的Hub Transport Server上的反垃圾邮件功能启用完毕,接下来就是配置。反垃圾邮件的配置是在组织配置-集线器传输里面配置的,也就是说,这是组织级别的功能。如果你是分公司,集团不给你权限那你就别想啦…同样的,上图,一一来介绍:

1.        IP允许列表
   其实,这里只是一个总开关,你只能配置为启用或者禁用。只要当你在此处配置了启用之后,在服务器配置-集线器传输里面配置的IP允许列表才会生效,否则是无效的。
2.        IP允许列表提供程序
   通常称之为IP安全列表或白名单,此处是用来配置公网的反垃圾邮件机构所提供的白名单的,在此处你可以配置一个由反垃圾邮件机构提供给你的一个白名单地址。IP 允许列表提供程序用来维护已确定不会与任何垃圾邮件活动关联的 IP 地址列表。这样当对方发送邮件给你的时候,Exchange会将对方的IP地址提交到这个白名单地址来进行检查,如果属于白名单里面,那么就接受你的连接,否则就拒绝连接。通常我们不会用到白名单,因为误判几率会非常的大。

3.        IP阻止列表
   同IP允许列表
4.        IP阻止列表提供程序
   IP 阻止列表提供程序服务通常被称为实时阻止列表服务或 RBL 服务。此处跟IP允许列表提供程序一样,由反垃圾邮件机构进行维护,会不定期的更新垃圾邮件IP黑名单。当你配置好之后,对方发邮件给你,Exchange会将对方的IP地址提交到你配置的IP阻止列表提供程序以进行匹配,如果对方的IP地址在垃圾邮件黑名单里面,那么就会拒绝接收对方的连接。所以,当你在此处配置好相应的提供程序之后,可以将上面提到的IP允许列表和IP阻止列表功能禁用。因为对方的IP地址如果都已经进入到黑名单了,你给它放到IP允许列表里面用处也不大。根本的解决办法,也就是从黑名单里移除。通常我们在配置IP阻止列表提供程序都会参考中国反垃圾邮件联盟和Spamhaus提供的地址。以下配置以Spamhaus为例,仅供参考:
    


   关于以上SBL、XBL以及PBL的解释:
   PBL(The Policy Block List):它主要是包含动态IP及哪些允许未经验证即可发送邮件的SMTP服务器的IP地址段。这一个列表最明显的特点就是提供了一个IP地址移除的自助服务,IP它列入后,可以自己申请移除。所以就算是被PBL列入,影响并不大,使用移除功能移除即可。响应的匹配掩码如下:
   127.0.0.10-11
   XBL(Exploits Block List):它是针对因为安全问题被劫持(比如僵尸机)或是蠕虫/病毒,带有内置式垃圾邮件引擎和其他类型的***来发垃圾邮机器的实时黑名单IP列表。它的数据主要来源于两个合作组织:cbl.abuseat.org及www.njabl.org.因为被列入XBL的服务器大多为被第三方劫持利用,所以有可能导致误判断。相应的匹配掩码如下:
   127.0.0.4-7
   SBL(The Spamhaus Block List):它是已经经过验证的垃圾邮件源及确有垃圾邮件发送行为的实时黑名单列表。它也是spamhaus最主要的项目之一,由分布在全世界9个国家的,每周7天,每天24小时进行列入新记录和删除记录的工作。所以,这个列表可信度高使用人数也多。如果你被列入算是严重事件,被列入后,需要你的ISP(电信或是网通)的IP管理人员去和Spamhaus联系才有可能移除。相应的匹配掩码如下:
   127.0.0.2-3
   ZEN(包含PBL、XBL以及SBL)
或者你也可以只配置一个IP阻止列表提供程序zen.spamhaus.org,但是请不要4个同时使用!相应的匹配掩码如下:
127.0.0.2-11
   另外,为了方便给你发送电子邮件的对方在被退信之后,检查退信原因,建议自定义“错误消息”
   The IP address %0 was regected by the Realtime Block List provider %2
   还有一点需要注意的是,返回的掩码信息可能会不定期更新,所以建议不定期的检查以下网址,以确定Spamhaus是否有更新
http://www.spamhaus.org/zen/
http://www.spamhaus.org/faq/section/DNSBL%20Usage#200
 
5.        内容筛选
   内容筛选对入站电子邮件进行评估,并估算出入站邮件是合法邮件或垃圾邮件的概率。与其他许多筛选技术不同,内容筛选使用统计上重要的电子邮件样本的特征。此样本中包含合法邮件可以降低出错的机率。由于内容筛选既能识别合法邮件的特征,又能识别垃圾邮件的特征,因此其准确度得到了提高。通过 Microsoft Update定期提供内容筛选器的更新。当然你也可以手动的配置一些自定义的要筛选的内容,比如发票、购物、娱乐等等…
 
 

6.        发件人ID
   发件人ID筛选会检查对方发过来的邮件的邮件头,看在邮件头中所包含的IP地址以及域名是否相匹配。通俗来讲,发件人ID筛选是用了解决欺骗邮件和仿冒邮件的。
7.        发件人信誉
   发件人信誉将评估每个统计信息并计算每个发件人的 SRL。SRL 是 0 到 9 之间的一个数字,预测特定发件人是垃圾邮件制造者或其他恶意用户的可能性。值 0 表示发件人不大可能是垃圾邮件制造者;值 9 表示发件人很可能是垃圾邮件制造者
8.        发件人筛选
   发件人筛选用来检查邮件头中的MAIL FROM项,并且仅对通过该计算机中所有接收连接器传入的所有邮件进行筛选,也就是说此项只针对外部发件人做发件人筛选。可以通过此项来配置拒绝来自特定域名或者发件人的邮件。相关配置如下:
 
 

9.        收件人筛选
   收件人筛选的工作机制跟发件人筛选类似,会根据邮件头中的RCPT TO SMTP 头确定对入站邮件执行检查,当满足以下条件时,就会执行相应的操作

 

总结
   其实文章里面的很多部分都出自于微软technet,对于Exchange管理员来说,有空还是多看看technet比较好,毕竟那里的资料最权威。
Exchange的反垃圾邮件功能可能只能阻挡80%-90%左右的垃圾邮件,毕竟它没有专业的反垃圾邮件设备那么功能强大。比如看不到被过滤的邮件列表和邮件内容,比如看不到被拒绝的IP列表等等。如果对方发过来的邮件时非法的,就可能会被直接拒绝掉。
   在Exchange Server 2003 sp2反垃圾邮件的时候,起码还有IMF可以让用户来自己管理被阻挡的垃圾邮件,当邮件出现被误判的时候,可以重新发送到用户邮箱。但是从Exchange Server 2007开始就没有这样的工具了。当然,微软推出了另外一个软件Forefront Protection for Exchange Server(收费的喔)(http://technet.microsoft.com/zh-cn/library/cc482977.aspx)。此系统可以跟Exchange Server完美的结合,做到反垃圾邮件、反病毒,并且可以看到被隔离的邮件信息。



   不过,即使是Forefront Protection for Exchange Server现在也不会再出新版了,微软已经提供云端的反垃圾邮件功能Forefront Online Protection for Exchange (FOPE)了。