Posts by Jonas

pear.php.net gehackt - was nun?

Ein Hinweis von dictvm auf einen Blogpost bei The Hacker News hat uns aufhorchen lassen:

Beware! If you have downloaded PHP PEAR package manager from its official website in past 6 months, we are sorry to say that your server might have been compromised.

tl;dr: Der auf pear.php.net bereitgestellte Installer go-pear.phar ist seit rund 6 Monaten kompromittiert. Wenn du den von uns bereitgestellten PEAR-Paketmanager verwendet hast, gibt es - nach derzeitigem Kenntnisstand - insofern keinen Anlass zur Sorge. Solltest du in den letzten 6 Monaten PEAR selbst über go-pear.phar installiert haben, hast du vermutlich eine kompromittierte Version erwischt und solltest jene dringend gegen eine neue, saubere Version austauschen.


Behind the scenes: Mo

In loser Folge stellen wir euch die Leute vor, die Uberspace für euch machen. Heute: Mo, der eigentlich Moritz heißt, aber nicht mit dem anderen Moritz im Team zu verwechseln ist. Mo kritzelt aufregende Grafiken auf seinem Tablet und sorgt dafür, dass Uberspace nicht nur praktisch ist, sondern auch immer schöner aussieht. Jonas hat ihn interviewt.

Wo treibst du dich denn gerade herum, Mo?

Ich bin seit ein paar Tagen in Vietnam. Aus Saigon bin ich direkt auf die eher ruhige Insel Côn Đảo geflüchtet. Abschalten werde ich aber erst in der zweiten Hälfte meiner Reise. Ich habe mir Arbeit mitgenommen und bin dafür etwas länger unterwegs. Dass das so funktioniert genieße ich total!


Behind the scenes: Kim

In loser Folge stellen wir euch die Leute vor, die Uberspace für euch machen. Heute trifft es Kim, mit dem ihr wahrscheinlich bereits zu tun hattet, wenn ihr euch per Mail oder Twitter an unseren Support gewendet habt. Jonas hat ihn per Videochat interviewt.

Hey Kim! Oh, gar nicht im Büro heute?

Nein, heute nicht, denn meine beiden Fahrräder sind gerade zur Reparatur, deshalb arbeite ich heute von Zuhause aus. Ich habe im Moment einfach leider nicht viel Glück mit Fahrrädern, wie’s aussieht. Ansonsten arbeite ich aber durchaus gerne vom Büro aus.


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.


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.