Posts by Jonas

Die Verantwortung der freien Preiswahl

Der Anlass

Wir haben vor einger Zeit begonnen, User, die weit unter unserer Preisempfehlung von 5€ / Monat bezahlen, darauf hinzuweisen, dass wir uns etwas mehr wünschen. Hier ein Auszug aus der Mail:

Du hast derzeit einen Wunschpreis von 1,00 € eingestellt, der deutlich unter unserem Preisvorschlag von 5,00 € monatlich liegt. Wir möchten dich daran erinnern, dass du unseren Dienst nur zu diesem Preis in Anspruch nehmen kannst, weil andere User freiwillig einen höheren als den vorgeschlagenen Preis bezahlen und dir den Account so querfinanzieren. Wir erhoffen uns davon, dass diejenigen, die es sich leisten können, andere User, die sich das nicht leisten können, mit tragen.


Über Auftragsverarbeitung

First things first: Es gibt nun einen fertigen Vertrag zur Auftragsverarbeitung, der den Segen unseres externen Datenschutzbeauftragen bekommen hat. Du findest ihn unter https://uberspace.de/dpa und wir haben alles vorbereitet, damit du ihn Anfang ab nächster Woche im Dashboard per Klick abschließen kannst. Du kannst ihn insofern bereits lesen und prüfen oder prüfen lassen, beispielsweise durch deinen Datenschutzbeauftragten, und dann nächste Woche deinen Klick setzen.

Was noch fehlt, ist die Abnahme unseres Entwurfs zur Dokumentation der technischen und organisatorischen Maßnahmen durch unseren externen Datenschutzbeauftragten - dessen Workload, wie man sich vielleicht vorstellen kann, im Rahmen allgemeiner DSGVO-Panik gerade durch die Decke geht und der wundersamerweise dennoch Zeit findet, sich jedwedes Dokuments innerhalb von 2-3 Werktagen anzunehmen. Die vorige von uns gelieferte Fassung fand bereits Zuspruch und bedurfte nur noch geringer Änderungen an der Struktur des Dokuments, so dass die letzte Abnahme nur noch eine Formalität ist.


DSGVO, wir kommen!

Die Datenschutzgrundverordnung (DSGVO), die vor knapp zwei Jahren eingeführt und europaweit ab dem 25.05.2018 anwendbar wird, hat bei uns wie auch bei vielen anderen zu Fragen und Unsicherheiten geführt. Nun sind wir aber langsam aber sicher auf der Zielgeraden, die nötigen Vorgaben fristgerecht umzusetzen. Dazu gehört neben diversen neuen Dokumentationspflichten insbesondere die Bereitstellung eines Vertrags zur Auftragsverarbeitung, der aktuell in Kooperation mit unserem externen Datenschutzbeauftragen finalisiert wird und mit dem voraussichtlich in der nächsten Woche gerechnet werden kann.


Die Sache mit den virtuellen DocumentRoots

tl;dr

  • Wir hatten uns in der Entwicklung darauf verständigt, virtuelle DocumentRoots - ein Feature von U5 und U6 - bei U7 nicht mehr als Feature anzubieten, sondern im Lauf der U7-Beta ein neues Dashboard zu releasen, mit dem es viel einfacher sein wird, mehrere Uberspaces zu verwalten, so wie wir uns das als “best practice” vorstellt haben. (Der Plan mit dem neuen Dashboard besteht natürlich weiter, und die Arbeit daran hat auch schon begonnen.)
  • Wir haben schon damit gerechnet, dass diese Entscheidung erläuterungsbedürftig werden könnte. Der Widerspruch etlicher User traf uns allerdings in größerem Umfang, mit stärkerer Enttäuschung und mit Argumenten, die wir zu bedenken hatten. Wir wollten keinen “Okay, okay, okay”-Schnellschuss machen und unsere Entscheidung einfach wieder umwerfen, aber wir haben uns mit Usern ausgetauscht und Argumente und Use Cases eingesammelt, darüber gesprochen, und am Ende haben wir beschlossen, die virtuellen DocumentRoots entgegen der ursprünglichen Planung auch auf U7 einzuführen.
  • Nach wie vor raten wir deutlich davon ab, dieses Feature zum Hosting mehrerer unterschiedlicher Projekte in einem Account zu verwenden, weil zwischen jenen Projekten dann keine Rechtetrennung besteht. Wenn Rechtetrennung wichtig ist - und das ist sie im Zweifelsfall fast immer - solltest du wie bisher dem Rat folgen, mehrere Uberspaces anzulegen. Wir werden das vereinfachen, versprochen.

Worum geht’s eigentlich?

