OpenFire源码学习之十六:wildfire Wildfire

Wildfire是一个基于xmpp的IM即时通讯和群组聊天工具。

安装

Windows

         Windows的默认安装目录  c:ProgramFilesWildfire

Linux/Unix

         有两种选择方法:

         1.选择RPM :它将安装到/opt/wildfire

rpm -ivh wildfire_3_0_0.rpm

         2.选择.tar.gz,: 它将安装到/optor /usr/bin:

tar-xzvf wildfire_3_0_0.tar.gz
    mv wildfire /opt

注意:tar.gzd的构建没有附带jre文件。所以你必须在的你系统安装jdk1.5以上的版本

设置概述

完成wildfire的安装需要实现以下几个步骤:

1.DateBase::如果你选择外部数据库,必须指定wildfire需呀的数据库

2.Setup:使用内置的基于网络的设置工具来设置和验证服务器配置。

3.AdminConsole使用基于web的管理工具来管理服务器。

Wildfire的文件分配

OpenFire源码学习之十六:wildfire
Wildfire

l  Confing是wildfire的配置文件路径

l  Bin :是服务器的可执行文件,这取决于你安装分布,不同的可执行文件将是可用的

l  Jre:目录包含一个Java 5运行时,附带的windows和RPM版本

l  Lib:目录包含必要的运行库

l  Plugins:目录包含服务器插件,默认使用web的管理控制台插件

resources/database: sql脚本

resources/securitySSL安全连接密钥库

Documentation服务器文档

设置数据库:

wildFire中内嵌了多种数据库脚本如:mySQL、oracle,它支持标准的外部数据库和自带的数据库。

如果你需要使用它的脚本,你必须先运行它的database schema

wildfire将所有数据存储在一个后端数据库。如果您选择不使用嵌入式数据库,您必须设置和管理外部数据库的应用程序。本文档提供了对所有的设置说明当前支持的数据库。

以SQLSERVICE为例:

l  Driver: net.sourceforge.jtds.jdbc.Driver

l  Server:jdbc:jtds:sqlserver://[host-name]:[port-number]/[database-name];appName=jive

设置服务:

一个基于web的、“向导”驱动设置和配置工具是建立成wildfire。简单地启动wildfire(特定于平台的说明),并使用一个web浏览器连接到管理控制台。默认端口为基于web的管理控制台是9090。如果你是在同一台机器上像野火,以下URL:http://127.0.0.1:9090通常会工作

控制台管理:

在完成上述步骤,wildfire将配置,您可以使用基于web的管理控制台来管理服务器。URL应该同你用来设置服务器,除非你改变了端口在设置。

运行在windows上的wildfire

如果你使用了wildfire安装程序,一个快捷方式启动图形发射器被提供在你的开始菜单。否则,运行野火。exebin /目录你的野火安装。上的一个按钮在发射器允许您自动打开您的web浏览器指向正确的URL来完成设置服务器:

OpenFire源码学习之十六:wildfire
Wildfire

Windows服务:

如果你运行wildfireWindows,您可能会想要运行作为一个标准的Windows服务wildfire初始设置后。如果你使用Windows安装程序,wildfire服务。exe文件将在安装的bin目录。你可以使用这个可执行的安装和控制服务的野火。

从控制台,你可以运行以下命令:

·        wildfire-service /install-- installs the service.

·        wildfire-service /uninstall-- uninstalls the service.

·        wildfire-service /start-- starts the service

·        wildfire-service /stop-- stops the service.

您还可以使用服务工具在Windows控制面板启动和停止服务

注意:图形发射器不兼容Windows服务在这个时间。如果你安装服务,您应该使用服务控制如上所述控制服务器而不是图形发射器。

高级用户可能希望传递参数到Java虚拟机(VM)自定义运行时环境的wildfire。您可以通过创建vmoptions文件在bin/ directory 中安装wildfire。对于Windows服务,您需要创建一个新的文本文件称为wildfire-service.vmoptions。每个VM参数应该在新的一行上的文件。例如,设置最小堆大小为512MB,最大VM堆大小为1024 MB,可以使用

-Xms512m

-Xmx1024m

创建参数正常的发射器,创建一个文件叫做wildfired.vmoptions(因为野火。调用wildfired exe发射器。exe可执行实际启动服务器)。

SSL指南

一个指导如何设置wildfire的SSL安全插座支持。

注意:wildfire使用自己的签名证书。所以实际中工作中并没有安装用户需要的签名证书。然而,大多数用户会希望用户自己的证书。

