XMPP ist ein Protokoll für Instant Messanger welches auch unter dem Namen Jabber bekannt ist. Um einen eigenen Jabber-Server zu betreiben ist nicht viel Aufwand nötig.
Zunächst wird der Port net-im/prosody installiert.
Um Verbindungen über ein SSL-Zertifikat verschlüsseln zu können muss ein entsprechendes Zertifikat erstellt werden: openssl_zertifikat_erstellen.
Nach der Installation des Dienstes kann dieser konfiguriert werden. Die Konfiguration erfolgt in der Datei /usr/local/etc/prosody/prosody.cfg.lua und richtet sich nach Lua-Syntax.
Wird Prosody in einer Jail installiert sollte zunächst die folgende Zeile hinzugefügt werden:
interfaces = { '123.123.123.123' }
Wobei 123.123.123.123 die IP darstellt welche der Jail zugeordnet ist.
Auf einem unixoiden System sollte die Option posix in die Module hinzugefügt werden. Hierzu ist einfach unter modules_enabled die entsprechenden Zeile zu aktivieren (die beiden '–' entfernen).
Damit Prosody das pid-File in /tmp anlegt wird folgender Eintrag hinzugefügt.
pidfile = "/tmp/prosody.pid"
Nun wird die Zeile
VirtualHost "example.com"
angepasst, so dass statt example.com hier der echte Hostname des Servers steht. Anschließend wird noch
enabled = false
entfernt um diesen Host zu aktivieren.
Damit die Clients dazu gezwungen werden sich über eine verschlüsselte Verbindung anzumelden wird noch der folgende Eintrag angepasst:
c2s_require_encryption = true
In den SSL-Zeilen muss der Pfad zum oben angelegten SSL-Schlüssel und SSL-Zertifikat angepasst werden. Nicht vergessen, dass diese Zeile sowohl allgemein, als auch zum jeweiligen Host gepflegt werden kann.
ssl = { key = "/etc/opensslcerts/prosody.key"; certificate = "/etc/opensslcerts/prosody.crt"; }
Damit der Server die Passworte der User nicht im Plaintext speichert wird die Zeile
authentication = "internal_plain"
in die folgende Zeile geändert
authentication = "internal_hashed"
Im Gegensatz zu anderer Software legt Prosody seine Dateien unter dem Pfad /usr/local/var/lib/prosody ab.
Um den Server erreichbar zu machen müssen die Ports 5222 und 5269 von außen erreichbar sein. Eine Firewall ist entsprechend zu konfigurieren.