Jabber Instant Messaging Server

Jabber a popular instant message protocol is based on XMPP, an open standard for instant messaging, and used by many popular applications. This section covers setting up a Jabberd 2 server on a local LAN. This configuration can also be adapted to providing messaging services to users over the Internet.

Installation

To install jabberd2, in a terminal enter:

sudo apt install jabberd2

Configuration

A couple of XML configuration files will be used to configure jabberd2 for Berkeley DB user authentication. This is a very simple form of authentication. However, jabberd2 can be configured to use LDAP, MySQL, PostgreSQL, etc for for user authentication.

First, edit /etc/jabberd2/sm.xml changing:

  <id>jabber.example.com</id>

Replace jabber.example.com with the hostname, or other id, of your server.

Now in the <storage> section change the <driver> to:

   <driver>db</driver>

Next, edit /etc/jabberd2/c2s.xml in the <local> section change:

    <id>jabber.example.com</id>

And in the <authreg> section adjust the <module> section to:

    <module>db</module>

Finally, restart jabberd2 to enable the new settings:

sudo systemctl restart jabberd2.service

You should now be able to connect to the server using a Jabber client like Pidgin for example.

The advantage of using Berkeley DB for user data is that after being configured no additional maintenance is required. If you need more control over user accounts and credentials another authentication method is recommended.

References