Chatserver hinter Fritzbox installieren

Jabber Server installieren

Als Jabber Server hab ich mir Prosody ausgesucht, da er ohne Java auskommt und leicht zu konfigurieren ist. Er ist in den meisten Debian basierten Distributionen ab Debian Jessie in Version 0.9.7 enthalten. D.h. man kann ihn auf dem Raspi, Cubie oder ähnlichen Minicomputern mit

apt-get install prosody

einfach installieren. Die Systemanforderungen sind relativ niedrig.

Fritzbox

In der Fritzbox muss ein Portweiterleitung auf den Minicomputer eingerichtet werden für Port 5222 und 5269.

MyFritz.net

In der Fritzbox gibt es den Service, sie von aussen erreichbar zu machen. Dieser nennt sich MyFritz.net, die Einrichtung ist unter http://www.meintechblog.de/2012/02/myfritz-dyndns-alternative-fuer-die-fritzbox. Die dort vergebene Url kann direkt als Url für Jabber verwendet werden. Die Fernwartungsdienste auf der Fritzbox müssen/sollten nicht eingeschaltet werden.

Eigene Domain

Falls man statt der relativ unleserlichen MyFritz-Url eine schöne eigene Url nutzen möchte, geht auch das. Das Vorgehen ist auf https://florianjacob.de/dyndns-mit-eigener-domain-auf-die-fritzbox-de.html beschrieben. Beim DNS Anbieter müssen für Jabber zusätzliche SRV Weiterleitungen auf die eigene Url eingerichtet werden. Die Einträge sind auf https://kingant.net/check_xmpp_dns/ beschrieben (example.com bitte durch eigene Url ersetzen).

Konfiguration

Die Konfiguration ist relativ einfach und erfolgt in der Datei /etc/prosody/prosody.cfg.lua. Als Servername ersetzt ihr "example.com" durch eure eigene Url, insbesondere bei VirtualHost. Ihr könnt auch euer Letsencrypt-Zertifikat (key="/directory/privkey.pem" und certificate="/directory/fullchain.pem") oder ein selbst erzeugtes Zertifikat zur Verschlüsselung in der Config hinterlegen. Dafür müsst ihr dem User "prosody" allerdings Leserechte auf die Key- und Zertifikatsdatei einräumen. Ob man das braucht, muss jeder selbst entscheiden. Viele Clients bieten mit OTR oder OMEMO zusätzliche Ende-zu-Ende-Verschlüssung, die sowieso genutzt werden sollte. Die standardmässig installierten Module bieten spezielle Features (welche als XEP standardisiert sind) und können einzeln ab- und angeschaltet werden. Es gibt weitere "experimentelle" Module, welche mit wget von https://hg.prosody.im/prosody-modules/archive/tip.tar.gz auf den Server geladen werden können. Die gezippte Datei sollte in ein passendes Verzeichnis entpackt werden, auf das der Nutzer "prosody" Zugriff hat. Zu den experimentellen Modulen zählen z.B. mod_smacks und mod_cloud_notify. Diese Erweiterung stellt sicher, dass nach Netzwerk-Unterbrechungen die Nachrichten später zugestellt werden. Dies ist z.B. für iOS Clients relevant, welche nach 10 Minuten im Hintergrund automatisch beendet werden. Nach einem Neustart solltet ihr die Logfiles (/var/log/prosody/) überprüfen, ob der Prosody Server ohne Probleme gestartet ist. Ihr solltet euch jetzt mit einem Client verbinden können. Bei Problemen könnt ihr mit dem Script auf https://kingant.net/check_xmpp_dns/ prüfen, ob der Server überhaupt von aussen erreichbar ist.