Gehaxelts Blog

IT-Security & Hacking

Jabberserver auf dem Uberspace einrichten

Es hat mich die ganze gestrige Nacht und einen kleinen Haufen Nerven gekostet, unter den vielen nicht (mehr) lauffähigen Jabberservern, welche im Internet kursieren, einen zu finden, welchen man auf dem Uberspace zum Laufen bekommt. Dabei handelt es sich um den ejabberd-Jabber-Server.

Wie man sich diesen Installiert, möchte ich nun zeigen, auch wenn manche Schritte sicherlich “schöner” ausgeführt werden können. Auf lauffähige Verbesserungen würde ich mich sehr freuen.

Die Installation 

Zunächst legen wir einen neuen Ordner an und wechseln in diesen rein, nachdem wir uns auf der Shell eingeloggt haben:

mkdir jabber
cd jabber

Nun müssen wir den Sourcecode herunterladen, entpacken und den Ordner umbenennen, dass klappt mit folgenden Befehlen:

wget "https://github.com/processone/ejabberd/zipball/2.1.x" -O ./ejabberd.zip
unzip ejabberd.zip
mv processone-ejabberd-453e249 ejabberd

Nun haben wir einen neuen Ordner namens ejabberd. Wir können nun dort in den Unterordner /src wechseln und anfangen diesen zu configurieren und zu kompilieren:

cd ejabberd/src/
./configure --prefix=/home/$USER/jabber/ejabberd/ && make && make install

Nun fängt der Server an, die entsprechenden Quelldateien zu konfigurieren und anschließend zu kompilieren.

Das Präfix ist wichtig, weil wir keine Schreibrechte auf “globale” Ordner wie /etc/ haben, und somit die Installation scheitern würde.

Nach einem Wechsel in den übergeordneten Ordner, ist die Installation soweit komplett.

cd ../

Die Konfiguration

Nun geht es nur noch darum den Jabber-Server zu konfigurieren. Dazu kopiert ihr zunächst die Beispielkonfigurationsdatei in den folgenden Ordner, wobei ich davon ausgehe, dass wir uns noch im /home/$USER/jabber/ejabberd- Ordner befinden.

cp etc/ejabberd/ejabberd.cfg lib/ejabberd/ebin/ejabberd.cfg

Wichtig ist, dass ihr bei den Ordnerangaben kein führenden Slash angebt, denn sonst ist es ein völlig neuer Pfad, welcher zu Fehlern führt.

Danach kopieren wir noch ein paar Dateien, in den ebin-Ordner, welche wir für einen korrekten Startvorgang brauchen:

cp -r lib/ejabberd/priv/lib/* lib/ejabberd/ebin/

Nun erzeugen wir uns ein SSL-Zertifikat, mit dem später der Traffic über den Jabber-Server verschlüsselt wird, mit dem folgenden Befehl:

openssl req \
  -x509 -nodes -days 365 \
  -newkey rsa:1024 -keyout mycert.pem -out mycert.pem

Nun müsst ihr einige Fragen beantworten, welche ihr möglichst wahrheitsgemäß beantworten solltet, damit später die Nutzer, welche das Zertifikat akzeptieren, wissen, dass das Zertifikat von dir stammt.

Wichtig ist außerdem, dass ihr bei der Frage nach dem Hostnamen, den Hostnamen des Servers von Uberspace angebt, also “hydra.uberspace.de” als Beispiel.

Nachdem der Vorgang abgeschlossen ist, sollte sich eine mycert.pem Datei in eurem Ordner befinden:

 ls | grep mycert.pem

Die Konfigurationsdatei

Nun geht es an das Eingemacht, nämlich die Konfigurationsdatei von ejabberd. Diese Editiert ihr mit dem folgenden Befehl:

nano lib/ejabberd/ebin/ejabberd.cfg

Ich habe hier mal meine Beispielkonfiguration erstellt:

Ihr müsst dazu die oben mit %%!! markierten Kommentare beachten und gegebenenfalls die Daten verändern. Nach dem Speichern der Datei müsst ihr in den ebin Ordner wechseln:

cd lib/ejabberd/ebin/

Dort könnt ihr dann euren Jabber-Server starten:

erl -pa lib/ejabberd/ebin -name ejabberd -s ejabberd

Nun sollte eurer Jabber-Server gestartet werden und eine ähnliche Erfolgsmeldung erscheinen:

=PROGRESS REPORT==== 26-Apr-2012::21:11:28 ===
application: ejabberd
started_at: ‘ejabberd@hydra.uberspace.de’

Solange ihr nun die Ausführung mit einem doppelten Strg+C nicht abbrecht, läuft euer Server.

Dauerhaft laufen lassen

Möchte man nun den Jabber-Server dauerhaft im Hintergrund laufen lassen, kann man einerseits auf die daemon-tools von Uberspace zurückgreifen, oder die kleine Anwendung “screen” nutzen.

Dazu erstellen wir einen weiteren virtuellen Bildschirm

screen -S jabber

Und werden sofort in eine neue Shell eingeloggt und führen nun den Startvorgang, wie oben beschrieben aus.

Danach können wir den virtuellen Bildschirm mit der Tastefolge Strg+ A + D wieder verlassen und der Befehl wird weiterhin im Hintergrund ausgeführt.

Möchte man wieder in den Screen reinwechseln, geht das über folgenden Befehl:

screen -r jabber

Portfreischaltung

Wie auch bei dem IRC Server muss man bei Uberspace über einen kurzen Tweet oder per Email um die Freischaltung eines Ports in der Firewall bitten.

Dieser Port sollte dann auch den in den Konfiguration angegeben Port entsprechen. Die Portnummer sollte dazu möglichst zufällig sein, denn diese kann nur von einem Programm gleichzeitig genutzt werden, und dass gilt für alle Benutzer auf einem Server.

Ich hoffe, der Beitrag wird euch ein wenig helfen.

Gruß

gehaxelt

Texttutorials

« Htop - ein etwas anderes top Von Wordpress zu Octopress »