HOW TO:在 SBS 上阻止开放 SMTP 中继和清理 Exchange Server SMTP 队列

文章翻译 文章翻译
文章编号: 324958 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

在 Small Business Server 环境中,可能必须防止您的基于 Microsoft Exchange Server 的服务器被用作未经请求的商业电子邮件 (UCE) 或垃圾邮件的开放中继 SMTP 服务器。您可能还必须清理 Exchange 服务器的 SMTP 队列以删除 UCE 邮件。如果您的 Exchange 服务器正被用作开放 SMTP 中继,您会遇到以下现象中的一种或多种:
  • Exchange 服务器无法将出站 SMTP 邮件发送到不断增长的电子邮件域列表。

    有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    300580 XCON:Cannot Send E-Mail Messages to a Growing List of Domains
  • 从服务器和局域网 (LAN) 客户端进行 Internet 浏览的速度很慢。
  • Exchange 服务器上的 Exchange 信息存储数据库或 Exchange 信息存储事务日志位置的可用磁盘空间的减少速度比您预期的要快。
  • Microsoft Exchange 信息存储数据库可自行卸载。您也许可以使用 Exchange System Manager 手动加载这些存储区,但是它们在运行很短的一段时间后可能会自行卸载。

    有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    321825 XADM:Databases Become Dismounted Because of Lack of Disk Space

确定 Exchange Server 是否为开放 SMTP 中继

注意:所有的 Exchange 客户端(Microsoft Outlook 或其他客户端)都必须从 Exchange 服务器上注销,然后您才可以按照本节中的下列步骤操作。此外,您必须从远程客户端执行这些操作步骤。

这些步骤涉及建立从不位于 Small Business Server 本地网络的计算机到 Small Business Server 计算机的公用 IP 地址的 Telnet 会话。如果您在物理上位于 Small Business Server 计算机上,您可以使用终端服务客户端连接到一台不在本地网络上的计算机,然后从该远程工作站上使用 Telnet 工具连接到适当的 IP 地址。

请从远程客户端执行以下操作步骤:
  1. 单击“开始”,单击“运行”,键入 telnet,然后单击“确定”。
  2. 在 Telnet 命令提示符处,键入 set local_echo,然后按 ENTER 键。
  3. 在 Telnet 命令提示符处,键入 open sbs-IP-address 25,然后按 ENTER 键(其中 sbs-IP-address 是 Small Business Server 计算机的外部公用 IP 地址)。

    输出内容类似下面这样:
    220 server.smallbusiness.local Microsoft ESMTP MAIL Service, Version:5.0.2195.4905 ready at "date" -0500
    注意:根据 Small Business Server 的版本,“Version”引用可能有所不同。
  4. 键入 ehlo anydomain.com,然后按 ENTER 键(其中 anydomain 不是 Small Business Server 计算机的电子邮件域)。确保最后一行是:
    250 OK
  5. 键入 mail from:youremail@anydomain.com,然后按 ENTER 键(其中 youremail@anydomain 是一个未承载在 Small Business Server 计算机上的 SMTP 地址)。确保结果是:
    250 2.1.0 youremail@anydomain.com....Sender OK
  6. 键入 rcpt to:user@spam.com,然后按 ENTER 键(其中 user@spam 不是您的电子邮件域)。确保结果是下面两种响应之一:
    550 5.7.1 Unable to relay for user@spam.com

    - 或者 -

    250 2.1.5 user@spam.com
  7. 如果结果是“550 5.7.1 Unable to relay for user@spam.com”,则表明 Exchange 服务器不是开放 SMTP 中继。如果您以前曾将 Exchange Server 配置为阻止开放 SMTP 中继并且您想清理此 Exchange 服务器,请参阅本文中的“清理 Exchange Server 的 SMTP 队列”一节。
  8. 如果结果是“250 2.1.5 user@spam.com”,则表明 Exchange 服务器是开放 SMTP 中继。请参阅本文中的“将 Exchange Server 配置为阻止开放 SMTP 中继”一节。


确定经过身份验证的用户是否为中继

本节将在 Windows 事件查看器中启用日志记录,使针对 SMTP 服务的任何身份验证尝试(成功或失败)都记录到应用程序日志中。
  1. 启动 Exchange Administrator。
  2. 双击“服务器”。
  3. 在“服务器”下,右键单击 ServerName,然后单击“属性”。
  4. 单击“诊断日志”选项卡。
  5. 单击左边的“MSExchangeTransport”。
  6. 单击右边的“SMTP 协议”。
  7. 在“日志级别”下,单击“最高级”。
  8. 单击“确定”关闭“服务器属性”。
