Exchange Server 2003 配合使用的防病毒软件概述

12/3/2006来源:Exchange Server人气:6223

概要
本文包含通常与 Exchange 2003 一起使用的不同类型病毒扫描程序的概述。本文列出不同类型扫描程序的优点、缺点和疑难解答注意事项。本文没有介绍通常安装在除 Exchange 2003 计算机之外的服务器上的“简单邮件传输协议”(SMTP) 筛选解决方案。

文件级扫描程序
文件级扫描程序的使用很频繁,而它们用于 Exchange 2003 时可能最容易出问题。文件级扫描程序可能是内存驻留 的,也可能是按需 的:
内存驻留 是指一直加载在内存中的一部分文件级防病毒软件。它会检查硬盘和计算机内存中使用的所有文件。
按需 是指您可以进行配置以手动或按照日程安排扫描硬盘上文件的一部分文件级防病毒软件。有些版本的防病毒软件在更新病毒签名之后,会自动启动按需扫描,以确保使用最新的签名扫描所有文件。
Exchange 2003 中使用文件级扫描程序时,可能会出现下列问题:
文件级扫描程序扫描正在使用的文件或按计划间隔扫描文件,并可能在 Exchange 2003 尝试使用 Exchange 日志或数据库文件时锁定或隔离该文件。此行为可能会导致 Exchange 2003 中出现严重故障,还可能生成 -1018 错误。
文件级扫描程序并不防护 Mellissa 病毒之类的电子邮件病毒。

备注:Mellissa 病毒是一种 Microsoft Word 宏病毒,可以通过电子邮件进行传播。该病毒会将不适当的电子邮件发送至它在 Microsoft Outlook 邮件客户端“个人通讯簿”中找到的地址。类似的病毒可导致数据破坏。
从“按需”文件级扫描程序和“内存驻留”文件级扫描程序中排除下列文件夹:
跨所有存储组的 Exchange 数据库和日志文件。默认情况下,这些文件位于 Exchsrvr\Mdbdata 文件夹中。
Exchsrvr\Mtadata 文件夹中的 Exchange MTA 文件。
其他日志文件,如 Exchsrvr\server_name.log 目录。
Exchsrvr\Mailroot 虚拟服务器文件夹。
用于存储 streaming .tmp 文件(它用于邮件转换)的工作文件夹。默认情况下,此文件夹是 Exchsrvr\Mdbdata,但其位置是可以配置的。 有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
822936 Message Flow to the Local Delivery Queue Is Very Slow

与脱机维护实用工具(如 Eeseutil.exe)联合使用的临时文件夹。默认情况下,此文件夹是从其运行 .exe 文件的位置,但是您可以在运行此实用工具时配置从其中运行文件的位置。
Exchsrvr\Srsdata 文件夹中的“站点复制服务”(SRS) 文件。
%SystemRoot%\System32\Inetsrv 文件夹中的“Microsoft Internet 信息服务”(IIS) 系统文件。

备注:您可能需要从“按需”文件级扫描程序和“内存驻留”文件级扫描程序中排除整个 Exchsrvr 文件夹。
从“内存驻留”文件级扫描程序和“按需”文件级扫描程序中排除包含检查点 (.chk) 文件的文件夹。

备注:即使您将 Exchange 数据库和日志文件移至新位置,并且排除这些文件夹,仍可能扫描 .chk 文件。 有关扫描 .chk 文件时可能出现的情况的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
253111 XADM: Event: Unable to Write a Shadowed Header for File. . .

176239 XADM: Database Won't Start; Circular Logging Deleted Log File Too Soon

MAPI 扫描程序
包含 Exchange 代理的第一代病毒扫描程序是基于 MAPI 的扫描程序。这些扫描程序对每个邮箱执行 MAPI 登录,然后扫描邮箱中是否存在已知病毒。

与基于文件的扫描程序相比,MAPI 扫描程序具有下列优点:
MAPI 扫描程序可以扫描电子邮件病毒,例如 Mellissa 病毒。
MAPI 扫描程序不会干扰 Exchange 日志或数据库文件。

