目录介绍背景核心功能规划Jabber应用系统需求操作系统硬件软件带宽DNS端口和防火墙服务器安装基本配置配置主机名文件系统设置管理功能授予管理权限察看在线用户发送广播信息企业内部互联网设置禁用“服务器-服务器”通讯禁用注册新用户功能更新服务器NAT设置安全使用SSL安全连接安全认证获得帮助报告漏洞和提供补丁介绍这篇文章介绍如何安装,配置和管理jabberd.Jabberd服务器是最早的基于Jabber协议的开放源代码服务器,是在一个公司内部或公用IM系统中最流行的Jabber服务器。然而,还有很多其他的Jabber服务器,包括一些开放源代码项目(参看)和商业提供者,如i3connect,Jabber,Inc.,Jabcast,andTipic。作为Jabber协议的管理者,Jabber软件基金会(JSF)不会区分不同软件的实现方式。JSF注重的是Jabber的发展,和Jabber技术的传播。强烈推荐Jabberd相关支持人员,服务器管理员订阅JADMIN邮件列表。关于Jabber的更多信息,请参考JabberSoftwareFoundation网站。背景Jabber项目作为自由和开放源代码项目,是由JeremieMiller在1998年开始开发的,并作为其它传统专有IM系统,像AIM,ICQ,MSN和YAHOO的替代品,1999年在Slashdot上发布了第一个公告。Jabber项目的核心是jabberd服务器,这个模块化服务器是用C写成,并使用GNUpth线程库。经过一年的开发,Jabberd1.0在2000年5月发布。2000年10月发布了1.2版,之后2001年1月发布1.4版,2001年4月发布1.4.1版,2002年2月发布1.4.2版。Jabberd开发小组正在积极修补1.5开发版,并将最终作为2.0版在2003年的某个时候发布。Jabberd服务器完全兼容于JabberSoftwareFoundation协议。核心功能总体上,Jabber服务器运行下面这些服务:允许一个来自兼容的客户端或者服务器端组件的TCP连接管理从客户端和组件进入和发出的XML流分发核心Jabber数据类型(message/;,presence/;,andiq/;)到认证客户和组件为连接的客户维护会话信息(通常是IM用户)如果需要,打开和其他服务器的合法连接,路由信息为组件储存信息,尤其是IM用户,包括每一个用户的联系人和一些客户属性附加属性--像群聊,用户目录,和与其他IM系统(AIM,ICQ,MSN,andYahoo)交互--不是当前核心功能的一部分,因此没有写进这个HOWTO。请察看“JabberComponentHOWTO”进一步获得关于如何添加这些属性到你的Jabber服务器的信息。规划Jabber应用在安装任何软件以前,尤其是一个重要的网络架构组件,像Jabber服务器,确定你的需求和规划你的应用是很重要的。现在Jabber服务器可以被广泛应用于下列环境中,包括:小的开发团队小型到中型公司的企业内部网大学和学院基于web的团体Internet提供商大公司的企业内部网如何使用你的Jabber服务器,将毫无疑问的影响你的决定,包括硬件,操作系统,带宽,网络配置,防火墙,安全,数据库连接,等等。你要在开始的时候做出一个主要的决定,要在什么操作系统下运行Jabber。Jabberd被设计用来在Linux和其他多种不同风格的Unix(包括AIX,Solaris,HP-UX,BSD,和MacOSX)上运行。虽然jabberd已经被移植到到了Windows上,但是这个移植版本运行的并不好,不提倡使用。(这篇文章没有收录Windows的移植版本;要察看详细信息,请参考JabberdWindowsHOWTO.)另外,考虑一下你要提供的服务的带宽也是很重要的。需要提供单一的点对点的系统,还是群聊系统?想让你的用户和外界传统的IM系统通讯吗?像AIM,ICQ,MSN,YAHOO。这些服务不是Jabberd缺省的一部分,你必须提供组件。虽然这增加了用户的使用功能,但也使你的规划更复杂,管理更困难。(详细信息,请参考JabberComponentHOWTO.)最后,想一想如何把Jabber集成到已经存在的网络中。例如,你想每一个用户的账号使用他们的电子邮件地址或者网络登录名,或者你想用已经存在的用户数据库(例如,你们公司的LDAP数据库),而不是缺省的文件系统存贮方法。满足你的这些需求,可能会带来更大的复杂性(详细信息,参考即将出炉的JabberdDatabaseIntegrationHOWTO.)系统需求这一部分HOWTO定义系统需求。操作系统虽然Jabberd主要是GNU/Linux下开发的,但是他已经在不同的操作系统下测试过了。1.4.2版可以运行在以下系统中:AIXFreeBSDHP-UXIRIXLinuxMacOSXNetBSDOpenBSDSolaris2.6,7,8上面列出的系统不像Linux使用得那么广泛,所以安装的时候可能会遇到一些麻烦。特殊的需求和说明,在这篇文章中会标出。通常,非GUNUnix系统需要GNUmake,而不是你自己系统里的make。当你在非GNU系统上运行Jabberd时,GNUmake将会解决你的大部分问题,.注意:这篇文章没有讲关于Windows版的jabberd1.4.2。请参考JabberdWindowsGuide察看详细信息。硬件硬件需求决定于你所预期的用户数。以作者的经验,大多数jabberd都是用在像导航项目,内部网站,开发平台,等等这些上面,大约100到1000人。由于同时在线的人数不会超过50%(例如,jabber.org的服务器通常只有2%的用户在线),我们可以适当的评估出大概会有500人同时在线。对于这种情况,硬件需求是最小的:也许一个奔腾级的工作站加512M内存就够了。如果客户端数量巨大,那需要做一些调整。做过一个试验,jabberd服务器可以达到10,000个用户同时在线,它是被设计用来从概念上证明,一台非工业级的服务器也可以提供非常大数量的服务。例如,根据你所使用的操作系统,你可能需要修改OS级别的设置来限制同一个IP的同时连接数量,或者操作系统的filedescriptor.(对于Linux,缺省是限制到1024filedescriptors,这些可以通过proc设置)。由于大量用户的情况在通常的规划之外,我不再讨论他们,但是我也希望在下一个修订版中添加更多关于可缩放服务器的信息。软件Jabberd需要下列软件:GNUpthv1.4.0。请注意,GNUpth1.4.1与jabberd1.4.2是不不兼容的,所以如果你的系统里已经安装了pth1.4.1,请先删除它,然后安装pth1.4.0!如果你的系统里没有安装GNUpth,jabberd安装程序会自动安装它。GNUmake。GNUmake是GNU/Linux操作系统标准的一部分,但是在非GNU系统中,像FreeBSD和Solaris中必须单独安装。不像GNUpth,你必须自己安装GNUmake(jabberd不会为你安装它)。OpenSSL。这是可选的。如果你想让你的客户使用SSL连接,你必须在安装jabberd1.4.2以前安装它。带宽通常情况下,一个Jabber客户端连接需要大概15字节/秒。这意味着1000个用户将会消耗15kbs的带宽,10000个用户将会消耗150kbs的带宽,依次类推。注意,这是指同时在线的用户数,不是注册的用户数(当前用户数取决于你自己的规划,但是一般对于ISP只有少于5%的用户同时在线,而在企业中只有少于50%的用户同时在线。请以此为参考。DNS像下面描述的那样,也许你想用全称域名(FQDN)来运行jabberd服务器。这不是在每种情况下都是必需的,但是如果你想和其他jabber服务器通讯,或者你想让局域网以外的用户访问服务器,那服务器的主机名(hostname)必须是一个全称域名(fully-qualifieddomainname)。这同样适用于你想用jabberd服务器提供相关服务的子域(例如,一个Jabber用户的目录或会议服务)。因此你必须要求系统管理员在DNS域名表中添加你的主机名和相关的子域。端口和防火墙IANA规定了Jabber使用的两个端口:一个用于“客户-服务器”通讯(端口5222),另一个用于“服务器-服务器”通讯(端口5269)。如果想让jabber客户端能够和服务器通讯,必须保证TCP5222端口是开着的。如果想让Jabber服务器能够向其他jabber服务器发送消息,必须保证TCP5269端口是开着的。另外,如果需要为其他IM系统安装网关,需要打开指定的与其他系统通讯的端口。请参考README或者其他文档来确定所要安装的网关软件需要打开的端口(例如,MSN的网关端口1863是)。一些Jabber服务器在公司内部网或者防火墙内使用,如果不想和组织外部的Jabber服务器通讯,你当然不想打开这些端口。在其他情况下(例如,公司有远程雇员),可以打开标准jabber客户端端口5222(或者5223端口来使用SSL连接),这样防火墙之外的用户也可以和服务器通讯了。另外,如果想让用户和外部服务器用户通讯,需要打开标准jabber服务器端口5269来实现“服务器-服务器”的通讯。一种更复杂的配置是一个服务器在防火墙内部供内部用户使用,一个服务器在DMZ区供外部用户使用,通过5269端口在两个服务器之间建立“服务器-服务器”的信任通道(通过在防火墙的“控制列表”中只打开这两个服务器之间的5269端口通讯).如果在Jabber服务器和任何用户之间有防火墙,请保证防火墙和jabber服务器之间的超时设置是恰当的,这是很重要的,尤其在用户使用TCP5222端口连接到服务器的时候。因为当用户打开一个会话的时候,要保证TCP端口是一直开着的,为了优化HTTP设置的防火墙超时设置可能过早的断开Jabber用户的连接。服务器安装1.4.2版可以从下载。这个路径包括其他平台的安装包(Solaris包,RPM包,deb包等等)。注意,这些包只包括核心jabberd服务器--附加组件在其他地方(参考JabberComponentAdminGuide)。因为一些管理员在安装这些包的时候遇到一些问题,所以我们推荐使用源代码包安装。你只需要下载这个文件。然后按照下面的步骤安装:把文件保存到/tmp/(或者任何你选择的目录)。创建一个目录,作为你想安装jabber的路径/path/to/jabber/(通常使用/usr/local/jabber/)。注意:你可能需要作为root用户登录才能创建这个目录输入mv/tmp/jabber-1.4.2.tar.gz/path/to/jabber/输入cd/path/to/jabber/输入gzip-djabber-1.4.2.tar.gz输入tar-xvfjabber-1.4.2.tar(这会解压到jabber-1.4.2/目录,包括各种文件和子目录)输入cdjabber-1.4.2/输入./configure安全提示如果想让客户使用SSL连接,需要重新编译:./configure--enable-ssl(注意,如果不是从源代码安装的,那就不能在SSL模式下运行)。输入make操作系统提示如果正在运行Solaris或其他非GNU系统,请保证使用GNUmake编译,而不是原有的make。必须输入gmake,而不是make。Jabberd1.4.2应该已经安装到你的机器上了。如果安装过程中遇到什么困难,请发送消息到JADMINmailinglist,描述你的问题。包括操作系统,相关软件版本等完整的信息。