作为 SMTP 电子邮件中继操作的一部分,如果远程用户正在针对 Small Business Server 计算机进行身份验证,您将在应用程序日志中看到与以下内容类似的事件:

Event Type:Information
Event Source:MSExchangeTransport
Event Category:SMTP Protocol
Event ID: 1708
Date: 8/13/2003
Time:10:13:24 AM
User:N/A
Computer:SERVER
Description:SMTP Authentication was performed successfully with client remote_computername.The authentication method was LOGIN and the username was company\username.

在此例中,如果中继看起来是来自被攻击的帐户密码,请转到 Active Directory“用户和计算机”管理单元,删除该帐户、禁用该帐户或者更改该帐户的密码。

Microsoft 建议您实行强密码策略。有关其他信息,请访问下面的 Microsoft Web 站点:
http://www.microsoft.com/security/articles/password.asp


作为 SMTP 电子邮件中继操作的一部分,如果远程用户使用来宾帐户针对 Small Business Server 进行身份验证,您将在应用程序日志中看到与以下内容类似的事件:

Event Type:Information
Event Source:MSExchangeTransport
Event Category:SMTP Protocol
Event ID: 1708
Date: 8/13/2003
Time:10:27:52 AM
User:N/A
Computer:SERVER
Description:SMTP Authentication was performed successfully with client remote_computername.The authentication method was LOGIN and the username was COMPANY\Guest.

在此例中,远程用户使用的是来宾帐户。使用 Active Directory“用户和计算机”管理单元禁用来宾帐户。注意:只更改来宾帐户的密码是不够的。必须禁用来宾帐户。



将 Exchange Server 配置为阻止开放 SMTP 中继

有两个 Exchange Server 组件允许打开或关闭 SMTP 中继:
  • 默认的 SMTP 虚拟服务器
  • SMTP 连接器
要设置默认的 SMTP 虚拟服务器的属性,请按照以下步骤操作:
  1. 单击“开始”,单击“所有程序”,单击“Microsoft Exchange”,然后单击“系统管理器”。
  2. 展开“服务器”,展开“Servername”,展开“协议”,然后展开“SMTP”。

    如果服务器是 Small Business Server 4.x 的升级版本,展开“管理组”,展开“Servername”,展开“服务器”,展开“Servername”,展开“协议”,然后展开“SMTP”。
  3. 右键单击“默认 SMTP 虚拟服务器”,然后单击“属性”。
  4. 单击“访问”选项卡。
  5. 单击底部的“中继...”按钮。
  6. 默认设置阻止开放中继。默认设置如下:
    • 选择“仅下面的列表”。
    • “计算机”对话框显示已授予对 Small Business Server 网络的内部 IP 地址和外部 IP 地址(如果该服务器有一个以上的网卡)的访问权。
    • 确保选中了“允许所有通过身份验证的计算机进行中继,而与上面的列表无关”。
  7. 按指示设置中继的“默认 SMTP 虚拟服务器”配置,该配置将中继的设置恢复为默认值。
要设置 SmallBusiness SMTP 连接器的属性,请按照以下步骤操作:
  1. 在 Exchange 系统管理器中,展开“连接器”,然后找到“SmallBusiness SMTP 连接器”。

    如果服务器是 Small Business Server 4.x 的升级版本,展开“管理组”,展开“Servername”,然后展开“连接器”。

    注意:SmallBusiness SMTP 连接器是在您运行 Small Business Server 2000 Internet 连接向导时创建的。如果您已手动创建了一个 SMTP 连接器,不能将其命名为“SmallBusiness SMTP 连接器”。另外请注意,对于外部邮件流,SMTP 连接器不是必需的。没有连接器并不表明有问题。如果您的“连接器”下没有 SMTP 连接器,请转到清理 Exchange Server 的 SMTP 队列 一节。
  2. 右键单击“SmallBusiness SMTP 连接器”(或您手动创建的连接器名称),然后单击“属性”。
  3. 单击“地址空间”选项卡。
  4. 默认设置(当此连接器是通过 Small Business Server 2000 Internet 连接向导创建的时)阻止开放中继。默认设置是:
    • Address Space -Type:SMTP
    • Address:*
    • Cost:1
    • “连接器范围”是“整个组织”。
    • “允许邮件路由到这些域”被清除(未选中)。
  5. 按指示配置 SMTP 连接器,以将其设置恢复为默认值。
按照本文中的步骤更改“默认 SMTP 虚拟服务器”和“SmallBusiness SMTP 连接器”设置后,Exchange 服务器便被配置为阻止开放 SMTP 中继。当您尝试将电子邮件发送给未由 Exchange 服务器托管的收件人时,必须再次按照本文“确定 Exchange Server 是否为开放 SMTP 中继”一节中的 telnet 过程的步骤操作,以确保 Exchange 服务器返回“550 5.7.1 Unable to relay for user@spam.com”的结果。在您确认 Small Business Server 不是开放 SMTP 中继后,请转到本文的“清理 Exchange Server 的 SMTP 队列” 一节。


