Feb 25, 2004 (03:02 PM EST)
How to Configure The Jabber Instant Messaging Server

Read the Original Article at InformationWeek

1   2   3  
Jabber is an open source project designed to provide secure real-time messages and presence information transfer between multiple entities on the Internet. Due to the wide variety of developers who work on jabber, it is highly configurable for a range of different situations. For example, a server can be used privately by a company, or open to the public Internet. In this guide, you will learn how to configure a jabber server for a private organization, as well as how to setup some more advanced features.

Why Jabber?
The natural question is, why use jabber? There are other instant messaging systems, such as AOL, Lotus SameTime and Microsoft Messenger. What makes jabber different? The first benefit to jabber is how many different operating systems is runs on. Most major Linux/Unix platforms can run a jabber server. Secondly, the system requirements are much lower for jabber. An average to large jabber server can be run on a Pentium class computer with about 512 Megabytes of RAM, and takes less than 50 Megabytes of hard drive space for a complete install. AOL requires Red Hat Linux or Windows, a database such as Oracle 9i, a Pentium 4 at 2GHz, 512MB RAM minimum, and at least 100MB of disk space, not including the disk space for the user data. Lotus SameTime requires Windows, at least a Pentium II 400MHz processor, 500 Megabytes of RAM minimum, and at least 500 Megabytes of free hard disk space. If you look at the requirements for Microsoft Messenger, you will see that the official client runs only on Windows, and there is no possibility of running a server. And Microsoft Messenger simply uses a single instant messaging protocol for every user, there is no site access control.

Jabber is a smaller and more efficient server which is capable of being available only to a corporate network or specific users. The source code is freely available, which allows administrators to add or restrict features as they need. This flexibility makes jabber a natural choice for internal real-time communications.

Note: The jabber server is capable of being restricted to internal use only. But if gateways to other instant messaging systems are installed (such as AOL IM, MSN, ICQ, etc), users registered with those messaging systems will be able to contact users outside of the restricted site. Because the other messaging systems rely on a single central server, you cannot restrict access to those systems, you may only allow or deny it completely by installing or removing the gateways.

What is Jabber
Let's take a look at what jabber really is. The Jabber Software Foundation says that jabber is a set of protocols for the real-time exchange of messages and presence information between entities on the Internet. The jabber protocols are implemented in several projects, all of which offer the same basic functions. This guide will be focusing on the jabberd server project. Jabberd was designed as a simple jabber server that implements the latest additions to the jabber standard. It is available for Linux, Solaris, BSD, and Windows. Jabberd is a very widely used server, and has had many developers to help secure and stabilize it. If someone wants a new feature implemented, they are free to do so under the terms of the Jabber Open Source License (JOSL). We will be setting up the server for Linux (or other compatible Unixes). Unfortunately, the 1.4.2 version does not work on Windows 2003 or XP.

Preparing for Installation
The jabberd server is a very powerful piece of software. It was originally designed as a proof of concept project, but it has been tested with 10,000 simultaneous users. Before we jump into setting up a server, make sure that you have the following software available to you:

  • The GNU pth threading library
  • GNU make
  • OpenSSL (optional)
  • OpenSSL is highly recommended, especially if anyone is going to connect to the jabber server from outside your corporate network.

    All three of these packages are typically installed by default on most Linux distributions. If you do not have these packages installed, you can obtain the source code from the links in the previous paragraphs. Compiling the packages is very straightforward. Simply unpack the source code, enter the software's directory, and type

    ./configure && make && make install