Inhalte
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}