Dies ist die archivierte Version des Blogs vom 05.01.2017. Aktuelle Beiträge findest du unter thomas-leister.de
 

Server-Notfallprogramm für unterwegs

… oder: Krisenmanagement für arme Admins. Für ganz, ganz Arme.

Am Mittwoch geht es für mich auf zum diesjährigen Summer Breeze Metal Open Air in Dinkelsbühl. Das bedeutet leider nicht nur Genuss für meine Ohren, sondern auch Stress: Der Admin in mir macht sich Gedanken, ob denn auch alle Server ohne Störungen über die Festivalzeit kommen werden. Unterwegs habe ich nur mein Smartphone mit einer wackeligen Mobilfunkverbindung. Darauf ist ein SSH-Client installiert, der mir Zugriff auf meine Server erlaubt. Und weil mir alleine der Gedanke daran schon weh tut, root-Login darauf zu ermöglichen, kann sich das Smartphone nur als normaler Benutzer zum Server verbinden. Via Publickey-Auth, versteht sich.

Nun stehe ich allerdings vor dem Problem, dass ja ein normaler Benutzer keine Dienste neu starten kann, weil ihm die Rechte dazu fehlen. Möglicherweise werde ich beispielsweise meinen XMPP-Server einmal neu starten müssen, weil die zuletzt getroffenen Maßnahmen nicht gewirkt haben und er wieder einmal keine Logins mehr zulässt. Ein „systemctl restart prosody“ ist mit diesem Account nicht möglich. Nun könnte man mit sudo arbeiten und die Ausführung des Kommandos speziell für diesen User erlauben. Meine Debian-Server kommen allerdings ohne sudo und das soll auch so bleiben. Also kein sudo für mich.

Weiterlesen ›


mod_userstats für Prosody zeigt aktuelle Nutzerzahlen

Für den XMPP-Server Prosody habe ich gestern ein kleines Modul „mod_userstats“ entwickelt, welches Zahlen zu den aktuell registrierten Nutzern und den gerade angemeldeten Nutzern zur Verfügung stellen kann. Die Nutzerzahlen können über XMPP Adhoc-Kommandos und eine HTTP JSON-Schnittstelle abgerufen werden. Vor allem über letztere kann man die aktuellen Zahlen sehr einfach auf einer Website darstellen.

Mit dem Modul ist es mir möglich, nicht nur die Zahl der registrierten Nutzer, sondern endlich auch die Zahl der eingeloggten User unter https://trashserver.net/xmpp/userstats/ anzuzeigen.

Wer auch eine solche Übersicht basteln will, kann sich das Modul auf GitHub herunterladen: https://github.com/ThomasLeister/prosody_mod_userstats. Sollte das Plugin bei mehreren Usern gut funktionieren, werde ich es in das offizielle Prosody Modul-Repository aufnehmen lassen, sodass es vielleicht eine größere Verbreitung erreichen wird. Rückmeldung dazu wäre hilfreich.


Prosody: Alte http_upload -Dateien entfernen

Mit der Zeit sammeln sich in /var/lib/prosody/http_upload jede Menge hochgeladener Dateien an. Bei mir wurde mittlerweile die Gigabyte-Grenze erreicht, sodass ich mich dazu entschlossen habe, alte Uploads meiner XMPP-User zu entfernen. Uploads, die älter als 90 Tage sind, werden sicherlich nicht mehr gebraucht (da sie ohnehin schon auf die Endgeräte heruntergeladen sein sollten). Die folgende Befehlskette räumt auf:

