Ein eigenes Messenger System mit Jabber/XMPP

Jabber Logo

Jabber Logo

Jabber (engl. Geplapper) ist der Name eines Kommunikations- und Streamingprotokolls das 1999 von Jeremie Miller veröffentlich wurde. 2004 wurde das Protokoll durch die IETF zu einem offiziellen Standard mit dem Namen Extensible Messaging and Presence Protocol (XMPP), oder auf Deutsch, erweiterbares Nachrichten- und Anwesenheitsprotokoll. Die Kernidee dabei war, den Anwesenheitsstatus eines Nutzers (online, offline) mit anderen Nutzern zu teilen (Freunde, Bekannte) und mit der Möglichkeit zu kombinieren, sich Nachrichten in Echtzeit zusenden zu können.

Die Daten werden dabei auf unterschiedlichen Servern gespeichert. Die Server sind miteinander verbunden.

Um Benutzer innerhalb des XMPP-Netzwerkes zu identifizieren und zu adressieren, gibt es den sogenannten „Jabber Identifier“ (JID). Dieser hat die Form „alice@example.com“, ähnelt einer E-Mail-Adresse und verhält sich auch ähnlich: So ist hier alice der Benutzername und example.com der Server, bei dem der Nutzer registriert ist. Durch das Konzept der „Ressourcen“ ist es möglich, sich mit einer Identität an einem XMPP-Server mehrfach anzumelden.
Ein großer Vorteil von XMPP ist, dass nahezu für jedes Betriebssystem und in jeder Programmiersprache XMPP-Clients existieren. Allerdings unterscheiden sich die Lösungen hinsichtlich des Umfangs, in dem sie das Protokoll unterstützen. (Wikipedia)

Fast alle grossen Messengersysteme, beispielsweise Facebook Messenger und Google Talk, bauen auf dem XMPP-Protokoll auf. Wenn nicht, so bieten sie meistens eine Unterstützung für XMPP an, beispielsweise Apple iChat.

Nach wie vor ist es natürlich möglich, seinen eigenen Messaging Server zu betreiben.

Wir bei Novatrend nutzen beispielsweise einen Jabber/XMPP Server für das interne Messaging. Der Nachrichtentransport ist verschlüsselt und auch wenn die Daten nicht immer geheim sind, so ist doch sichergestellt, dass Sie nicht auf Festplatten anderer Firmen gespeichert werden. Eine Registrierung ist auf unserem Jabber Server nicht erlaubt. Nur ein Administrator kann Benutzerkonten anlegen.
Es gibt Clients für alle denkbaren Betriebssysteme und Jabber/XMPP hat sich für uns zu einer einfachen und effektiven Art der Kommunikation entwickelt.

Installation

Es gibt unterschiedliche XMPP Server. Einer der gebräuchlichsten Open Source XMPP Server ist eJabberd. Er ist in der eher selten verwendeten Sprache Erlang geschrieben, zuverlässig und skalierbar.

Website eJabberd
Website eJabberd
Die Installation in Ubuntu 14.04 ist sehr einfach

sudo apt-get install ejabberd

Bei der Installation wird ein selbstunterzeichnetes Zertifikat erzeugt, das den Nachrichtenverkehr verschlüsselt.

Konfiguration

Der Server muss mit Domainnamen, Adminuser und Passwort konfiguriert werden. Der Rest der Konfiguration kann beim Standard belassen werden (eine Benutzerregistrierung über Clients ist in der Standardkonfiguration deaktiviert). Für die Konfiguration nutzen wir dieses Kommando:

sudo dpkg-reconfigure ejabberd

Zunächst wird der Namen des hosts abgefragt. Hier muss die Domain eingegeben werden und der Rechner muss auch über das DNS-System unter diesem Namen bekannt sein.

eJabberd - Domain
eJabberd – Domain

Als nächstes wird nach einem Namen für das Administratorkonto gefragt.
Dabei handelt es sich um die bereits oben angesprochene Jabber-ID, der administrative Rechte eingeräumt werden.
Mit dieser JID kann man sich dann später auch über einen XMPP-Client einloggen (concierge@serverblogger.ch).

eJabberd - Name des Administratorkontos
eJabberd – Name des Administratorkontos
eJabberd - Password
eJabberd – Password
Danach trat bei mir der folgende Fehler auf:

Waiting for ejabberd to register admin user...................................................^@.........
Can't register admin user "concierge@serverblogger.ch".
Ejabberd is starting too long.

Ich habe dann diese Prozesse gelöscht

sudo killall epmd

und den Befehl

sudo dpkg-reconfigure ejabberd

und die login Daten nochmal eingeben. Beim zweiten Versuch funktionierte es:

Starting jabber server: ejabberd.
Waiting for ejabberd to register admin user.
Admin user "concierge@serverblogger.ch" is registered successfully.

Der Jabber-Server läuft jetzt.

Das Start/Stop Script wird folgendermassen aufgerufen

sudo /etc/init.d/ejabberd restart

Adminbereich

In der Standardkonfiguration bietet ejabberd eine Weboberfläche, die über die URL http://serveradresse:5280/admin/ zu erreichen ist.

eJabberd - Adminbereich
eJabberd – Adminbereich
Hier kann man auf einfache Art neue Benutzer anlegen. In der Standardkonfiguration ist das Registrieren von Konten durch den Jabber-Client verboten.
eJabberd - User
eJabberd – User

Sie können sich jetzt bereits mit einem Client wie Adium verbinden. Weil das Zertifikat selbst erstellt ist, erscheint folgende Meldung:

Adium - Zertifikatsabfrage
Adium – Zertifikatsabfrage
Adium - Benutzerdaten eingeben
Adium – Benutzerdaten eingeben
Adium - Jabber Chat
Adium – Jabber Chat

Das ist die Minimal Konfiguration für einen SSL-verschlüsselten Messenger den problemlos alle Mitarbeiter Ihrer Organisation nutzen können!

Je nach Ihren Anforderungen, können Sie den eJabberd erweitern und umkonfigurieren.

Einen guten EInstieg und eine detailliertere Beschreibung der Konfiguration finden Sie in der Installationsanleitung von ubuntuusers.de (siehe Links).

Links:


tl;dr: Ein eigener Jabber/XMPP Messenger Server ist einfach einzurichten, ist verschlüsselt und läuft überall!

Autor: Hagen Graf

consultant, author, trainer, solution finder, web architect, developer, open source lover, visionary, orator, the good old webmaster. Able to simplify!

Kommentar verfassen