Möchte man unter Ubuntu/Debian die aktuelle stable Version von ejabberd installieren, so kann dies mit dem binären Installer bewerkstelligt werden.

Das nette an dieser Variante ist, dass man nicht alle erlang Pakete mit installieren muss, da der Installer alle Abhängikeiten mitbringt.

Diese Anleitung soll Schritt-für-Schritt zum gewünschten Erfolg führen ;)

1) ejabberd auf dem System installieren

Zunächst besorgt man sich das richtige Installer-Paket für sein System (je 32 oder 64 Bit)

http://www.process-one.net/en/ejabberd/downloads

In meinem Fall war das die Datei ejabberd-2.1.5-linux-x86-installer.bin.gz

Diese Datei ist jetzt zu entpacken und die Installation kann gestartet werden.

gunzip ejabberd-2.1.5-linux-x86-installer.bin.gz

./ejabberd-2.1.5-linux-x86-installer.bin

Das Setup Programm kann jetzt in einer beliebigen Sprache ausgeführt werden und ist eigentlich selbsterklärend.

Wichtig ist, dass man sich einen gescheiten Admin Benutzer anlegt mit einem vernünftigen Password ;)

Als Hostnamen habe ich den FQDN meines Servers genommen. Man kann allerdings auch einfach die Domain des Servers nehmen.

Ich habe ejabberd nach /opt/ejabberd-2.1.5 installiert.

In der weiteren Anleitung schreibe ich an Stelle des Verzeichnisses $ejabberdRoot$.

2) ejabberd konfigurieren

Die wichtigen Dinge wie Hostname werden schon vom Installer in der Konfigurataionsdatei $ejabberdRoot$/conf/ejabberd.cfg eingetragen.

Für SSL sollte man allerdings noch die notwendigen Einstellungen auskommentieren. In der Zertifikatsdatei (hier privkey_cert.pem) muss der öffentliche und private Schlüssel gespeichert sein.

{s2s_use_starttls, true}.

{s2s_certfile, "/opt/ejabberd-2.1.5/conf/privkey_cert.pem"}.

Außerdem habe ich noch den Traffic Shaper für normale Benutzer auf fast gesetzt:

{access, c2s_shaper, [{none, admin},{fast, all}]}.

Sollen sich Benutzer nicht selbst am Server registrieren können sollte man die Registrierung deaktivieren:

%% Niemand darf sich mit Client selbst registrieren

{access, register, [{deny, all}]}.

Tiefergehende Konfigurationsdetails können in der offiziellen Dokumentation nachgelesen werden.

3) Ports freigeben

Damit ejabberd von Außen erreichbar ist müssen folgende Ports freigegeben werden: 5222, 5269 (und 5280 wenn das Modul web_admin aktiviert ist)

Hier die notwendigen iptables Befehle:

#ejabberd

iptables -A INPUT -i eth0 -p tcp --dport 5222 -j ACCEPT

iptables -A INPUT -i eth0 -p tcp --dport 5223 -j ACCEPT

iptables -A INPUT -i eth0 -p tcp --dport 5269 -j ACCEPT



#ejabberd http (web admin)

iptables -A INPUT -i eth0 -p tcp --dport 5280 -j ACCEPT

4) ejabberd steuern

ejabberd kann mit dem Konsolentools ejabberdctl und status, welche sich im $ejabberdRoot$/bin Verzeichnis befindet gesteuert werden.

#startet den ejabberd Deamon

./ejabberdctl start



#stoppt den ejabberd Deamon

./ejabberdctl stop



#gibt den status der laufenden ejabberd Instanzen aus

./status

Allerdings sollte man ejabberd auf keinen Fall als root starten!

Das ist wirklich nur zum Testen der Konfiguration zu empfehlen ;)

Der bessere Weg ist das starten des Daemon’s über einen neuen Systembenutzer.

useradd -U -d $ejabberdRoot$ ejabberd -s /bin/sh

Wichtig ist, dass der Benutzer ’ejabberd’ heißt und eine Shell (/bin/sh) erhält. Sonst funktioniert das mitgelieferte Startscript nicht.

Zur Sicherheit sollte man dem User in der Datei /etc/shadow das sogenannte “no login” Flag anstelle eines Passwords setzen.

Dazu muss das ***** Zeichen in der 2. Spalte eintragen.

Das Ganze sollte dann so aussehen:

ejabberd:*:14878:0:99999:7:::

Das mitgelieferte Startscript für den Daemon befindet sich in $ejabberdRoot$/bin/ejabberd.init.

Dieses kopiert man nach /etc/init.d/ejabberd

ejabberd kann jetzt über dieses Script gestartet und gestoppt werden:

/etc/init.d/ejabberd start/stop/restart