Sun Java System Messaging Server 6 2005Q4 管理指南

关于 Messaging Multiplexor

Sun Java System Messaging Multiplexor (MMP) 是专用的 Messaging Server,用作与多台后端 Messaging Server 之间的单点连接。使用 Messaging Multiplexor,大规模的邮件服务提供商可以将 POP 和 IMAP 用户邮箱分布在多台计算机上,以增大邮件存储容量。所有用户都连接到一个多路复用器服务器,该服务器会将每个连接重定向到适当的 Messaging Server。

如果您为许多用户提供电子邮件服务,则可以安装和配置 Messaging Multiplexor,这样整个 Messaging Server 阵列便可以作为一个单一主机呈现给邮件用户。

Messaging Multiplexor 是作为 Messaging Server 的一部分提供的。您可以在安装 Messaging Server 或其他 Sun Java System 服务器的同时安装 MMP,也可以在以后单独安装 MMP。MMP 支持:

Messaging Multiplexor 的工作原理

MMP 是多线程的服务器,它可以协助在多台服务器计算机上分布邮件用户。MMP 可控制将去往其他服务器计算机(用户邮箱所在的计算机)的外来客户端连接。客户端将连接到 MMP 本身,MMP 为用户确定正确的服务器,然后连接到该服务器并在客户端和服务器之间传递数据。此功能使 Internet 服务提供商和其他大型安装能够将邮件存储分布在多台计算机上(可以增加容量),同时为用户和外部客户端呈现了一个单一的邮件主机(用户可以提高效率,外部客户端可以增强安全性)。Messaging Multiplexor 的工作原理显示了 MMP 安装中服务器和客户端彼此之间的相关方式。

图 7–1 MMP 安装中的客户端和服务器

此图形描述了 MMP 安装中的客户端和服务器。

所有 POP、IMAP 和 SMTP 客户端都可以使用 Messaging Multiplexor。MMP 将接受连接、执行 LDAP 目录查找并适当地路由连接。与其他邮件服务器安装中的典型情况一样,每个用户都被指定一个位于特定 Messaging Server 上的特定地址和邮箱。但是,所有连接都将通过 MMP 来路由。

下面详细介绍了建立用户连接中所涉及的步骤:

  1. 用户的客户端连接到 MMP,MMP 将接受初步的验证信息(用户名)。

  2. MMP 查询 Directory Server 以确定包含该用户的邮箱的 Messaging Server。

  3. MMP 连接到适当的 Messaging Server,重新进行验证,然后在连接过程中充当通信管道。

加密 (SSL) 选项

Messaging Multiplexor 支持在 Messaging Server 及其邮件客户端之间进行未加密和加密的 (SSL) 通信。Messaging Server 的当前版本支持新证书数据库格式 (cert8.db)。

当启用 SSL 时,MMP 支持 STARTTLS,并且还可以配置 MMP 以侦听其他用于 SSL IMAP、POP 和 SMTP 连接的端口。

要为您的 IMAP、POP 和 SMTP 服务启用 SSL 加密,请分别编辑 ImapProxyAService.cfgPopProxyAService.cfgSmtpProxyAService.cfg 文件。还必须编辑 AService.cfg 文件中的 default:ServiceList 选项,以包含所有 IMAP、POP 和 SMTP 服务器端口的列表,而不管它们是否安全。有关详细信息,请参见配置 MMP 以使用 SSL

默认情况下,SSL 没有被启用,因为 SSL 配置参数被注释掉了。要启用 SSL,必须安装 SSL 服务器证书。然后,应当取消注释并设置 SSL 参数。有关 SSL 参数的列表,请参见 《Sun Java System Messaging Server 6 2005Q4 Administration Reference》中的“Encryption (SSL) Option”

基于证书的客户端验证

MMP 可以使用证书映射文件 (certmap) 将客户端的证书与用户/组 Directory Server 中的正确用户相匹配。

要使用基于证书的客户端验证,还必须启用 SSL 加密,如加密 (SSL) 选项中所述。

还必须配置一个存储管理员。您可以使用邮件管理员,但是建议您为此目的创建一个唯一的用户 ID(例如 mmpstore),以便根据需要设置权限。

请注意,MMP 不支持 certmap 插件,而是接受 certmap.conf 文件中增强的 DNCompsFilterComps 属性值条目。这些增强的格式条目使用以下格式:


mapname:DNComps FROMATTR=TOATTR  mapname:FilterComps FROMATTR=TOATTR

