XMPP Server – OpenFire auf einem Debian installieren

Will man ein eigenen XMPP Basiertes Nachrichten System installieren, so kommt man nicht von Openfire weg. Openfire ist ein einfaches, nützliches XMPP Tool, mit einer webbasiertem Administrationsoberfläche. Im Folgendem Kapitel werde ich euch die Installation und Einrichtung von OpenFire zeigen.

Los gehts’s.

Betriebssystem Updaten:

apt-get update && apt-get upgrade -y

Vorrausetzungen

  • Java 1.8 oder Alternativ OpenJDK
  • ggf. Letsencrypt für SSL Zertifikate

Installation auf Debian Buster

Zunächst brauchen wir ein Java Interpreter. Entweder wir installieren die Alternative OpenJDK oder wir nehmen das originale Java von Oracle. Dazu habe ich schonmal in einem führeren Artikel beschrieben, wie man Java auf einem Debian installiert. Wir benutzen hier im Tutorial die einfache Variante OpenJDK

OpenJDK

apt-get install default-jre

Nun überprüfen wir die java Installation

java -version

Übrigens kann man dies auch vor der Instalaltion eingeben, um zu Überprüfen, ob schon Java installiert ist.

Output:

openjdk version "11.0.5" 2019-10-15
OpenJDK Runtime Environment (build 11.0.5+10-post-Debian-1deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.5+10-post-Debian-1deb10u1, mixed mode, sharing)

Hat man mehrere Java Versionen installiert, so kann man dies mit update-alternative auswählen, welche Version nun für den Befehl java verwendent werden soll.

sudo update-alternatives --config java

OpenFire downloaden

Da Openfire nicht in der Paketquelle vorhanden ist, muss man über GiHub, das Paket selber holen.

Link: https://github.com/igniterealtime/Openfire/releases/

wget https://github.com/igniterealtime/Openfire/releases/download/v4.4.4/openfire_4.4.4_all.deb

Sobald das Paket gedownloadet ist, installieren wir nun OpenFire mit dpkg.

dpkg -i openfire_4.4.4_all.deb

Nach der Installation gehen wir nun über auf die Webkonsole. Diese können wir wie folgt aufrufen:

http://<IP>:9090
oder mit SSL
https://<IP>:9091

Wir folgen den Anweisungen und schließen dann die Instllation ab.

Zum schluss erstellen wir unter „Benutzer/Gruppen“ den ersten Benutzer.

OpenFire konfigurieren

Unter Server -> Server Manager oder Server Settings sollte man nun den Server nach den eigenen Bedürfnissen einstellen.

SSL Zertifikat

Auch das selbstsegnierte SSL Zertifikat solle man wenn möglichst ersetzen, durch ein eigenes SSl Zertifikat. Eine günstige und schöne Lösung hierfür wäre z.B. Letsencrypt.

Mehr Infos hier.

Vorrausetzungen

apt-get install certbot openssl

Letsencrypt

Nun erstellen wir ein SSl Zertifikat mithilfe von Certbot

certbot certonly --standalone -d domain.de -d www.domain.de

Nachdem wir einige Fragen mit einem Y(es) beantwortet haben, wird das Zertifikat erstellt. Damit Openfire, das Zertifikat auch annehmen kann, müssen wir nun das Zertifikat nach dem Standard PKCS12 umwandeln. Dies machen wir mit dem Programm openssl

openssl pkcs12 -export -in /etc/letsencrypt/live/domain.de/fullchain.pem -inkey /etc/letsencrypt/live/domain.de/privkey.pem -out /etc/letsencrypt/live/domain.de/fullchain.pkcs12 -name domain.de -passout pass:changeit

Danach löschen wir den selbstsegnierten SSL Zertifikat aus dem Truststore von OpenFire

 keytool -delete -alias domain.de_rsa -storepass changeit -keystore /etc/openfire/security/keystore

und fügen unser neues Zertifikat ein

keytool -importkeystore -deststorepass changeit -destkeypass changeit -destkeystore /etc/openfire/security/keystore -srckeystore /etc/letsencrypt/live/domain.de/fullchain.pkcs12 -srcstoretype PKCS12 -deststoretype pkcs12 -srcstorepass changeit -alias domain.de

Haben wir das erfolgreich getan, können wir den Service neu starten.

service openfire restart

Fertig. nun können wir die Adminoberfläche mit dem Port 9091 aufrufen.

Damit das Zertifikat auch in Zukunft immerwieder aktualisiert wird, erstellen wir nun einen Cron, das uns die Aufgabe selbsttändig erledigt.


crontab -e

0 0 1 * * /root/renew-ssl.sh >> /var/log/renew-ssl-openfire.log 2>&1

Hier der Inhalt des Scriptes:

#!/bin/bash
######################################################################
#
# Bash Script for renew SSL Certificate for Openfire
#
######################################################################
#
#Renew the SSL Certificate
#
certbot renew

#
#Convert the SSL Certificate to PKCS12
#
openssl pkcs12 -export -in /etc/letsencrypt/live/domain.de/fullchain.pem -inkey /etc/letsencrypt/live/domain.de/privkey.pem -out /etc/letsencrypt/live/domain.de/fullchain.pkcs12 -name domain.de -passout pass:changeit

#
#Delete the old SSL Certificate
#
keytool -delete -alias domain.de -storepass changeit -keystore /etc/openfire/security/keystore

#
#Import the new SSl Certificate
#
keytool -importkeystore -deststorepass changeit -destkeypass changeit -destkeystore /etc/openfire/security/keystore -srckeystore /etc/letsencrypt/live/domain.de/fullchain.pkcs12 -srcstoretype PKCS12 -deststoretype pkcs12 -srcstorepass changeit -alias domain.de

#
#Openfire Service restart
#
service openfire restart

Script auch auf Github (Siehe Link unten)

Selbstregistrierung abschalten

Auch die Selbstregistrierung sollte man wenn möglich und belieben gänzlich abschalten bzw. deaktivieren. Diese Einstellung findet man unter Server -> Server Settings -> Registration & Login -> Inband Account Registration

Dort sollte man die Funktion auf Disabled stellen.

Starten/Stoppen

/etc/init.d/openfire {start|stop|restart|status|condrestart|reload}
Oder
service openfire {start|stop|restart|status|condrestart|reload}

Weiterführende Links

Wie hilfreich war dieser Beitrag?

Klicke auf die Sterne um zu bewerten!

Durchschnittliche Bewertung 5 / 5. Anzahl Bewertungen: 1

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

Triopsi
Triopsi

Hi, mein Name ist Daniel R. Baumann. Ich bin seit 2007 Webseitenentwickler und entwickle bzw. administriere verschiedene Webprojekte. Ich berichte hier alle wichtigen News, Tipps und Tricks rund um das Thema IT.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.