清理 Exchange Server 的 SMTP 队列


警告:在此过程中,将删除所有发给外部 SMTP 收件人的邮件。内部电子邮件和来自 Internet 的传入电子邮件不受影响。以下设置是临时的,本节稍后部分有取消这些更改的步骤。
  1. 在 Exchange 系统管理器中,单击“连接器”下的“SmallBusiness SMTP 连接器”。此阶段需要 SMTP 连接器。如果 Exchange 服务器没有 SMTP 连接器,请创建一个。为此,请按照以下步骤操作:
    1. 右键单击“连接器”,单击“新建”,然后单击“SMTP 连接器”。
    2. 在“常规”选项卡上的“名称”框中,键入一个临时名称(例如,“临时连接器”)。
    3. 单击底部的“添加”并选择服务器名及其关联的 SMTP 虚拟服务器,然后单击“确定”。
    4. 单击“地址空间”。
    5. 单击“添加”,单击“SMTP”,然后单击“确定”。
    6. 在“Internet 地址空间属性”对话框中,保留默认设置(电子邮件域 * 和 Cost 1),然后单击“确定”。
    7. 单击“常规”选项卡,然后转到第 4 步。
  2. 右键单击“SmallBusiness SMTP 连接器”,然后单击“属性”。如果您有不止一个 SMTP 连接器,则您要在下列步骤中使用的连接器是“地址空间”选项卡上用“*”(星号)代表 SMTP 地址的那一个。

  3. 单击“常规”选项卡。记下此选项卡上的所有设置。在本文稍后部分必须恢复这些设置。
  4. 单击“将通过此连接器的所有邮件转发到下列智能主机”。
  5. 在提供的字段中,键入一个假的 IP 地址并将其用方括号括起来。例如,键入 [99.99.99.99]
  6. 单击“传递选项”选项卡。
  7. 单击“指定何时通过此连接器发送邮件”。
  8. 在“连接时间”列表中,单击“每日 11:00 PM 运行”。
  9. 单击“确定”关闭“SMTP 连接器属性”对话框。
  10. 展开“服务器”,展开“Servername”,展开“协议”,展开“SMTP”。右键单击“默认 SMTP 虚拟服务器”,然后单击“停止”。
  11. SMTP 虚拟服务器可能需要几分钟时间才会停止。默认 SMTP 虚拟服务器停止后,再次右键单击“默认 SMTP 虚拟服务器”,然后单击“启动”。默认 SMTP 虚拟服务器的启动可能需要几分钟时间。
  12. 默认 SMTP 虚拟服务器启动后,等待大约 10 分钟。

    现在默认 SMTP 虚拟服务器可以重新枚举邮件,并将它们放在 SmallBusiness SMTP 连接器或您在第 1.b 步中创建邮件时指定的连接器的单个队列中。
  13. 大约 10 分钟后,展开“默认 SMTP 虚拟服务器”,然后单击“队列”。
  14. 注意“Small Business SMTP 连接器”右边的邮件总数。

    此数目必须保持稳定,以便可以同时删除所有邮件。
  15. 右键单击“队列”,然后单击“大约每 15 分钟刷新一次”。
  16. 重复第 15 步,直到邮件总数保持稳定为止。
  17. 找到 SmallBusiness SMTP 连接器的队列。该队列由黄色文件夹图标上的小红色时钟指示。
  18. 根据安装的 Small Business Server 版本,按照相应小节中的说明从队列中删除邮件:
    • Small Business Server 2003:右键单击“SmallBusiness SMTP 连接器”,然后单击“查找邮件”。在相应的框中,单击下拉列表并在“搜索中列出的邮件数”中选择相应的数目。单击“立即查找”。在查找结果中,选择所有邮件 (SHIFT+PAGE DOWN)。右键单击所选邮件,然后单击“删除所有邮件(不发送 NDR)”。
    • Small Business Server 2000:右键单击“SmallBusiness SMTP 连接器”,然后单击“删除所有邮件(不发送 NDR)”。
  19. 当系统提示您是否删除所选队列中的邮件时,单击“是”。删除这些邮件可能需要一些时间,具体取决于队列中邮件的数目。
  20. 删除邮件后,右键单击“队列”,然后单击“刷新”。
  21. 注意 SmallBusiness SMTP 连接器队列中的邮件总数。此数目为 0。
  22. 等待大约 5 分钟,然后再次刷新队列。其目的是使“SmallBusiness SMTP 连接器”队列中的邮件数达到 0 并保持为 0。如果此数目增加,则表明 Exchange 服务器仍在通过 SmallBusiness SMTP 连接器处理邮件以便进行外部传递。重复此步骤,直到此数目再次稳定为止。
  23. 重复第 19 步至第 23 步,直到“SmallBusiness SMTP 连接器”队列中的邮件数一直保持为 0。这时,Exchange 服务器的 SMTP 队列中的 UCE 就彻底被清除了。