find /var/lib/prosody/http_upload/* -maxdepth 0 -type d -mtime +90 | xargs rm -rf

Die find-Variante mit Pipe und xarg arbeitet übrigens effizienter als die Variante mit -exec am Ende.


Conversations: Compliance Ranking der XMPP-Server

Daniel Gultsch hat mich heute auf sein XMPP-Serverranking aufmerksam gemacht, welches anzeigt, welche XMPP-Erweiterungen auf den jeweiligen Servern zur Verfügung stehen. Speziell geht es um die Erweiterungen, die die Android-App Conversations nutzt. Je grüner, desto besser die Kompatibilität mit der App. Meinen trashserver.net habe ich gleich mal an die Spitze befördert  ;-)

Conversations Compliance Ranking: https://gultsch.de/compliance_ranked.html

Mein trashserver.net an der Spitze ;-)

 


OMEMO für Gajim unter Fedora Linux

Schon seit längerem ist im Gajim Pluginverzeichnis eine Erweiterung verfügbar, die verspricht, Gajim OMEMO-kompatibel zu machen. Die Installation hat bei mir aber nicht auf Anhieb funktioniert, deshalb beschreibe ich kurz, wie ich es doch noch zum Laufen bekommen habe.

Das Plugin erfordert das Python-Axolotl-Modul, welches via pip installiert wird. Vor der Installation werden allerdings noch einige Abhängigkeiten benötigt, welche auf meinem System noch nicht installiert waren:

sudo dnf install gcc redhat-rpm-config python-devel

Pythonmodul „Axolotl“ installieren:

sudo pip install python-axolotl

Nach der Installation und einem anschließenden Neustart von Gajim wollte mein XMPP-Client allerdings nicht mehr starten und verweigerte den Dienst. Bei einem Start über die Kommandozeile konnte ich folgende Fehlermeldung auslesen:

AttributeError: 'module' object has no attribute '_vendor'

Diesen Fehler konnte ich durch ein Update von pip und dem Modul protobuf beheben:

sudo pip install --upgrade pip protobuf

Gajim startete jetzt zwar wieder, aber das OMEMO-Plugin konnte in den Einstellungen nicht aktiviert werden. Es stellte sich heraus, dass die Versionen der installierten Module „protobuf“ und „python-axolotl“ zu neu waren und das OMEMO-Plugin nur mit älteren Versionen funktioniert. Also habe ich von beiden Modulen eine ältere Version installiert:

sudo pip install protobuf==2.6.1 python-axolotl==0.1.35

Jetzt konnte ich das OMEMO-Plugin in den Gajim-Einstellungen aktivieren und nutzen.


Wie finanziert sich eigentlich der „Wire“ Messenger?

Heute morgen bin ich erneut auf den Messenger „Wire“ gestoßen, der unter anderem mit End-to-End Verschlüsselung und dem Verzicht auf Werbung beworben wird. Datenschutz sei den Betreibern wichtig etc, etc. Ihr kennt das ja ;-) Gut möglich, dass die Betreiber tatsächlich Wert darauf legen, einen möglichst Datenschutzfreundlichen Messenger anzubieten, der einfach zu bedienen ist. Vielleicht will man ja auch etwas vom Threema-Kuchen. Nun ist es aber so, dass Wire damit keinesfalls alleine dasteht und die Konkurrenz groß ist. Wie will sich so ein junger Messenger durchsetzen? Und vor allem: Wie will man Infrastruktur und Entwicklung finanzieren, wenn die App kostenlos zu haben ist und noch keinerlei kostenlose Premium-Features hat? Diese Frage habe ich mir gestellt und habe deshalb an den Wire-Support geschrieben.

Die Antwort via E-Mail kam schneller, als ich erwartet hatte – war aber in etwa so schwammig, wie ich sie befürchtet hatte. In wenigen Sätzen wurde in etwa das erklärt:

  • Aktuell wird der Betrieb durch Investoren finanziert, darunter der Skype-Mitgründer Janus Friis
  • Man wisse, dass der Weg lang und hart sei, aber man sei darauf eingestellt
  • Bevor es richtig zur Sache geht, will man erst einmal User sammeln und das Netz erproben
  • Für später sind kostenpflichtige Premium-Features geplant, an denen aber aktuell noch nicht gearbeitet wird

Also der Klassiker: Erst mal Brot und Spiele, und dann sehen, wie viel Geld man aus dem Laden pressen kann ;-) Ähnlich war es ja mit Skype: Nach der Übernahme durch Microsoft wurden Features eingeschränkt und Werbung verstärkt. Auch der Musik-Streamingdienst „Simfy“ ist mir noch im Gedächtnis geblieben: Anfangs gab es fast alle Titel in Standardqualität kostenlos, danach immer weniger Titel, bis man mit einem kostenlosen Account schließlich nur noch 30-Sekunden-Schnipsel hören konnte. Simfy ging dann letztendlich auch ziemlich schnell den Bach runter …

Vermutlich wird es mit Wire ähnlich laufen: Zuerst werden User geködert, danach Features beschnitten, und dann sieht man zu, noch möglichst viel Geld mit Wechsel-resistenten Usern zu machen, bevor das Unternehmen in der Versenkung verschwindet.

Was kann man also abschließend sagen? Es macht meiner Meinung nach keinen Sinn, sich einem Messenger anzuschließen, der Anfangs komplett ohne stabiles Finanzierungsmodell dasteht und sich noch dazu in einer erbarmungslosen Konkurrenzsituation befindet. Am Ende wollen die Investoren Geld sehen. Woher das kommt, ist doch egal. Da wirft man dann schon auch mal die Prinzipien über Bord, die man sich zu Beginn angeeignet hat: Werbefreiheit, Sicherheit und Datenschutz.

Nehmt lieber was unabhängiges: XMPP-Server, betrieben von tausenden Freiwilligen, die das nicht für Investoren tun.


Prosody XMPP Server unter Ubuntu Server 14.04 installieren

Prosody ist ein inzwischen weit verbreiteter, moderner und meinen Erfahrungen nach zuverlässiger XMPP-Server, der durch zahlreiche Module erweitert werden kann. Geschrieben ist Prosody in der Skriptsprache Lua. Zur Installation habe ich vor 3 Jahren schon einmal eine Anleitung geschrieben. Dieser Beitrag soll die etwas veraltete Version ersetzen.

Weiterlesen ›


Prosody Downgrade von 0.10 Nightly auf 0.9.10 Stable

Bis gestern habe ich meinen trashserver.net XMPP Server unter Prosody Version 0.10 (Nightly) laufen lassen, um einige neue Module nutzen zu können, die zu früheren Zeitpunkten nur für die Nightly-Version verfügbar waren. Alle von mir verwendeten Module gibt es mittlerweile auch für die stabile Prosody Version 0.9.10, sodass ich ein Downgrade durchführen wollte, um von der stabileren Version (und weniger Updates!) profitieren zu können. Letzte Woche hatte ich bereits einen Versuch gewagt, auf die stabile Version umzusteigen. Dabei kam es jedoch zu Problemen mit der UTF-8 Codierung der Datenbank.

Weiterlesen ›