级别: 初级
Edmund Stanton
企业软件工程师, IBM Corporation
2004 年 12 月
了解如何使用 Server 文档和 Notes.ini 变量控制垃圾邮件。预先介绍一下 Lotus Notes/Domino 7 中的反垃圾邮件控制,并看一下有哪些改进。本文是关于控制垃圾邮件的 Lotus Domino 方法的系列文章的第 2 部分。在正在进行的控制多余和别人自动发放的电子邮件的战斗中,一些公司花费了数百万、甚至数十亿美元来开发阻止垃圾邮件渗入用户收件箱的技术。虽然垃圾邮件可能是无法阻止的,但 Lotus Notes 和 Domino 已经实现了一些帮助组织控制垃圾邮件的措施。在本系列文章的第 1 部分中,我们讨论了 Configuration Settings 文档、服务器邮件规则,以及入站 SMTP 命令和扩展。其中的每一项措施都可以帮助阻止发送到用户的多余的电子邮件。在本系列文章的最后部分中,我们将查看影响 SMTP 和邮件路由器的 Server 文档中的设置,以及 Domino 服务器 Notes.ini 变量。最后,我们将预先介绍一些 Lotus Notes/Domino 7 反垃圾邮件特性,比如白名单、服务器邮件规则增强等等。
本系列文章适用于经验丰富的 Domino 管理员。如果您没有足够丰富的经验,请参阅本系列文章的第 1 部分。
Server 文档
在前面的文章中,我们介绍了 Configuration Settings 文档入站转发控制、DNS 黑名单过滤器和其他 SMTP 控制。但是 Configuration Settings 文档不是惟一帮助控制垃圾邮件的文档。Server 文档的 SSL 设置也可以帮助控制垃圾邮件。
通过标准 TCP/ip 通道传输的 SMTP 会话容易被窃听,因为 uuencoded 传输易于截取。为了保护 SMTP 通信,服务器可以使用传输层安全性(TLS)(更常见的是称为 SSL 加密)来提供隐私和身份验证。可以通过 Server document Ports - Internet Ports - Mail 选项卡启用 SSL,如图 1 中所示。
图 1. 为 SMTP 入站启用 SSL
一些服务器通过仅发送和接收通过 SSL 端口(端口 465 为默认端口)的 SMTP 流量,来支持 SMTP 通信的 SSL。然而,因为这需要发送和接收服务器都支持通过 SSL 的 SMTP,该解决方案通常是不可行的。
要通过 TCP/IP 的 SMTP 传输提供 SSL 安全性,Lotus Domino 需要支持使用协商 SSL。在协商 SSL 模式中,每台发送和接收主机都要使用 RFC 2487 和 RFC 3207 中定义的 SMTP STARTTLS 扩展,来通知可以与 SSL 连接进行协商。接收服务器显示 STARTTLS 关键字来响应发送服务器的 EHLO 命令。发送服务器发出 STARTTLS 命令来请求建立安全连接。成功完成初始 TLS 握手后,将继续在握手双方之间建立 SSL 通道。发送和接收服务器都必须有 SSL 证书。
以上 SSL 端口信息还是名为“Enforce server access settings”字段的设置。启用该字段时,由 Server 文档 Security 选项卡上的服务器访问设置控制对 SMTP 监听器的访问。没有访问该服务器的访问权限的用户和服务器不能向 SMTP 端口发送邮件。要使该选项有效,必须对该端口启用身份验证。
Notes.ini 变量
除了通过 Notes GUI 配置 SMTP,还可以通过服务器 Notes.ini 变量应用一些 SMTP 设置。下一节中将列出一些 Notes.ini 变量,可以使用它们来帮助阻止垃圾邮件,以及配置 SMTP 和 Router 限制。本文列出的所有 Notes.ini 设置都仅应用于 Domino 服务器。
SMTPStrict821AddressSyntax=value
该变量允许您定义 SMTP 任务是否要求 MAIL FROM 命令或 RCPT TO 命令中出现的地址必须符合 821 标准(必须包含 )。将该变量设置为 1,则表示要执行 821 标准;默认设置为 0,即不执行该标准。
SMTPGreeting=string
该变量允许您设置 SMTP 客户机连接 SMTP 服务器时发送到该客户机的文本消息。消息内必须包含字符串“%S”。(在建立连接之后,该字符串将替代当前日期/时间。)默认情况下,SMTPGreeting 是“host-name ESMTP Service (Lotus Domino build-name) ready at %s”。
SMTPStrict821LineSyntax=value
如果将该变量设为 1,SMTP 任务要求所有协议文本都必须像 821 标准定义的那样以回车和换行字符结束。如果设置该变量为 0(默认设置),则不执行 821 标准,换行字符(LF)不作为行终止符。
SMTPNonStandardLineTermination=value
SMTP 监听器任务遵守 RFC 2821 标准,需要回车和换行字符。可以通过 SMTPNonStandardLineTermination 变量更改这项功能。如果将该变量设为 0,那么 SMTP 监听器任务需要以回车和换行符号(CRLF)结束。如果将该变量设为 1,则 SMTP 监听器任务需要一个回车(CR)或换行符号(LF)。
SMTPNotesPort=portname
该变量强行将 SMTP 绑定到特定 TCP/IP 端口,而不是将其绑定到服务器 Notes.ini 文件 PORTs 变量中列出的第一个端口,绑定到该第一个端口是默认行为。可以对有多个网卡的服务器使用该变量。
SMTP_Config_Update_Interval=value
该变量允许定义 Domino 检查 Configuration Settings 文档,获取更新信息的频率(以分钟为单位)。默认值为 2。
SMTPAllowConnectionsAnonymous=value
该变量确定如果要求进行身份验证和在“Allow connections only from the following SMTP internet hostnames/IP addresses”字段中填充主机,那么 SMTP 任务该如何处理连接。如果将该变量设置为 0,那么 SMTP 任务会要求进行身份验证,“Allow connections only from the following SMTP internet hostnames/IP addresses” 字段中的主机将被拒绝。如果将该变量设置为 1,那么 SMTP 任务会要求进行身份验证,“Allow connections only from the following SMTP internet hostnames/IP addresses”字段中的主机则为例外情况,允许进行连接。
SMTPTimeoutMultiplier=value
每个 SMTP 协议交换都有一个超时等待值。如果客户机在此期间未作出响应,那么连接将终止。可以通过使用 SMTPTimeoutMultiplier 变量定义乘数值来增加超时时间。例如,如果将该变量设为 5,那么所有超时时间都将增加到 5 倍。默认值为 1。
RouterDSNForNULLReversePath=value
该变量允许您确定对于通过具有空 RFC 821 反向路径的 SMTP 接收的消息,Router 是否返回传送状态通知(DNS)。默认情况下,该变量被设为 0,告诉 Router 不返回失败的 DSN。在这种情况下,Router 创建未传送报告,但将其标记为 DEAD。(稍后可以删除或释放这些消息。)如果将该变量设为 1,则 Router 将创建和发送传送状态通知。另外,如果将该变量设为 2,那么 Router 将不创建传送状态通知。
SMTPVerifySendersDomainTimeout=value
该变量允许您在“Verify Sender's Domain in DNS”字段中为 SMTP Inbound Sender Control 设置默认超时时间(以秒为单位)。默认情况下,超时值为 30 秒。
SMTPErrorLimit=value
在连接的错误数超出了管理员定义的错误数时,该变量告诉 SMTP 停止该连接。如果 SMTP 会话是由无法识别关闭命令的客户机而打开的,那么该变量会终止会话。默认值取决于变量资源和 SMTP 连接的数目。
RouterDisableDSNRelayReports=value
当 Router 无法将传递确认请求转发到下一 SMTP hop 时,并且当前 Router 在 Configuration Settings 文档中禁用了出站 DSN,这时,Router 将生成 SMTP DSN Relay 报告。要禁用 SMTP DSN Relay 报告,需要将该变量设为 1。该变量的默认值为 0,如果禁用了出站 DSN,那么将允许 Router 发送转发的报告。
RouterDisableMailToGroups=value
该变量确定 Router 是否允许将邮件发送给组成员。默认值 0 允许 Router 扩展组并将电子邮件转发到组成员。要阻止 Router 扩展组,将该变量设为 1。Router 将消息作为失败报告返回到发件人,说明该消息因为策略原因被拒绝。
SMTPLookupNoDircat=value
该变量确定 SMTP 是否使用目录编目查找。该变量阻止目录中所列的用户接收服务器中的入站 Internet 邮件。默认值 0 允许 Router 使用其配置中引用的任何 Extended Directory Catalog。如果将该变量设为 1,Router 在查找入站 Internet 邮件时,不能使用其配置中引用的任何 Extended Directory Catalog。
SMTPMaxCommandLength=value
该变量设置 SMTP 任务接受的最大字符数。默认值为 1,200 个字符。
SMTPMaxForRecipients=value
该变量确定当 SMTP 任务向接收的消息添加接收的标题时,可以添加多少地址。默认值由可用资源决定。
SMTPMaxsessions=value
该变量指定允许的入站 SMTP 连接数。达到该值后,Domino 返回错误 421 消息。默认值由可用资源决定。
SMTPVerifyAuthenticatedSender=value
该变量使允许您确定在已身份验证的 SMTP 会话期间发送的邮件是否从该用户的 Internet 地址发出。默认值 0 告诉 Domino 不用检查已身份验证的 SMTP 会话的 Internet 地址。如果将该变量设为 1,那么 Domino 将确定在已身份验证的 SMTP 会话期间发送的邮件是否从该用户的 Internet 地址发出。
SMTPSmartHostAllDisableGroupExpansion=value
在为本地 Internet 域中的所有收件人启用 Smarthost 时,该变量将禁用组扩展(group expansion)。如果将其设为 0,当为所有本地 Internet 域收件人启用 Smarthost 时,将发生组扩展。如果将该值设为 1,它会在为所有本地 Internet 域收件人启用 Smarthost 时禁用组扩展。该变量的默认值为 0。
Lotus Domino 7 的预先介绍
这一节将描述 Lotus Domino 7 中的一些新功能。下面描述的功能将反映 Lotus Notes 和 Domino 7 的 Beta 2 版本中的一些可用功能。然而,这些功能可能不会出现在这些产品的最终版本中。而且,这些功能的用户界面可能会有所改变,所以本文中的说明与您的屏幕中所出现的说明可能不完全相同。
DNS 白名单过滤器
Lotus Domino 7 对垃圾邮件控制进行了扩展,包括 DNS 白名单过滤器。白名单允许接收指定域的消息。IBM 支持私有黑名单和白名单过滤器。使用这些新的配置设置时,重要的是在启用黑名单和白名单时,了解如何减少垃圾邮件,知道 Domino 检查的顺序。
如果启用私有白名单过滤器,当 Domino 接收 SMTP 连接时,它会将 IP 地址/主机名称与该名单进行比较。应该使用“Whitelist the following hosts”字段输入要列入白名单的 IP 地址或主机名称。还可以使用星号(*)作为通配符。私用白名单的成员仍旧受连接、转发、发件人和收件人控制。列出白名单并不能确保邮件一定会发送到收件人手里。
图 2. 私有白名单过滤器
还可以设置“Desired action when a connecting host is found in the PRivate whitelist”字段。可以选择跳过所有黑名单过滤器来避免任何过滤查找。配置这项操作时,Domino 不记录任何其他日志。在引入私有白名单过滤器之前,要从黑名单过滤器处理中排除某一台主机,必须将客户机邮件服务器定义为转发例外。
另一个选项是记录私有白名单中发现的连接 IP 地址/主机名称。最后一个选项是记录和标记消息。标记消息会向消息添加注释 $DNSWLSite,可以用它来进一步对消息进行过滤。
如果连接主机没有列在私有白名单中,那么 Domino 会搜索私有黑名单过滤器,如果启用了该过滤器的话。Domino 将 IP 地址/主机名称与该名单进行比较。还有一些使用注释 $DNSBLSite 记录和标记消息的选项。第三个选项是记录和拒绝消息。配置这些选项之后,如果 Domino 发现连接主机在私有黑名单中,那么它会拒绝连接并向该主机返回定制的 SMTP 错误消息。
图 3. 私有黑名单过滤器
Domino 检查了私有过滤器后,它会将 IP 地址与 DNS 过滤器进行比较。管理员应该使用 DNS 白名单过滤作为帮助标识合法电子邮件的方式。IronPort Systems 推荐的 Bonded Sender Program 允许合法电子邮件的创始人发布金融担保,以确保其电子邮件推广的真实。如果收件人觉得他们从担保发件人那里收到他人自动发放的电子邮件,那么他们可以向其 ISP、企业或 IronPort 投诉,并从保证金中得到一定的赔偿。这种基于市场的机制使电子邮件发件人能够确保其邮件到达他们的终端用户,且为公司 IT 经理和 ISP 提供了一种确保只阻止多余邮件的客观方式。Bonded Sender Program 作为 DNS 白名单进行操作。还有与 Bonded Sender Program 相似的其他程序,这些不在本文的讨论范围内。您可以搜索 Web 来获取其他程序的信息。
如果启用了 DNS 白名单过滤器,如图 4 中所示,那么 Domino 会将 IP 地址/主机名称与列出的 DNS 白名单站点进行比较。还可以指定在 DNS 白名单中发现连接主机时的操作。可以选择跳过所有黑名单过滤器来避免任何过滤查找。完成这项操作后,Domino 不记录任何其他日志。
图 4. DNS 白名单过滤器
还有记录私有白名单中发现的连接 IP 地址/主机名称的选项。最后一个选项是记录和标记消息。标记消息会向消息添加注释 $DNSWLSite,这可以用来进一步对消息进行过滤。
图 5. $DNSWLSite 的文档属性
SMTP 任务将维护统计信息,以保持总命中数(SMTP.DNSWL.TotalHits)以及每白名单站点命中数(SMTP.DNSWL..Hits)的累积计数。统计信息是 SMTP stat 包的一部分,可以通过显示 stat SMTP 命令,利用 Domino Administrator 客户机或服务器控制台来查看这些信息。也可以进一步扩展统计信息来了解在一个配置的 DNSWLs (SMTP.DNSWL..[IP address].Hits) 中发现给定 IP 地址的次数。要收集扩展的信息,可以启用 Notes.ini 变量:
SMTPExpandDNSWLStats=value 使用该设置为 DNS 或私有黑名单站点中发现的每个连接主机生成 DNS 和私有白名单过滤器的统计信息。如果将该变量设为 0,那么 SMTP 服务器将无法生成特定于主机的 DNS/私有黑名单过滤器统计信息。如果将该变量设为 1,那么 SMTP 服务器将生成特定于主机的 DNS/私有黑名单过滤器统计信息,指明每 DNSWL 站点、每连接主机的 IP 地址的总命中数。
如果没有这项设置,那么 SMTP 任务将维护跟踪连接主机的总数量的统计信息,所有这些主机都将在组合站点的 DNSBL 中找到,该任务还将维护每个已配置站点的 DNSBL 上发现的连接主机数的统计信息。
服务器邮件规则增强
Lotus Domino 7 还对配置服务器邮件规则进行了一些新的增强。IBM 添加了两个新的搜索条件来标识特定邮件消息。Lotus Domino 7 可以基于黑名单标记和白名单标记过滤邮件。当在黑名单或白名单中发现了连接主机时,还有一个对消息进行标记的选项。现在可以隔离具有黑名单标记的消息或具有白名单标记的日志消息。
Lotus Domino 7 还为配置服务器邮件规则添加了一个新的操作。即可以指定停止处理的操作。该操作可以停止对包含停止处理操作的规则之后的所有规则的处理。可以单独使用停止处理操作,即作为服务器邮件规则中的惟一操作,或者可以将其与规则中的其他操作一起使用。当多个规则都可以应用于消息时,这非常有用,但需要执行第一个操作之后再停止邮件规则执行。
支持 IPv6 for SMTP
Lotus Domino 7 支持 IPv6 for SMTP。通过硬件和操作系统供应商以及 Internet 对 IPv6 的支持仍然处于早期阶段。对于大多数组织来说,转至 IPv6 标准是一个渐进的过程。IPv6 是新形成的标准。实现(或正在实现)IPv6 的供应商已经使用不同的方法使用该标准。如何在企业中启用和配置 IPv6 取决于使用的客户机和服务器平台。要启用 IPv6,需要将以下设置添加到服务器的 Notes.ini 文件中:
TCP_EnableIPV6=value 可以在运行 IMAP、POP3、SMTP、LDAP 或 HTTP 的 Domino 服务器中启用 IPv6 支持。如果将该变量设为 0,那么 Domino 将使用 IPv4 标准。将该变量设为 1,则允许 Domino 使用 IPv6 标准。默认情况下,该变量被设为 0。
即使在 Lotus Domino 中启用了 IPv6,也可以继续连接使用 IPv4 标准的 IP 地址。AAAA 记录在 DNS 中存储 IPv6 地址。在 Domino 服务器中启用 IPv6 并向 DNS 中添加 AAAA 记录之后,其他启用 IPv6 的 Domino 服务器只能够通过 IPv6 连接到该服务器。不支持 IPv6 的服务器可以运行禁用 IPv6 支持的 Lotus Domino,这是默认操作。只有当 IPv6 服务器的 DNS 包含 A 记录时,这些服务器才可以成功连接到启用 IPv6 的 Domino 服务器。
Domino Domain Monitoring
Domino Domain Monitoring (DDM) 是 Lotus Domino 7 中的新功能,它允许您查看多个域中的多台服务器的状态。DDM 使用了您配置的探测器来监视服务器的活动。其中一个探测器是监视本地邮件发送的邮件探测器。它发送消息给已知目的地,并验证其发送。如果过多邮件处于待决状态,或者如果邮件没有到达其目的地,那么 DDM 可以向您发送警告。还可以使用 SMTP 探测器来验证邮件是否发送到 SMTP 收件人。DDM 可以发出传送状态通知报告。Event Resolution Center 数据库(Ddm.nsf)将合并单个存储库中探测器收集的信息。
有关 Lotus Notes/Domino 7 中 Domino Domain Monitoring 和其他新功能的详细信息,请参阅 developerWorks: Lotus 中的“New features in Notes/Domino 7”一文。
即将面世的新功能
IBM 研究人员还在从事 Lotus Domino 当前版本中未包含的其他反垃圾邮件技术的研究。一项称为 SpamGuru 的技术框架允许组合这些技术中的一项或多项来过滤邮件。该框架中正在开发的一项技术是 Bayesian spam filter。Bayesian 过滤器使用统计方法来确定特定邮件是否是垃圾邮件。通过将邮件的特征与好的邮件或垃圾邮件的主体进行比较,并通过“分值”计算和指出邮件是垃圾邮件的可能性,可以使用“得分(score)”潜在地改变邮件的处理。
Bayesian 过滤器继续通过训练过程了解新的垃圾邮件。好的/垃圾邮件的主体可以不断更新,从而影响将来的计算。这种了解是通过允许用户(邮件收件人)“投票选择”一些特定邮件为好的邮件或垃圾邮件来完成的。未来的计算过程中会考虑具有特定特征的邮件的投票数,允许过滤器动态适应新的垃圾邮件内容和用户对垃圾邮件的定义。
有关 SpamGuru 架构和 Lotus Domino 如何成为自适应的垃圾邮件过滤器的概述,请参阅“SpamGuru: An Enterprise Anti-Spam Filtering System”。IBM Research 上有其他阅读材料。
注意:当前,IBM 没有预先规定将 SpamGuru 技术与 Lotus Notes 和 Domino 集成的时间期限。
结束语
IBM 已经在 Lotus Domino 6 和 7 中研究和配置了许多设置来阻止垃圾邮件。大多数用户不了解他们为什么以及是如何收到垃圾邮件的,这就是为什么阻止垃圾邮件到达前端将可以减少用户管理这些邮件所花费的时间。IBM 将继续增强 Lotus Domino 来保持最新的反垃圾邮件技术。
参考资料 您可以参阅本文在 developerWorks 全球站点上的 英文原文 。
阅读本系列文章的第 1 部分。
这篇教程 在 Lotus Domino 6 中管理外来垃圾邮件 也许还会对您有所帮助。
关于反垃圾邮件控制的更多信息,请参阅 LDD Today 的文章“Preventing spam mail in Notes/Domino 6”和“Notes spam mail filtering”。
您可能还想参阅 IBM 的红皮书 Lotus Domino 6 spam Survival Guide.
通过参与 developerWorks blogs 加入 developerWorks 社区。
在 Developer Bookstore 的 linux 区域购买 打折销售的 Linux 图书。
关于作者
Edmund "Ted" Stanton 是北美 Lotus Software 的企业软件工程师。自 2000 年以来,他一直在处理 Lotus Domino 及其扩展产品。在 2002 年进入 IBM 之前,他曾在 Towers Perrin 做系统集成工作。Ted 具有计算机科学和数学方面的双学位,并在弗吉尼亚大学威斯林分院辅修商务。他所专长的领域主要包括邮件发送协议和即时消息。他具有 Domino Document Manager (Domino.doc)、Lotus Instant Messaging (Sametime)、Lotus Team Workplace (QuickPlace)、Domino Administrator、Domino Designer、WebSphere server 和 Windows 2000 方面的认证。而且还是 Lotus Domino Shared Mail 的 Primary Area Expert,曾经撰写过大量与该主题有关的文章。他与别人合著了 IBM 红皮书 Lotus Domino 6.5.1 and Extended Products Integration Guide,SG24-6357-00。Ted 还是 developerWorks: Lotus 上“Integrating voice, email, and fax in a single unified messaging store”一文的作者。Ted 是 Lotus Notes/Domino 7 enablement 小组的一名成员,负责进行 Beta 测试和说明新的产品功能。他还是指定的焦点组的活动成员,在那里,他的任务是使 IBM 业务合作伙伴了解成功执行 Lotus Workplace Messaging System Administrator 角色所需的技能和知识。
, ,