wildfire的SSL支持构建使用标准的Java安全SSL实现(javax.net.ssl.SSLServerSocket)。

在本文中,我们将描述如何使用标准JDK 1.5工具来完成这些任务。

背景

一个服务器的SSL连接使用两套证书安全连接。

第一个为成为“keystore”——密钥:keystore在服务器中包含着密钥和证书。这些安全凭证是用来证明给客户,服务器是一个特定的域合法运营。如果您的服务器将只需要充当一个域,那么你只需要一个关键的入口和证书的密钥存储库。密钥存储在keystore在别名,每个别名对应一个域名(如:example.com.)

第二组证书被称为“truststore信任库”,是用来确认一个客户是合法营业代表一个特定的用户。

在绝大多数情况下,信任存储库是空的,服务器将尝试验证使用SSL客户机连接。相反,XMPP认证过程验证用户带内。

证书就像他们声明的一样保持一个详细part,证书信任基于那些签名的证书。如果在你部署的网络工作中,只需要一个轻安全,你可以使用“self-signed”签名证书。您自定义的签名证书通信于您的服务端和客户端之间,但是客户必须验证证书的合法性theself-signed通过其他渠道。最常见的客户反应一个自签名证书是问用户是否信任该证书,或者默默地信任证书是合法的。不幸的是,盲目地接受自签名证书将打开了系统“中间人”攻击。

自签名证书的优点是你可以免费创建它们,当然是好的,成本是一个重要的问题,或进行测试和评估。此外,您可以安全地使用一个自签名的证书如果你可以验证该证书你使用是合法的。所以,如果一个系统管理员创建一个自签名证书,然后亲自安装这一个客户的信任存储库(这样证书是可信)您可以确保SSL连接只会工作和客户端之间正确的服务器。

对于更高的安全部署,你应该把你的证书签署的认证机构(CA)。客户端信任库通常会包含CA认证和它需要验证签订的证书。这一连串的信任允许客户端从服务器信任证书之前他们从未与之交互。证书签名是类似于一个公证人(与等量的验证身份,记录,和成本)。

JDK1.5的安全工具

Sun JDK附带所有的安全工具,您需要配置SSL与wrildfire。它的密钥工具keytool 处于java_home/bin目录下。java虚拟机通过加密文件的形式将密钥库存储起来。在这个文件中密钥工具用于创建、修改、删除、读取。wrildfire附带一个自签名证书的“dummy”虚拟的的设计为初步评估测试,您需要对您的部署调整默认配置参数。

为了配置SSL服务器上你需要完成以下任务:

1.解决你的wrildfire的服务器域。

2.在您的服务器域上创建一个自定义的SSL签名证书。注意:您可能已经有一个如果你的野火服务器域匹配现有的web域与SSL。如果这样你跳到第4步。

3.可选的,需要有一个证书颁发机构(CA)的SSLserver认证证书

  a.生成证书签名请求(CSR)。

  b.提交你的CSR对CA签署。

4.将服务器证书导入到密钥存储库.注意:如果您正在使用自签名证书生成步骤2,证书已经导入,你可以跳过这一步。

5.删除默认证书的密钥存储库

6.客户端证书导入到信任存储库。

7.调整野火与适当的密钥存储库和信任存储库配置设置。

Decideon a Server Domain

服务器应该匹配的野火域服务器的主机名,例如,“example.com”。你的用户帐户会有地址的格式“user@example.com”像电子邮件地址。我们假设域“example.com”在剩下的例子

Createa self-signed server certificate

为了创建一个自签名服务器证书去命令行和更改 resources/security安装的野火。你应该看到默认的密钥存储库和信任存储库文件。首先,你应该改变缺省密钥存储库的密码:

keytool -storepasswd -keystore keystore

keytool将要求旧密码(默认情况下它是changeit)然后新密码。现在我们将创建一个证书使用keytool:

keytool -genkey -keystore keystore -alias example.com

你应该替代你的服务器的名称为example.com。keytool会主动要求存储密码,然后几条信息所需的证书。输入所有的信息,但记得要完成你的服务器的名字当要求你的第一个和最后一个名字。在你进入所有必需的信息,keytool将要求您验证信息和设置一个关键密码。你必须使用相同的密钥存储密码的密码。缺省情况下,您得到这仅仅通过打击”进入“当提示输入密码的关键。

如果你以后更改密钥存储密码记得更改条目的密码,使用keytool:

keytool -keypasswd -alias example.com -keystore keystore

Obtaina CA signed certificate