Vom Konzept her ist ein Uberspace dazu gedacht, ein Projekt darauf zu hosten. Dafür wird /var/www/virtual/<user>/html als DocumentRoot angeboten. Schon ziemlich in der Anfangszeit trafen Fragen bei uns ein, ob man da nicht die Möglichkeit schaffen könnten, für kleinere Sachen einfach separate Verzeichnisse anzulegen, um keinen separaten Uberspace dafür anzulegen - “das lohnt doch gar nicht”. Wir waren mit Uberspace gerade erst gestartet, voller Tatendrang, ein wenig blauäugig vielleicht auch, und dachten uns: Klar, basteln wir doch schnell eine RewriteRule, und schon war das Feature geboren: User konnten ab sofort in /var/www/virtual/<user> einfach weitere Verzeichnisse ablegen, die so hießen wie Hostnamen, und schon wurden Anfragen nach jenen Hostnamen aus diesem Verzeichnis bedient (vorausgesetzt, der Hostname wurde auf den Uberspace aufgeschaltet). So weit, so gut - oder besser gesagt: So weit, so okay.


Die U7 Public Beta

Sagt Hallo zu biela, brorsen, encke, faye, finlay, halley, olbers, tempel, tuttle und wolf! Wir haben mehrere Terabyte Plattenplatz, mehrere Dutzend CPU-Kerne und mehrere hundert GB RAM springen lassen und zehn Hosting-Systeme für euch gebaut, damit nach den 50 Usern, die unsere Closed Beta testen konnten, nun alle anderen, die schon auf U7 neugierig sind, ebenfalls loslegen können.

Welche Features machen die Beta schon heute besser als U6?

  • vollautomatisches HTTPS-Handling mit Let’s Encrypt für alle Domains
  • HTTP wird grundsätzlich auf HTTPS umgeleitet
  • Diverse Security-Header werden als Default gesetzt
  • wir unterstützen nun HTTP/2
  • OCSP Stapling
  • PHP ohne Startverzögerungen (eigene PHP-FPM-Instanz pro User)
  • user.uber.space & *user*@uber.space
  • MariaDB 10.1 ohne Klimmzüge
  • insgesamt deutlich frischere Toolchain an Kommandozeilentools
  • Webserver-Logging ist nun standardmäßig komplett aus (Datensparsamkeit FTW!), kann aber auf Wunsch eingeschaltet werden und liefert dann Logs mit gekürzten IP-Adressen
  • komplett neues Handbuch auf manual.uberspace.de - aus einem Guss, auf Englisch, mobiltauglich und mit ChangeLog
  • supervisord als leistungsstärkerer daemontools-Nachfolger zum Verwalten eigener Daemons

Was ist sonst noch fertig?

  • Python 2.7, 3.4, 3.5, 3.6
  • PHP 5.6, 7.0, 7.1, 7.2
  • Perl 5.16.3
  • Lua 5.1
  • GCC 4.8 (C/C++)
  • Cronjobs
  • Subversion
  • SQLite 3
  • node.js 6, 8, 9
  • virtuelle Mailuser (vmailmgr)
  • maildrop
  • ruby
  • Adminer und phpMyAdmin
  • Webmail
  • Rspamd als Ersatz für SpamAssassin und DSPAM

Was kann die Beta noch nicht?

  • Programmiersprachen: Ruby, Erlang und node.js
  • Datenbanken: PostgreSQL, CouchDB und MongoDB
  • virtuelle Mailuser (vmailmgr)
  • Backups im direkten Userzugriff (wir machen durchaus Backups, aber der Zugriff ohne Support-Eingriff darauf fehlt noch)
  • Adminer und phpMyAdmin
  • Handbuch auf Deutsch
  • ezmlm-idx
  • maildrop
  • gitolite 3
  • Ports öffnen
  • 2-Faktor-Authentifizierung für SSH
  • Redis
  • SpamAssassin
  • Webmail

Welche Features werden wir auch nicht mehr einbauen?

Wie komme ich an einen U7-Beta-Account?

Auf https://uberspace.de/register?u7=1 bekommst du eine Checkbox angeboten, mit der einen Account auf U7 statt auf der derzeit stabilen Version U6 anlegen kannst.


WIP: Warum hat U7 so lange gedauert?

Diese Frage müssen wir uns unweigerlich stellen lassen, nachdem es nach außen vielleicht zeitweise so wirken konnte, als sei U7 unser Half Life 3 - und wir haben selbst viel zu diesem Eindruck beigetragen, durch Zeitprognosen, die im Nachhinein lächerlich daneben lagen, und auch durch den Umstand, nicht schon viel früher mit einem viel kleineren Featureset an die Öffentlichkeit zu gehen und die kontinuierliche Weiterentwicklung des Produkts damit viel sichtbarer zu machen. Diesen Schuh ziehen wir uns an, und das machen wir künftig anders - soll heißen, besser.


Ausfall von aries, columba, octans und sagitta

Heute morgen gegen halb acht begann dietrich, einer unserer KVM-Wirte, folgende Meldungen nach /var/log/messages zu spucken:

