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.


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