Ejabberd

Aus schokokeks.org Wiki
Zur Navigation springen Zur Suche springen

Einführung

Seit dem 21. Januar 2005 wird der Jabberd des Schokokeks mit Ejabberd betrieben. Dieser in der Programmiersprache Erlang implementierte Jabber-Server bietet einige Vorteile gegenüber den Konkurrenten Jabberd 2.0 und 1.4:

Stabilität und Performance

  • Erlang wurde dazu entwickelt, um hochverfügbare Systeme im Telekommunikationsbereich zu implementieren und stellt somit sicher, dass der Server genau das tut, was er tun soll: funktionieren.
  • Speicher- und CPU-Bedarf des Ejabberds sind deutlich geringer als der seiner Konkurrenten.

Modularität und Zugriffsrechte

  • Jedes Modul lässt sich hinzufügen, entfernen und neu starten ohne dass davon der eigentliche Jabberd berührt ist. Eine Ausnahme bilden hierbei die sogenannten Transports. Bei Änderungen muss der Ejabberd leider trotzdem neu gestartet werden.
  • Über ACLs lassen sich sehr genau granuliert Zugriffsrechte einstellen. Darüber ist ein extrem flexibles Setup zu erreichen.

Konfigurierbarkeit

  • Ejabberd lässt sich nach aufwendiger Initialkonfiguration komfortabel über ein Webinterface warten.
  • Die Konfigurationsdatei ist übersichtlicher als die bei Jabberd 1.4 und 2.0 üblichen, sehr langen und teilweise unübersichtlichen XML-Dateien.

Erweiterte Jabber-Funktionen

  • Jabberd bringt praktische Funktionen wie Shared Roster, Service Discovery out-of-the Box mit.

Konfiguration

Ports und Transports

Ejabberd ist so konfiguriert, dass auf Port 5222 auf schokokeks.org ein normaler Jabber-Daemon lauscht. Dieser bietet auch unverschlüsselte Verbindungen an, es ist aber empfohlen TLS-geschützte Verbindungen zu verwenden. Falls der Client dies nicht unterstützt, sollte man auf das klassische SSL auf Port 5223 zurückgreifen.

Bisher ist auf schokokeks.org ein MUC-Modul (Konferenz-Erweiterung), PyICQ-T als ICQ-Transport und mod_irc als IRC-Transport konfiguriert.

Administrative Aufgaben

Vhost hinzufügen

/etc/jabber/ejabberd.cfg editieren. In der Direktive {hosts, ...} den gewünschten Virtual host hinzufügen und Ejabberd neu starten (/etc/init.d/ejabberd restart).

Tipp:
Wenn man die Ejabberd Konfigurationsdatei unter /etc/jabber/ejabberd.cfg editiert, ist zu beachten, dass es sich dabei um ganz normalen Erlang Code handelt. In Vim ist es deshalb zu empfehlen, das Syntaxhighlighting auf erlang umzustellen (:set syntax=erlang).

Einen Benutzer zum Administrator machen

/etc/jabber/ejabberd.cfg editieren und folgende Zeile hinzufügen: {acl, admin, {user, "user", "example.org"}}.

Konfigurationsdatei validieren

Da Erlang-Code einige Fallstricke mit sich bringt, ist es empfehlenswert, vor dem Neustarten des Jabber-Servers zu überprüfen, ob die Konfigurationdatei /etc/jabber/ejabberd.cfg syntaktisch korrekt ist. Dazu findet sich unter /root/erlang-tools/ ein kleines Erlang-Programm erlcheck.erl, das wie folgt verwendet wird:

  • Erlang-Shell öffnen
erl /root/erlang-tools/erlcheck.erl
  • Erlcheck laden
c(erlcheck).
  • Konfigurationsdatei überprüfen
erlcheck:checkfile("/etc/jabber/ejabberd.cfg").