Mar  2 07:28:22 dietrich kernel: mce: [Hardware Error]: Machine check events logged
Mar  2 07:28:23 dietrich kernel: EDAC MC1: 1 CE memory read error on CPU_SrcID#1_Ha#0_Chan#0_DIMM#0 (channel:0 slot:0 page:0x186f358 offset:0x500 grain:32 syndrome:0x0 -  area:DRAM err_code: 0001:0090 socket:1 ha:0 channel_mask:1 rank:1)
Mar  2 07:29:35 dietrich kernel: mce: [Hardware Error]: Machine check events logged
Mar  2 07:29:35 dietrich kernel: EDAC MC1: 1 CE memory read error on CPU_SrcID#1_Ha#0_Chan#0_DIMM#0 (channel:0 slot:0 page:0x186f358 offset:0x500 grain:32 syndrome:0x0 -  area:DRAM err_code: 0001:0090 socket:1 ha:0 channel_mask:1 rank:1)
Mar  2 07:30:45 dietrich kernel: EDAC MC1: 1 CE memory read error on CPU_SrcID#1_Ha#0_Chan#0_DIMM#0 (channel:0 slot:0 page:0x186f358 offset:0x500 grain:32 syndrome:0x0 -  area:DRAM err_code:0001:0090 socket:1 ha:0 channel_mask:1 rank:1)
Mar  2 07:31:25 dietrich kernel: mce: [Hardware Error]: Machine check events logged
Mar  2 07:31:26 dietrich kernel: EDAC MC1: 1 CE memory read error on CPU_SrcID#1_Ha#0_Chan#0_DIMM#0 (channel:0 slot:0 page:0x186f358 offset:0x500 grain:32 syndrome:0x0 -  area:DRAM err_code:0001:0090 socket:1 ha:0 channel_mask:1 rank:1)
Mar  2 07:31:32 dietrich kernel: EDAC MC1: 1 CE memory read error on CPU_SrcID#1_Ha#0_Chan#0_DIMM#0 (channel:0 slot:0 page:0x186f358 offset:0x500 grain:32 syndrome:0x0 -  area:DRAM err_code:0001:0090 socket:1 ha:0 channel_mask:1 rank:1)

Was schon nicht ganz so schön aussah, mündete dann kurz darauf in ein komplettes Einfrieren der Maschine, und damit auch der vier darauf laufenden Gäste aries, columba, octans und sagitta.


Straßenkampf

tl;dr: Wir stehen am Standort rh-tec (95.143.172.0/24) so massiv unter Beschuss, dass derzeit ein Nullrouting des kompletten IPv4-Netzes den Stand der Dinge darstellt - es ist also aktuell nichts mehr per IPv4 erreichbar. Die Erreichbarkeit per IPv6 ist derzeit weitestgehend unbeeinträchtigt. Gestern wurde zudem die IP von uberspace.de selbst attackiert; das scheint derzeit aber weitestgehend im Griff. Update: Seit ca. 17:35 Uhr kriegen wir wieder Traffic durch; ob die Angreifer nur pausieren oder die Angriffe damit vorbei sind, ist aber nicht einschätzbar. Update 2: Ab ca. 22:45 Uhr gab es nun auch im Netz von uvensys hohen Paketverlust; während die dortige Technikerbereitschaft daran arbeitet, werden offenbar auch auf rh-tec auch wieder Attacken gefahren. Update 3: Seit 22.8. ca. 9:45 Uhr werden wieder IPs in unserem Netz bei Plus.line attackiert; das betrifft nur wenige User-Hosts, aber uberspace.de selbst.


QR-Codes FTW

Der Verwendungszweck von Überweisungen ist ein täglicher Quell der Überraschung: Entgegen unserer Bitte, einfach nur “Uberspace Username” in den Verwendungszweck zu packen, erhalten wir täglich ein Bündel Überweisungen mit so schönen Angaben wie “Für meine Internetseite”, “für 6 Monate, vielen Dank”, “Verwendungszweck” (!) oder allen möglichen Schreibweisen, die teilweise plausibel auf kreative Handschrifterkennung der Bank hinweisen. In erster Linie ist das zum Nachteil des Accountinhabers, denn während Buchungen, deren Verwendungszweck dem vorgegebenen Schema entspricht, automatisiert eingebucht werden, landet alles andere in einer manuellen Nachkontrolle, wird also ggf. erst etwas später gutgeschrieben oder landet im schlechtesten Fall in den offenen Buchungen, wenn wir keinen passenden Account ermitteln können.


Ein paar Details zu aktuellen Störungen

In der letzten und der laufenden Woche gab es bei uns mehrere Ausfälle, bei denen jeweils KVM-Wirte, auf denen wir in der Regel drei bis vier Uberspace-Hosts betreiben, spontan weggebrochen sind. Vorgestern gab es dann noch einen vollkommen bizarren Fuckup auf gleich sieben KVM-Wirten gleichzeitig, der über Stunden zu sehr langsamem I/O auf den betroffenen Systemen geführt hat und dabei nicht nur die direkt darauf laufenden Uberspace-Hosts beeinträchtigt hat, sondern auch die der Failover-Partner nebendran.