这样,便可以使用证书的 subjectDN 中的 FROMATTR 值来构成一个具有 TOATTR=value 元素的 LDAP 查询。例如,可以使用以下行将 subjectDN 为 "cn=Pilar Lorca, ou=pilar, o=siroe.com" 的证书映射到 LDAP 查询 "(uid=pilar)":

mapname:FilterComps ou=uid

Procedure要为您的 IMAP 或 POP 服务启用基于证书的验证,请执行以下操作:

步骤
  1. 确定要用作存储管理员的用户 ID。

    虽然可以为此目的使用邮件管理员,但是建议为存储管理员创建一个单独的用户 ID(例如 mmpstore)。

  2. 确保已启用(或将启用)SSL 加密,如加密 (SSL) 选项中所述。

  3. 通过在您的配置文件中指定 certmap.conf 文件的位置,将 MMP 配置为使用基于证书的客户端验证。

  4. 至少安装一个信任的 CA 证书,如安装信任的 CA 证书的步骤中所述

用户预验证

MMP 通过作为外来用户绑定到目录并记录结果为您提供了预验证用户的选项。


注 –

启用用户预验证会降低服务器的性能


日志条目的格式为:


date time (sid 0xhex) user name pre-authenticated - client 
IP address, server IP address

其中,date 的格式为 yyyymmddtime 是在服务器上配置的时间,其格式为 hhmmsshex 是会话标识符 (sid),以十六进制数字表示;user name 包括虚拟域名(如果有),IP 地址采用以点分隔的四组数字格式。

MMP 虚拟域

MMP 虚拟域是一组与服务器 IP 地址相关联的配置设置。此功能的主要用途是为每个服务器 IP 地址提供不同的默认域。

用户可以使用简短形式的用户 ID 或全限定的用户 ID(格式为 user@domain)来对 MMP 进行验证。提供简短形式的用户 ID 时,MMP 将附加 DefaultDomain 设置(如果已指定)。因此,支持多个托管域的站点只需通过将服务器 IP 地址和 MMP 虚拟域与每个托管域相关联便可以允许使用简短形式的用户 ID。

要为给定的托管域查找用户子树,建议通过该域的 LDAP 域树条目中的 inetDomainBaseDN 属性来查找。MMP 的 LdapUrl 设置不适用于此目的,因为后端邮件存储服务器还需要在 LDAP 中查找用户并且不支持虚拟域。

启用 Sun LDAP Schema 2 时(请参见 《Sun Java Enterprise System 2005Q4 Installation Guide for UNIX》《Sun Java System Communications Services 6 2005Q4 Schema Reference》),指定域的用户子树将是该域组织节点下的子树中的所有用户。

要启用虚拟域,请编辑实例目录中的 ImapProxyAService.cfgPopProxyAService.cfgSmtpProxyAService.cfg 文件,以便 VirtualDomainFile 设置可以指定虚拟域映射文件的完整路径。

每个虚拟域文件条目都具有以下语法:

vdmap name 
IPaddrname:parameter value

其中,name 仅用于将 IP 地址与配置参数相关联,并且可以是您选择使用的任何名称;IPaddr 采用以点分隔的四组数字格式;parametervalue 对用于配置虚拟域。设置后,虚拟域配置参数值将覆盖全局配置参数值。

下面列出了可以为虚拟域指定的配置参数:


AuthCacheSizeAuthCacheSizeTTL
AuthService
BindDNBindPass
CertMap
ClientLookup
CRAMs
DefaultDomain
DomainDelim
HostedDomains
LdapCacheSizeLdapCacheTTL
LdapURL
MailHostAttrs
PreAuth
ReplayFormat
RestrictPlainPasswords
StoreAdminStoreAdminPass
SearchFormat
TCPAccess
TCPAccessAttr

注 –

除非正确设置了 LdapURL,否则 BindDNBindPassLdapCacheSizeLdapCacheTTL 设置将被忽略。


有关这些配置参数的详细描述,请参见 《Sun Java System Messaging Server 6 2005Q4 Administration Reference》

关于 SMTP 代理

MMP 包含一个 SMTP 代理(默认情况下被禁用)。大多数站点并不需要 SMTP 代理,因为 Internet 邮件标准已经为 SMTP(DNS MX 记录)的横向可伸缩性提供了足够的机制。

SMTP 代理所提供的安全性功能很有用。首先,SMTP 代理与 POP 代理相集成以实现某些传统 POP 客户端所要求的“在 SMTP 之前先执行 POP”的验证功能。有关更多信息,请参见启用 POP Before SMTP。此外,通过使用 SMTP 代理可以最大限度地利用在 SSL 加速硬件上的投入。请参见如何使用 SMTP 代理服务器优化 SSL 性能