Jabber Server auf Raspberry Pi installieren

Was gibt es Bequemeres als sich schnell und unkompliziert per Instant Messaging mit Familie, Freunden oder Kollegen zu unterhalten. Gerne werden hier auch mal Dateien oder Informationen übermittelt, die nicht unbedingt für Dritte bestimmt sind. Große kommerzielle Anbieter von Instant Messaging Diensten regeln in den AGBs, dass jegliche Kommunikation gespeichert wird. Wer ein unabhängiges freies System nutzen möchte, sollte mal einen Blick auf Jabber bzw. das XMPP Protokoll werfen. XMPP (Extensible Messaging and Presence Protocol) ist ein freies Protokoll, welches dem XML Standard folgt und für Instant Messaging (Chat) genutzt wird. Zwei Branchenriesen setzen das Protokoll auch für ihre eigenen Dienste ein. Für den Eigenbetrieb gibt es mehrere OpenSource Varianten. Ich habe mich für Prosody entschieden, weil er sehr schlank und einfach zu konfigurieren ist. Nachfolgend werden die Schritte erklärt, wie Prosody auf einem Raspberry Pi mit Raspbian OS (Debian Wheezy) installiert wird.


Um Prosody über apt-get installieren zu können, muss das entsprechende Repository in die Paketquellen aufgenommen werden.

sudo echo deb http://packages.prosody.im/debian wheezy main | sudo tee -a /etc/apt/sources.list.d/prosody.list

Damit die Paketlisten sauber geladen werden können, muss der Paket Signing Key hinzugefügt werden.

sudo wget https://prosody.im/files/prosody-debian-packages.key -O- | sudo apt-key add -

Die Paketlisten müssen erst aktualisiert werden und im Anschluss wird Prosody installiert.

sudo apt-get update && sudo apt-get install prosody

Somit ist Prosody schon installiert und kann nun über ein Configfile angepasst werden.

sudo nano /etc/prosody/prosody.cfg.lua

In der Zeile „admins = { „admin@jabber.example.com“ }“ kann gleich ein entsprechender Admin eingetragen werden. Um zusätzliche User anzulegen gibt es zwei Möglichkeiten. Entweder direkt über einen Jabber Client oder auf Zuruf durch einen Administrator. Ersteres würde bedeuteten, dass sich jeder, der den Server kennt, registrieren kann. Dazu muss die Zeile „allow_registration = false;“ auf „allow_registration = true;“ geändert werden. Wer die User lieber explizit anlegen möchte, kann dies mit folgendem Befehl tun.

sudo prosodyctl adduser neuer_user@jabber.example.com

Als nächstes wird die Domain konfiguriert.

VirtualHost "jabber.example.com"
enabled = true -- Remove this line to enable this host

-- Assign this host a certificate for TLS, otherwise it would use the one
-- set in the global section (if any).
-- Note that old-style SSL on port 5223 only supports one certificate, and will always
-- use the global one.
ssl = {
key = "/etc/prosody/certs/jabber.example.com.key";
certificate = "/etc/prosody/certs/jabber.example.com.pem";
}

Wie ein SSL Zertifikat erzeugt wird, ist in diesem Beitrag beschrieben: Klick
Die globalen SSL Settings können entweder entfernt oder ebenfalls mit denselben Werten nochmal befüllt werden:

ssl = {
key = "/etc/prosody/certs/jabber.example.com.key";
certificate = "/etc/prosody/certs/jabber.example.com.pem";
}

Per Default speichert Prosody die Passwörter im Klartext ab, um mit alten Clients kompatibel zu sein. Wer das nicht möchte bzw. nicht braucht, kann die Passwörter gehashed abspeichern. Dazu muss eine zusätzliche Zeile hinzugefügt werden.

authentication = "internal_hashed"

Um die Änderungen zu aktivieren, muss der Prosody Dienst einmal durchgestartet werden.

sudo /etc/init.d/prosody restart

Damit ist der eigene Jabber Server einsatzbereit. Im verwendeten Jabber Client sollte noch auf das OTR (Off the Record) PlugIn geachtet werden, um die Kommunikation zu verschlüsseln.

Nachtrag vom 19.08.2014

Folgende Portfreischaltungen werden für einen reibungslosen Betrieb noch benötigt.

Port 5222 eingehend = Clientverbindungen
Port 5280 eingehend = Clientverbindungen (http-bind)
Port 5269 ein- und ausgehend = Verbindung zu fremden Servern