在 Small Business Server 环境中,可能必须防止您的基于 Microsoft Exchange Server 的服务器被用作未经请求的商业电子邮件 (UCE) 或
垃圾邮件的开放中继 SMTP 服务器。您可能还必须清理 Exchange 服务器的 SMTP 队列以删除 UCE 邮件。如果您的 Exchange 服务器正被用作开放 SMTP 中继,您会遇到以下现象中的一种或多种:
| ? | Exchange 服务器无法将出站 SMTP 邮件发送到不断增长的电子邮件域列表。
有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 300580 (http://support.microsoft.com/kb/300580/EN-US/)
XCON:Cannot Send E-Mail Messages to a Growing List of Domains
|
| ? | 从服务器和局域网 (LAN) 客户端进行 Internet 浏览的速度很慢。 |
| ? | Exchange 服务器上的 Exchange 信息存储数据库或 Exchange 信息存储事务日志位置的可用磁盘空间的减少速度比您预期的要快。 |
| ? | Microsoft Exchange 信息存储数据库可自行卸载。您也许可以使用 Exchange System Manager 手动加载这些存储区,但是它们在运行很短的一段时间后可能会自行卸载。
有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 321825 (http://support.microsoft.com/kb/321825/EN-US/)
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 站点:
作为 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 虚拟服务器的属性,请按照以下步骤操作:
| 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 连接器,请创建一个。为此,请按照以下步骤操作:| a. | 右键单击“连接器”,单击“新建”,然后单击“SMTP 连接器”。 | | b. | 在“常规”选项卡上的“名称”框中,键入一个临时名称(例如,“临时连接器”)。 | | c. | 单击底部的“添加”并选择服务器名及其关联的 SMTP 虚拟服务器,然后单击“确定”。 | | d. | 单击“地址空间”。 | | e. | 单击“添加”,单击“SMTP”,然后单击“确定”。 | | f. | 在“Internet 地址空间属性”对话框中,保留默认设置(电子邮件域 * 和 Cost 1),然后单击“确定”。 | | g. | 单击“常规”选项卡,然后转到第 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 (http://support.microsoft.com/kb/300580/EN-US/) Cannot Send E-Mail Messages to a Growing List of Domains
回到顶端
有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
313395 (http://support.microsoft.com/kb/313395/)
HOW TO:在 Exchange 2000 Server 中检查匿名 SMTP 连接的中继限制以及筛选未经请求的电子邮件
310380 (http://support.microsoft.com/kb/310380/) HOW TO:在 Windows 2000 中防止将 Exchange 2000 用作邮件中继
300580 (http://support.microsoft.com/kb/300580/EN-US/) Cannot Send E-Mail Messages to a Growing List of Domains
321825 (http://support.microsoft.com/kb/321825/EN-US/) Databases Become Dismounted Because of Lack of Disk Space
319356 (http://support.microsoft.com/kb/319356/EN-US/) HOW TO:在 Exchange 2000 Server 中阻止未经请求的商业电子邮件
回到顶端