XMPP_logo.svg

Die fehlende Vielfalt und die kritische Datenschutzsituation freier Messenger wie WhatsApp haben mich bewogen, nach Alternativen Ausschau zu halten. Früher haben wir den Kampf schon einmal mit ICQ ausfechten müssen - und mit dem Siegeszug von XMPP und Jabber gewonnen. Nachdem sich Google und Facebook von diesem Standard - zumindest in öffentlichen Schnittstellen - verabschiedet haben oder verabschieden werden, ist es wieder einmal an der  Zeit, das Breitschwert der digitalen Emanzipation aus dem Rucksack zu holen.

Nun wiederholt sich die Geschichte also im Mobilbereich. Als Jabber-User der frühen Stunde bin ich auf die Idee gekommen, einen eigenen Jabber-Server aufzusetzen. Eigentlich ist es ja ein XMPP-Server, aber das hört sich irgendwie zu technisch an.

prosody

Nach einer kurzen Recherche unter verschiedenen Jabber-Servern fiel die Wahl auf die Software Prosody, die nun auch auf meinem Server läuft. Eine Liste mit öffentlichen Servern verrät, welche Software häufig zum Einsatz kommt und ermöglicht eine erste Einschätzung. Prosody ist leicht zu konfigurieren und ressourcenschonend im Betrieb. Wer zudem in die Programmierung mit lua einsteigen möchte, findet mit Prosody ein interessantes Projekt. Andere Server wie ejabberd habe ich nicht getestet und kann sie daher weder empfehlen noch von ihnen abraten. Ihr könnt mich nun unter der JabberID (JID) marco@jabber.bakera.de erreichen - kontaktiert mich mal, wenn ihr eure eigene Konfiguration testen wollt.

Kommen wir nun zur Installation und Konfiguration des Servers. Prosody ist mit apt-get install prosody schnell auf einem Debian-System installiert. Dann kann im Ordner /etc/prosody die Konfiguration erfolgen. Eine allgemeine Konfigurationsdatei liegt in /etc/prosody, die Konfigurationsdateien für einen oder mehrere Hosts liegen in /etc/prosody/conf.avail. Aktive Konfigurationen werden aus /etc/prosody/conf.d verlinkt und können so bequem aktiviert und deaktiviert werden.

Der Server muss sich mit einem Zertifikat ausweisen, das jedoch leicht mit prosodyctl cert generate jabber.bakera.de generiert werden kann. Es wird ein selbst signiertes Zertifikat erstellt. Manche Clients meckern da ein wenig herum, weil es nicht von einer "ordentlichen" CA unterschrieben wurde. Meist muss man dies jedoch nur beim ersten Kontakt mit dem Server im Client bestätigen. Da ich der einzige Nutzer auf dem Jabber-Server bin, vertraue ich mir natürlich.

Damit der Server von Außen erreichbar ist, habe ich eine neue Subdomain jabber.bakera.de im DNS eingetragen und in meiner Fritzbox die Ports 5222 und 5269 auf meinen Server weitergeleitet. Port 5222 vermittelt die Kommunikation der Clients mit dem Server (c2s - client to server), Port 5269 realisiert die Kommunikation zwischen verschiedenen Jabber-Servern (s2s - server to server).

Einen ersten Hinweis darauf, ob alles korrekt läuft, liefert ein Test von xmpp.net - bringt bei eigenen Versuchen etwas Geduld mit, da der Test einige Minuten dauern kann.

Damit ist die Konfiguration auch schon fertig. Die einzelnen Module von prosody können jetzt noch separat konfiguriert werden. Die Dokumentation auf der Seite von prosody hilft hierbei weiter.

Pidgin-chatsecure

Nachdem der Server nun steht, geht es an die Clients, die sich mit ihm verbinden sollen. Dafür habe ich auf dem Desktop pidgin und auf meinem Handy chatsecure installiert. Pidgin kenne ich seit vielen Jahren. Es läuft unter Windows, Linux und Mac OS, hat viele Plugins und ist trotzdem nicht überladen. Auf dem Handy teste ich chatsecure, das eine einfache Bedienung verspricht und vom guardianproject unterstützt wird. Wer keinen zusätzlichen Client installieren möchte und sowieso schon Thunderbird installiert hat, kann auch diesen dafür verwenden. Leider gibt es derzeit (Stand Mai 2015) keine Unterstützung für eine Verschlüsselung in Thunderbird Chat, obwohl eine Anfrage dafür seit mehreren Jahren diskutiert wird.

Nun steht (m)einer freien und sicheren Kommunikation nichts mehr im Wege.


Funktionen Studium git hardware Comic importiert audio dtp ZDF Linux HP35s Spiele kunst hacking Latex ccc workshop JavaScript bloggen ldl Bilder rs232 admin lernen debian cloud ctf bildung das-labor Commandline xmpp video chatgpt Linkliste serielle Schnittstelle GPIO server Spaß Smarthome Konferenz IoT esp8266 docker Tools raspberrypi Datenbank Tipp Clonezilla software Newsgroup ldlmooc buch podcast mooc Tafelbild badge Film python NNTP Geschichten 3dDruck Termin SciFi ITA sdr programmierung heise c't bio Windows screencast Wissenschaft game-engine gamejam Taschenrechner Sketchnotes Sport Informatik RSS TV Text Chat Archiv Second Life 35c3 ubuntu 34c3 Gesellschaft e-mail Arduino Dortmund fun wiki Kino Psychologie Usenet INN Twitter pdf Mathe