Instant Messaging(即时消息)是在Microsoft Exchange 2000 Server中首次被引入的重要组件。它实现了企业级的即时消息,与Microsoft提供的即时消息(Hotmail或者MSN)不同之处在于,每个企业为自己提供消息服务。大家都知道,即时消息是以电子邮件作为登录名,而企业用户的电子信箱也是一致的格式,这样使每个雇员可以更方便地联系到企业中的其他联系人。相信大家对Instant Messaging在企业内部网(Intranet)中的部署已经比较熟悉,较Exchange 2000 Server中的其他组件来说,Instant Messaging在Intranet中是一个易于安装、易于使用的组件,本文旨在讨论Instant Messaging在企业网中部署的基础上,实现通过防火墙后,运行于Internet上的Instant Messaging。在本文中,我们部署的即时消息以单一电子邮件域为准,如果您的企业中有多个电子邮件域,或者说企业中有多个即时消息服务器,请参照文章中提供的相关链接。
1、Internet即时消息部署的基本准备
Exchange 2000 Server中的Instant Messaging提供了联系人之间即时会话、即时沟通服务,联系人之间通过联系人当前状态可得知相互之间的在线状况,因此,它提供了一种更好的服务响应能力。
为支持Internet用户登录到您企业中的Exchange即时消息服务器,您必须联系您的ISP(Internet Service PRovider),将您申请的域名解析到相应的ip地址。有两种方式来实现Internet即时消息,第一种就是在Internet上放置一台Exchange服务器,使用即时消息路由器来实现与企业内部Exchange即时消息服务器的通讯,但这台直接暴露在Internet上的Exchange是十分不安全的。因此我们需要考虑的是另外一种,即客户端通过企业防火墙直接登录到企业内部的Exchange服务器,也就是说,您的域名解析到您防火墙的外部IP地址即可。[注释1]
众所周知,Exchange 2000中的服务是与Windows 2000中的IIS5.0紧密集成的。在您配置Exchange 2000的即时消息组件后,在IIS在默认Web站点中有一个名称为InstMsg的虚拟目录,通过这个虚拟目录的配置决定验证客户身份的方式。为提高即时消息服务器的响应能力,您可以在同一台服务器上创建一个即时消息专用的IIS虚拟服务器,您需要为这个站点指定IP地址,主机头[注释2],身份验证方式等。针对即时消息使用的IIS站点,您应该配置为“Windows集成验证”方式。创建这个新的IIS虚拟服务器后,请在浏览器中使用指定的主机头访问这个站点,确保这个站点的默认页可以正常显示。
在企业网络中,除了Exchange 2000扮演了消息传递的重要角色外,ISA Server在安全方面也起到了不可估量的作用。今天在此我们不是要讲ISA的安全配置,而是在ISA上需要发布即时消息服务器,以提供Internet用户访问。关于如何发布一个Web站点,此处不再一一讲述,推荐您参照微软PSS文档:Configure the Web Publishing Service to Work with Internet Security and Acceleration Server in Windows 2000,http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q313072,其中不同之处
图1:指定IP地址
发布Web站点后,请先尝试在Internet上是否可以通过mycorp.com(一个假设的域名,下文相同)访问到这个即时消息服务器站点,这一步对即时消息在Internet上的成功部署很重要。
最后,关注一下Windows 2000中的名字解析问题。假设您创建一个Windows 2000域时使用的域名是mycorp.com,在您运行ping mycorp.com时,返回的IP地址是DC(Domain Controller)的IP地址。如果您的即时消息服务器恰好在DC上,那么您不需要做额外的工作;如果您的即时消息服务器在其他计算机上,您必须在DNS中创建一条新的记录,可以使mycorp.com这个域名解析到内部的即时消息服务器,而且mycorp.com恰好是即时消息使用的IIS虚拟服务器的主机头,下文也会提及,其实这个记录恰好是即时消息服务器所需要的RVP记录[注释3]。
到此为止,我们有一点需要注意一下:即内外域名一致性问题。假设您在InterNIC注册的域名是mycorp.com,那么您企业网络中Windows 2000域的其中一个域名也应该为mycorp.com,并且mycorp.com这个域名应为即时消息服务器的IIS站点的主机头,只有这样,Internet用户才可以通过域名来传递身份验证信息。
上面所列的几个准备工作,对于成功实现Internet即时消息是必不可少的,尤其是内外域名的一致性及域名的解析问题上,在即时消息中,不正确的DNS解析往往导致即时消息客户端登录失败。在您继续阅读之前,请先确认这些问题已经不复存在,同时请确认指定的即时消息IIS站点可以正常访问。
[注释1]默认情况下,ISP可能会把www.domain.com这个FQDN,即完全合格域名解析到您的IP,在下文会讲到,即时消息客户需要使用与mycorp.com相对应的IP,因此,必须将domain.com解析到与www.domain.com同一个IP或者另外一个IP地址。
[注释2]这个主机头并不是一个普通的A记录,它应该是您企业网络中Windows 2000的DNS域名,格式为mycorp.com。
[注释3]RVP记录,即rendezvous protocol,这是一个WebDAV协议扩展的子集,所有与即时消息服务器相关的通讯,都需要通过RVP。
2、配置Internet即时消息服务器
首先,我们创建一个最基本的Exchange 2000即时消息环境,创建这台即时消息虚拟服务器[注释4]后,他可以为企业内部网提供强大的消息通讯功能。
1.创建即时消息虚拟服务器
我们假设您在安装Exchange 2000时已经安装了即时消息服务。下面的过程将帮助您创建一台即时消息虚拟服务器:
启动Exchange System Manager管理器,依次打开Administrative GroupsàFirst Administrative GroupsàServersàServer NameàProtocols,右击Instant Messaging(RVP)àNewàInstant Messaging Virtual Server,启动创建即时消息虚拟服务器向导。创建过程中,在选择IIS站点时,选择您创建的为即时消息单独配置的IIS站点,然后系统将自动显示Windows 2000的DNS域名,这个域名应该恰好是这个IIS站点的主机头,也是您企业电子邮件域的后缀,接下来一个很重要的步骤是,确保选择了”Allow this server to host user accounts”,如图1所示,这样这完成了即时消息虚拟服务器的创建,同时,您也相当于完成了RVP记录的创建,RVP记录默认使用的IP可能会与您实际使用的即时消息服务器的IP不符,您需要在DNS管理程序中修复它。打开DNS管理程序,依次打开“正向搜索区域àmycorp.comàTCP”,确认RVP记录存在,并且IP与目标IP相符。
图1:配置虚拟服务器
2.设置密码策略
即时消息使用与用户信箱一样的密码。为支持用户在企业内部与Internet环境下使用即时消息,必须把域密码策略设置为:Store passWord using reversible encryption for all users in the domain[注释5]。启动“活动目录用户与计算机”管理程序,右击默认的DNS域名à属性à组策略à编辑默认域策略,依次打开Computer ConfigurationàWindows SettingsàSecurity SettingsàPassword Policy,双击Store password using reversible encryption for all users in the domain,结果应与图2相类似:
图2:设置域密码策略
然后在DC上运行secedit /refreshpolicy MACHINE_POLICY /enforce,确保组策略被刷新。
3.启动用户访问即时消息
默认情况下,用户是被禁用即时消息功能的,您需要为每个用户启用即时消息服务。打开“活动目录用户与计算机”管理程序,选择您希望启用即时消息功能的用户,右击用户名àExchange TaskàEnable Instant Messaging,此时需要您在活动目录查找即时消息服务器[注释3]。如图3所示:
图3:查找即时消息虚拟服务器
4.为Internet访问做准备
为支持Internet用户通过防火墙登录到企业中的Exchange计算机,您的即时消息服务器必须支持“轮询”功能。Exchange 2000 SP1以前的任何一个版本都不支持该功能。即时消息客户端通过HTTP 80端口登录到即时消息服务器,然后服务器使用大于或者等于1024的一个随机端口号发送通知到客户端,结果因为数据包被防火墙阻挡,导致无法正常连接,如图4所示:
图4:不支持轮询的即时消息
为此,微软在Exchange 2000 SP1解决了这个问题。SP1支持客户端在指定的时间内保持与服务器的连接,当服务器需要投递通知给客户时,直接通过现有的连接传递到客户端,而无须再随机产生端口来传递消息。图5显示的是启用轮询功能后,即时消息用户通过防火墙与服务器的通讯过程:
图5:支持轮询的即时消息
为实现即时消息的轮询功能,您需要在即时消息服务器上修复注册表。强烈建议您在修改注册表之前先进行备份,运行regedit32.ext,打开注册表编辑器,浏览到下列路径:
\\HKEY_LOCAL_MACHINE\Software\Microsoft\Exchange\InstantMessaging,如果没有InstantMessaging键,请首先创建这个键。表格1列出了需要添加的注册表项,添加所有的值后,务必重新启动Exchange计算机,使这些值生效。
键名称 数值 其他说明
PollSupport 1 该值决定是否支持轮询,0表示不支持
PollLifeTimeDefault 57600 以秒为单位,决定在服务器上请求缓存的时间
PollLifeTimeMinimum 57600
PollLifeTimeMaximum 57600
PollMsgLifeTimeDefault 864000 以秒为单位,决定消息在服务器上缓存的时间
PollMsgLifeTimeMinimum 864000
PollMsgLifeTimeMaximum 864000
PollMsgLimit 0xFFFFFFF该值决定缓存在服务器上的消息数量
PollMsgKByteLimit 0xFFFFFFF该值决定在一次订阅中缓存消息的最大KB数量,0xFFFFFFFF表示不限制
PollDropMsgLifeTime 864000 该值决定消息维持在服务器上的时间
[注释4]Exchange即时消息有两种虚拟服务器,一种称为即时消息路由器,提供多个即时消息主服务器之间的消息路由,它不负责用户账号;另一种为即时消息主服务器,它负责用户之间的消息传递,并且负责用户账号等作用。本文使用的是主服务器,即时消息路由器不在本文所讨论的主题内。
[注释5]对于通过代理服务器的身份验证或者支持Windows Digest身份验证,这个密码策略的配置是强制性的,Digest验证允许通过HTTP来实现安全的明文验证,您也可以在IIS站点中配置即时消息服务器使用Digest验证。
3、客户端的相关配置
对于客户端来说,并没有复杂的配置。但我建议您安装最新版的Exchange Messaging客户端程序。为确保您的客户可以在Internet上登录到Exchange即时消息服务器,首先您需要确认在Internet上,客户通过浏览器可以打开mycorp.com这个域名的默认页,mycorp.com是在配置IIS站点时输入的主机头,如果打开默认页失败,您需要重新检查ISA及IIS站点的相关配置。
对于Windows 98及Windows NT4.0的计算机,不论是在企业内部还是在Internet上,如果这些客户计算机使用即时消息,您需要为这些客户计算机安装Windows 2000活动目录组件---DSClient,Windows 98版的DSClient程序在Windows 2000安装光盘\Clients\Win9x中提供,Windows NT 4.0版的DSClient程序在微软站点可以下载。
最后,启动Exchange Messaging客户端程序,从主菜单中选择“工具à选项à帐户”,在Exchange帐户一栏中,输入您的登录名,这个登录名称为您的电子邮件地址[注释6],再单击旁边的“高级”按钮,如图6所示:
图6:客户端参数指定
在“Exchange 连接配置”对话框中,选择“轮询”,并且输入1-15之间的一个数字,系统默认为10分钟,如果您输入超出范围的数字,系统会提示出错。指定所有参数后,退出选项菜单,程序返回到请求登录的界面,如图7所示:
图7:客户端登录
此时,如果您的计算机已经连接到Internet,单击“单击这里登录”就可以尝试连接到Exchange即时消息服务器。如果您登录Windows网络的账号与您即时消息账号不符,登录过程会失败,系统要求您输入正确的用户名与密码,然后就可以正常登录了。如图8所示。
图8:身份验证
[注释6]作为一个良好的解决方案,您应该为客户提供一致的登录名称,尽管即时消息可以使用不同于电子邮件域的后缀,但这同样会增加您花费在域名注册、解析等方面的费用。如您的电子邮件域后缀为mycorp.com,则用户电子邮件地址为username@mycorpt.com,您应该为用户创建一个使用username@mycorp.com作为登录名称的即消息服务器,而不是使用username@im.mycorp.com。
4、总结
Exchange 2000即时消息给我们带来的不仅仅是一种通讯手段,更是一种利用现有的网络构架实现高效率通讯的一种解决方案。对于已经实现企业内部即时消息的企业而言,将您的即时消息扩展到Internet,您将从中必定获益非浅。本文中所提及的过程,也仅是点到为止,在实际配置过程中,您可能会碰到更多问题。希望文末提供的一些链接对您有所帮助。而且本文中示例使用的防火墙是软件防火墙,加之ISA同时又是代理服务器,存在一个缓存问题,有时候会导致联系人状态信息不正确,因此,如果条件允许的话,建议您使用硬件防火墙,这在速度与状态信息的正确检测两方面会更加理想。
相关链接:
White Paper - Exchange 2000 Instant Messaging Setup
http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q326188
White Paper - Instant Message Polling and Fixed Port Callback Delivery
http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q326013
Exchange 2000 Server Instant Messaging Authentication Does Not Succeed
http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q319758
,