在 Exchange 清除了 UCE 之后,您必须撤消在第 2 步至第 8 步中所做的更改。为此,请按照以下步骤操作:
  1. 在 Exchange 系统管理器中,展开“连接器”,右键单击“SmallBusiness SMTP 连接器”,然后单击“属性”。

    如果您在第 1 步中创建了一个临时 SMTP 连接器,请单击“删除”而不是“属性”,然后转到第 7 步。
  2. 在“常规”选项卡上,将 “清理 Exchange Server 的 SMTP 队列”下的设置更改为在第 3 步中记录的设置
  3. 单击“传递选项”选项卡。
  4. 验证是否选中了“指定何时通过此连接器发送邮件”选项。
  5. 在“连接时间”列表中,单击“始终运行”。
  6. 单击“确定”。
  7. 展开“服务器”,展开“Servername”,展开“协议”,然后展开“SMTP”。右键单击“默认 SMTP 虚拟服务器”,然后单击“停止”。
  8. 在 SMTP 虚拟服务器停止后,再次右键单击“默认 SMTP 虚拟服务器”,然后单击“启动”。
现在您已经将 Exchange 服务器配置为阻止开放 SMTP 中继,并且已经从 Exchange Server 的 SMTP 队列中删除了 UCE。下一步就该清理文件系统了。

清理 Exchange Server 的文件系统

Exchange Server 尝试基于 SMTP 虚拟服务器的具体设置传递电子邮件。达到这些传递阈值后,Exchange Server 将停止传递电子邮件并将邮件从 SMTP 队列中移到 BadMail(死信)文件夹中。此文件夹可能会占用驱动器上的大量空间。

要删除这些不必要的文件,请按照以下步骤操作:
  1. 在 Windows 资源管理器中,找到 C:\Program Files\Exchsrvr\Mailroot\Vsi 1 文件夹。为此,请展开左窗格中的“C:\Program Files”,展开“Exchsrvr”,展开“MailRoot”,然后展开“Vsi 1”。

    重要说明:不要打开“BadMail”文件夹。根据 Small Business Server 2000 计算机处理的垃圾邮件的数量,此文件夹可能包含数十万个文件。如果打开此文件夹,则服务器看起来就好像停止了响应。
  2. 右键单击“BadMail”文件夹,单击“重命名”,然后将名称更改为 BadMailOld。
  3. 在 VSI 1 文件夹中,创建一个名为 BadMail 的新文件夹。
  4. 永久性地删除 BadMailOld 文件夹。为此,请单击 BadMailOld 文件夹,按住 SHIFT 键,然后按 DELETE 键。
  5. 当系统提示您是否删除 BadMailOld 文件夹时,单击“是”。删除此文件夹可能需要很长时间,具体取决于此文件夹中的文件数。

对 Exchange Server 的驱动器执行磁盘碎片整理

因为您已经移动或删除了很多文件,所以您可能需要在受影响的驱动器上运行“磁盘碎片整理程序”。

从“黑洞”列表中清除 Exchange Server

您可能必须采取适当的步骤,将您的 Exchange Server 域名或 Exchange 服务器的外部 IP 地址从各种“黑洞”列表中删除。要查看常见“黑洞”列表的几个示例,请参见下面的 Microsoft 知识库文章的结尾部分:
300580 Cannot Send E-Mail Messages to a Growing List of Domains

参考

有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
313395 HOW TO:在 Exchange 2000 Server 中检查匿名 SMTP 连接的中继限制以及筛选未经请求的电子邮件
310380 HOW TO:在 Windows 2000 中防止将 Exchange 2000 用作邮件中继
300580 Cannot Send E-Mail Messages to a Growing List of Domains
321825 Databases Become Dismounted Because of Lack of Disk Space
319356 HOW TO:在 Exchange 2000 Server 中阻止未经请求的商业电子邮件

属性

文章编号: 324958 - 最后修改: 2007年12月3日 - 修订: 5.1
这篇文章中的信息适用于:
  • Microsoft Windows Small Business Server 2003 Premium Edition
  • Microsoft Windows Small Business Server 2003 Standard Edition
  • Microsoft Small Business Server 2000 Standard Edition
关键字:?
kbhowtomaster KB324958
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com