SMTP 验证或 SMTP 验证 (RFC 2554) 是提供 SMTP 中继服务器安全性的首选方法。SMTP 验证仅允许已验证的用户通过 MTA 发送邮件。但是,某些传统客户端仅提供对 POP before SMTP 的支持。如果您的系统中出现此情况,您可以按如下所述启用 POP before SMTP。但是,如果可能,请支持您的用户升级 POP 客户机而不是使用 POP before SMTP。在站点中部署了 POP before SMTP 后,用户将依赖于无法遵循 Internet 安全标准的客户机,并使最终用户更容易攻击您的站点和减慢您的站点速度而造成不可避免的性能损耗,因为必须跟踪并整理最近成功的 POP 会话的 IP 地址。
POP before SMTP 的 Messaging Server 实现与 SIMS 或 Netscape Messaging Server 是完全不同的。将 Messaging Multiplexor (MMP) 配置为具有 POP 和 SMTP 代理才能支持 POP before SMTP。SMTP 客户机连接到 SMTP 代理后,此代理将检查最近 POP 验证的内存中高速缓存。如果找到来自同一客户机 IP 地址的 POP 验证,则 SMTP 代理将通知 SMTP 服务器应当允许邮件指向本地和非本地收件人。
安装 Messaging Multiplexor (MMP)。
请参见 Sun Java Enterprise System 2005Q4 安装指南以了解说明。
在 MMP 上启用 SMTP 代理。
将字符串:
msg_svr_base/lib/SmtpProxyAService@25|587
添加到 msg_svr_base/config/AService.cfg 文件的 ServiceList 选项中。该选项是一个长行并且不能包含换行。
升级 MMP 后,将生成对应于 MMP 的四个现有配置文件的四个新文件。这些新文件为:
AService-def.cfg、ImapProxyAService-def.cfg、PopProxyAService-def.cfg 和 SmtpProxyAService-def.cfg
这些文件是由安装程序创建的,文档中说明的四个配置文件并非由安装过程创建或受其影响。启动 MMP 后,它将查找标准配置文件(如当前所记录的)。如果未查找到标准配置文件,则 MMP 将尝试复制具有相应 *AService.cfg 文件名的各个 *AService-def.cfg 文件。
在每个 SMTP 中继服务器上的 SMTP 通道选项文件 tcp_local_option 中设置 PROXY_PASSWORD 选项。
SMTP 代理连接到 SMTP 服务器后,此代理必须通知 SMTP 服务器真实的客户机 IP 地址和其他连接信息,以便 SMTP 服务器可以正常应用中继阻塞和其他安全策略(包括 POP before SMTP 验证)。此为安全敏感操作并且必须经过验证。在 MMP SMTP 代理和 SMTP 服务器上都配置了代理密码,可以确保第三方无法滥用此设备。
示例:PROXY_PASSWORD=A_Password
确保 MMP 用于连接到 SMTP 服务器的 IP 地址没有被 INTERNAL_IP 映射表视为“内部地址”。
有关 INTERNAL_IP 映射表的信息,请参见第 17 章,邮件过滤和访问控制中的添加 SMTP 中继。
将 SMTP 代理配置为支持 POP before SMTP。
编辑 msg_svr_base/config/SmtpProxyAService.cfg 配置文件。
以下 SMTP 代理选项与 IMAP 和 POP 代理的相同选项在操作方面是相同的(请参见第 7 章,配置和管理多路复用器服务以及《Sun Java System Messaging Server 6 2005Q4 Administration Reference》中的“Encryption (SSL) Option”中有关这些选项的描述)。
LdapURL、LogDir、LogLevel 、BindDN、BindPass、Timeout、Banner、SSLEnable、SSLSecmodFile、SSLCertFile、SSLKeyFile、SSLKeyPasswdFile、SSLCipherSpecs、SSLCertNicknames、SSLCacheDir、SSLPorts、CertMapFile、CertmapDN、ConnLimits、TCPAccess
以上未列出的其他 MMP 选项(包含 BacksidePort 选项)目前没有应用到 SMTP 代理中。
添加以下五个选项:
SmtpRelays 是以空格分隔的 SMTP 中继服务器主机名(带有可选端口)列表,将用于循环中继。这些中继必须支持 XPROXYEHLO 扩展。此选项不必有默认设置。
示例:default:SmtpRelays manatee:485 gonzo mothra
SmtpProxyPassword 是用于授权在 SMTP 中继服务器上更改源通道的密码。此选项是不带默认值的强制选项并且必须与 SMTP 服务器上的 PROXY_PASSWORD 选项相匹配。
示例:default:SmtpProxyPassword A_Password
除了默认关键字集外,EhloKeywords 选项还为代理提供了可以传递给客户端的 EHLO 扩展关键字列表。MMP 将从 SMTP 中继所返回的 EHLO 列表中删除所有无法识别的 EHLO 关键字。EhloKeywords 指定了不应从列表中删除的其他 EHLO 关键字。默认设置为空,但是 SMTP 代理将支持以下关键字,所以无需在此选项中将其列出:8BITMIME、PIPELINING、DSN、ENHANCEDSTATUSCODES、EXPN、HELP、XLOOP、ETRN、SIZE、STARTTLS、AUTH
以下是一个由很少使用 "TURN" 扩展的站点使用的示例:
示例:default:EhloKeywords TURN
将 PopBeforeSmtpKludgeChannel 选项设置为 MTA 通道的名称以用于经 POP before SMTP 授权的连接。默认设置为空,对于希望启用 POP before SMTP 的用户,其典型设置是 tcp_intranet。优化 SSL 性能时无需使用此选项(请参见如何使用 SMTP 代理服务器优化 SSL 性能)。
示例: default:PopBeforeSmtpKludgeChannel tcp_intranet
ClientLookup 选项的默认值为 no。如果设置为 yes,则系统将无条件地对客户端 IP 地址的 DNS 执行反向查找,因此 SMTP 中继服务器不必做此项工作,可以在每个托管的域基础上设置该选项。
示例:default:ClientLookup yes
在 PopProxyAService.cfg 配置文件中设置 PreAuth 选项和 AuthServiceTTL 选项。优化 SSL 性能时不需要此选项。(请参见如何使用 SMTP 代理服务器优化 SSL 性能
这些选项指定了用户经授权在 POP 验证后多少秒之内提交邮件。典型设置是 900 至 1800 秒(15 至 30 分钟)。
示例:
default:PreAuth yes default:AuthServiceTTL 900 |
您可以根据需要指定在尝试列表中的下一个中继之前,MMP 将等待 SMTP 中继响应的秒数。
默认设置是 10(秒)。如果连接 SMTP 中继失败,则在故障转移超时时间内 MMP 不会对此中继进行再次尝试(即,如果故障转移超时时间是 10 秒,并且中继失败,则在 10 秒之内 MMP 不会对此中继进行再次尝试)。
示例:default:FailoverTimeout 10