MAPI 扫描程序具有下列缺点:
MAPI 扫描程序不能在用户打开电子邮件之前扫描感染病毒的电子邮件。如果 MAPI 扫描程序未首先检测感染病毒的电子邮件,则它不会阻止用户打开感染病毒的电子邮件。
MAPI 扫描程序无法扫描出站邮件。
MAPI 扫描程序无法识别 Exchange 零备份存储筛选器,因此如果在多个邮箱中存在相同的邮件,该扫描程序可能会对单个邮件进行多次扫描。因此,MAPI 扫描程序在执行扫描时可能要花费更长的时间。
由于 MAPI 扫描程序可以检测电子邮件病毒,因此它优于文件级扫描程序。但是,还有比 MAPI 扫描程序更好的扫描程序可供选择,这些将在本文稍后部分进行描述。

病毒扫描 API 扫描程序
“病毒扫描应用程序编程接口 (API)”也称为“病毒 API”(VAPI)、“防病毒 API”(AVAPI) 或“病毒扫描 API”(VSAPI)。

“病毒扫描 API 1.0”在 Microsoft Exchange Server 5.5 Service Pack 3 (SP3) 中开始采用,在 Exchange 2000 发布之前一直是标准。Exchange 2000 发布之后,对“病毒扫描 API 1.0”进行了许多改进,以提高它与 Exchange Server 一起使用时的性能。有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
248838 XADM: Exchange Server 5.5 Post-S248838 Information Store Fixes Available


Exchange 2000 Server Service Pack 1 (SP1) 包括“病毒扫描 API 2.0”。Exchange Server 5.5 不支持“病毒扫描 API 2.0”。“病毒扫描 API 1.0”和“病毒扫描 API 2.0”都支持按需扫描。

现在,Exchange 2003 包括“病毒扫描 API 2.5”。“病毒扫描 API 2.5”包括“病毒扫描 API 2.0”以前的所有功能,并进行了以下改进:
改进的病毒扫描 API 允许防病毒供应商产品在没有驻留 Exchange 邮箱的 Exchange 2003 服务器(例如,网关服务器或桥头服务器)上运行。
“病毒扫描 API 2.5”允许防病毒供应商产品删除邮件和将邮件发送给发件人,并且其他病毒状态邮件允许客户端更好地指示特定邮件的感染状态。
新增的垃圾电子邮件防护功能(如支持基于实时黑名单的连接筛选、入站收件人筛选和信号堵塞)可减少未经请求的邮件。
“病毒扫描 API 2.5”为管理员提供了改进的部署选项。
有关更新的更多信息,请与您的防病毒软件制造商联系。

当您使用病毒扫描 API 扫描程序时,如果某个客户尝试打开邮件,则系统将进行比较以确保当前病毒签名文件已扫描邮件正文和附件。如果当前病毒签名文件尚未扫描该内容,则会将相应的邮件组件提交给防病毒供应商产品,以便在向客户发布该邮件组件之前进行扫描。该客户可能正在使用常规 MAPI 客户端或基于 Internet 协议 (ip) 的客户端,例如邮局协议版本 3 (POP3)、Microsoft Outlook Web access (OWA) Internet 邮件访问协议版本 4rev1 (IMAP4)。

“病毒扫描 API 2.0”和“病毒扫描 API 2.5”通过使用单个队列处理所有的邮件正文和附件数据。提交给此队列的按需项目标记为高优先级。在 Exchange 2003 中,现在,一系列的线程为此队列提供服务,高优先级的项目始终优先处理。默认的线程数是处理器数 2 倍加 1。这样,就可能向防病毒供应商产品同时提交多个项目。此外,客户端线程不再受等待发布项目的超时值所约束。扫描项目并标记其安全之后,系统将通知客户端线程该项目可用。默认情况下,客户端线程最多等待三分钟以获得所请求数据可用性的通知,超过该时间即出现超时。