如果你决定买一个CA签署的证书,你必须首先导出证书在标准格式。企业社会责任这可以使用keytool:

keytool -certreq -keystore keystore -alias example.com -filecertificate_file

你应该替代你的服务器的名称为example.com和证书文件的名称你想生产证书文件。提交生成的CSR对CA和遵从他们的指示来拿去签字。

Importserver certificates

如果你有一个CA签署你的服务器证书,或者如果你有一个现有的SSL证书,你必须使用keytool导入它。

keytool -import -keystore keystore -alias example.com -filesigned_certificate_file

它是重要的别名不已经有一个相关的键或你将收到一个错误。

Removedefault certificates

在导入你的证书,你必须删除默认证书使用keytool。

keytool-delete -keystore keystore -alias rsa

keytool-delete -keystore keystore -alias dsa

Importclient certificates

如果你需要客户来验证自己使用证书,获得他们的证书并将其导入信任存储库文件而不是密钥存储库。首先,你应该改变默认的信任库的密码:

keytool -storepasswd -keystore truststore

keytool将要求旧密码(默认情况下它是changeit)然后新密码。现在进口每个证书使用keytool:

keytool -import -keystore truststore -alias user_name -filecertificate_file

ConfigureWildfire

打开管理控制台的野火在您喜欢的浏览器并添加或更改以下系统属性:

l   xmpp.socket.ssl.active --set to 'true' to active SSL

l   xmpp.socket.ssl.port -- theport to use for SSL (default is 5223 for XMPP)

l   xmpp.socket.ssl.storeType--使用的存储类型(“JKS”是太阳Java Keystore格式使用的JDK keytool)。 如果没有定义这个属性,野火将假设一个值“jks”。

l   xmpp.socket.ssl.keystore——keystore文件的位置相对于您安装根目录,野火你可以把这个属性空白使用默认的密钥存储库。

l   xmpp.socket.ssl.keypass--the keystore/key password you changed in step 2.

l   xmpp.socket.ssl.truststore ——留空白不使用一个信任存储,否则信任库文件的位置相对于您安装根目录,野火

l   xmpp.socket.ssl.trustpass信任库/关键密码你改变了在步骤6

您将需要重新启动服务器之后修改任何上述系统属性。

LDAP Guide

介绍

本文档描述如何配置您的野火安装使用一个外部LDAP目录中,如打开或活动目录。集成到一个目录中允许用户使用他们的目录进行身份验证的用户名和密码。可选地,您可以加载用户配置文件配置野火和组信息的目录。任何组织都可以被指定为野火共享组,这意味着你可以预先使用目录组织用户的花名册。

背景

LDAP(轻量级目录访问协议)已经成为一个占主导地位的标准来对用户进行身份验证的用户配置文件和存储数据。它是一个强大的工具,大型组织(或那些组织整合许多应用程序)来简化用户管理问题。许多LDAP服务器可用,如开放LDAP,活动目录,和NovelleDirectory的。

默认情况下,所有用户数据存储在野火其数据库和使用数据库查询执行身份验证。LDAP模块替换功能,并允许野火到:

•使用LDAP服务器来验证用户的身份。

•负载用户概要信息从LDAP目录。

•负载组信息从LDAP目录。

注意:野火将LDAP目录为只读。

本文将指导您完成配置LDAP支持在野火。这些说明假定你是一个称职的LDAP用户,您熟悉野火设置问题。

配置

野火的设置工具包括一个易于使用的LDAP设置向导。选择LDAP选项的配置文件设置页面配置目录集成。向导以及在线帮助将指导您完成余下的过程。

OpenFire源码学习之十六:wildfire
Wildfire

如果你已经完成了设置过程但需要启用LDAP集成,您可以重新运行安装工具。这样做:

1.停止野火。

2.编辑conf/wildfire.xml在安装文件夹和设置你的野火<设置>真</设置>到<设置>假< /设置>。

3.重新启动,进入安装工具的野火。

手动编辑配置文件

如果你更喜欢编辑配置文件来启用LDAP集成,直接使用以下指令。打开配置文件conf /野火。xml从你安装在您最喜爱的编辑器野火,添加或更改以下设置。属性标记为(*)必须设置。属性标记为(**)必须设置为启用LDAP组的支持,其他所有属性都是可选的:

主要设置

l  provider.user.className -- set the value to"org.jivesoftware.wildfire.ldap.LdapUserProvider".

l  provider.auth.className * -- set the value to"org.jivesoftware.wildfire.ldap.LdapAuthProvider".

l  ldap.host

.......

关于wrildfire暂告一段落。以后补充