“病毒扫描 API 2.0”和“病毒扫描 API 2.5”包括主动邮件扫描功能。在“病毒扫描 API 1.0”中,仅在使用邮件附件信息时才对其进行扫描。在“病毒扫描 API 2.0”和“病毒扫描 API 2.5”中,项目被提交给信息存储时,将同时提交给公用信息存储队列。其中每个项目在该队列中的优先级都较低,因此这些项目不会干扰对高优先级项目的扫描。在扫描所有高优先级项目后,“病毒扫描 API 2.0”或“病毒扫描 API 2.5”开始扫描低优先级项目。如果客户在项目位于低优先级队列中时尝试使用该项目,该项目的优先级将动态升级到高优先级。在低优先级队列中最多可以同时存在 30 个项目,并且此队列的内容按先进先出的原则确定。

“病毒扫描 API 2.0”和“病毒扫描 API 2.5”包括改进的后台扫描过程。在“病毒扫描 API 1.0”中,后台扫描是通过单遍扫描附件表进行的。然后,“病毒扫描 API 1.0”将尚未由当前的防病毒供应商产品或签名文件扫描的附件直接提交给防病毒动态链接库 (DLL)。每个私人信息存储和公用信息存储都将收到一个线程以执行此后台扫描。当线程完成一遍附件表扫描之后,该线程会先等待信息存储过程的重新开始,然后再执行另一遍扫描。在“病毒扫描 API 2.0”和“病毒扫描 API 2.5”中,每个 MDB 邮件数据库仍然收到一个线程以执行后台扫描过程。但是,在 Exchange 2003 中,后台扫描过程会浏览构成每个用户邮箱的文件夹系列。遇到尚未扫描的项目时,就将其提交给防病毒供应商产品,并继续执行扫描过程。防病毒软件供应商产品也可以通过一组注册表项强制开始后台扫描。

最强烈要求添加至“病毒扫描 API 1.0”的功能是这样的功能:它能够提供邮件详细资料,以便 Exchange 管理员可以跟踪病毒的存在情况,确定病毒如何渗入组织以及确定感染病毒的用户。“病毒扫描 API 2.0”中添加了这项功能,因为扫描不再直接支持附件表。

“病毒扫描 API 性能监视器”计数器可用于跟踪病毒扫描 API 的性能,以及增强“病毒扫描 API 2.0”和“病毒扫描 API 2.5”中的故障排除能力。使用这些计数器,管理员可以确定扫描的信息量以及该信息的扫描速度。这有助于管理员更准确地调整服务器。

“病毒扫描 API 2.0”和“病毒扫描 API 2.5”还包括病毒扫描 API 特定的事件日志记录。所记录的事件包括:

加载再卸载的供应商 DLL。
成功的项目扫描。
在信息存储中找到的病毒。
病毒扫描 API 中的意外行为。
要确定是否正在使用病毒扫描 API 扫描程序,请查找下面的注册表项:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSExchangeIS\VirusScan

如果没有安装病毒扫描 API 扫描程序,则此注册表项不存在。

基于 ESE 的扫描程序
基于 ESE 的扫描程序(如某些版本的 Antigen)使用信息存储以及 Microsoft 不支持的“可扩展存储引擎”(ESE) 之间的接口。当您使用这种类型的软件时,如果在实现该软件的过程中出现错误,您会遭受损坏数据库和丢失数据的危险。

安装期间,基于 ESE 的扫描程序将更改“Exchange 信息存储”服务,以使其依赖于防病毒供应商产品的服务。这可以确保在启动“Exchange 信息存储”服务之前,启动该防病毒供应商产品的服务。在启动过程中,防病毒供应商产品的服务将检查其软件和 Exchange 2003 的相应版本以及相应的文件版本。如果发现任何的不兼容,该防病毒供应商产品将禁用自身,使“Exchange 信息存储”服务能够在不进行病毒防护的情况下启动,然后通知管理员。

基于 ESE 的扫描程序成功启动后,Microsoft 版本的 Ese.dll 文件被临时重命名为 Xese.dll,而且,该防病毒供应商产品的 Ese.dll 文件版本将替换原始文件。加载该防病毒供应商产品的 Ese.dll 文件版本之后,Microsoft 版本将再次重命名为 Ese.dll,这样,“Exchange 信息存储”服务就可以完成其启动过程了。
,