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.


Uberspace 7 - Episode 8

Moin zusammen! Gehen wir gleich ans Eingemachte. Im letzten Blogartikel schreiben wir:

Zwar ist Uberspace 7 nicht feature complete, aber so gut wie „fertig“ genug, um es endlich für Euch aufzumachen. Das heißt, wir spucken nun nochmal ordentlich in die Hände, gehen Montag in den letzten, zweiwöchigen Sprint und dann… machen wir erst nochmal Urlaub und erholen uns ordentlich. 🌴😎

Die Entwickler unter euch werden wissen: Der letzte Sprint ist nie der letzte und so mussten wir natürlich auch hier (was ETAs angeht hätten wir eigentlich aus der Vergangenheit lernen müssen…) noch mal das Skalpell ansetzen und aus einem Sprint mehrere machen.


Uberspace 7 - Episode 7

Lange haben wir in Sachen Uberspace 7 nichts von uns hören lassen, zu lange. Nicht um künstlich die Spannung zu steigern oder irgendwie Geheimniskrämerei zu betreiben, sondern einfach weil viele kleine und große andere Dinge an unseren Ressourcen nagten und der Blog dabei leider etwas hinten runterfiel.

Auch haben wir bei der Einführung agiler Entwicklungsmethoden immer wieder erkennen müssen, dass Dinge die man richtig, sauber und nachhaltig bauen möchte einfach immer etwas mehr Zeit in Anspruch nehmen, als vorher kalkuliert. Und “etwas mehr” bedeutet durchaus auch mal “noch etwas mehr”. Bitte entschuldigt.


WordPress CVE-2017-8295 - Unauthorized Password Reset

Standard WordPress-Installationen der Version 4.7.4 sind im Moment für die Lücke CVE-2017-8295 anfällig. Mithilfe dieser Lücke kann ein Angreifer Password-Reset-Mails an beliebige Mailserver umleiten und so an den kritischen Link gelangen. Seitens WordPress gibt es hierfür noch keinen Fix.

Das funktioniert, da WordPress den Host-Header 1:1 für diverse Mail-Header in der ausgehenden Mail benutzt. Wie das genau funktioniert könnt ihr in der Exploit-DB nachlesen.

Ein Angriff würde also beispielsweise so aussehen:

POST /wp/wordpress/wp-login.php?action=lostpassword HTTP/1.1
Host: injected-attackers-mxserver.com   <== oh noes! D:
Content-Type: application/x-www-form-urlencoded
Content-Length: 56

user_login=admin&redirect_to=&wp-submit=Get+New+Password

In unserem Setup werden Requests anhand ihrer Host-Header an die jeweiligen Uberspaces und damit an die WordPress-Instanzen verteilt. Wenn nun eine Angreiferin den Header modifiziert, landet der Request gar nicht erst bei der angegriffenen WordPress-Instanz, sondern auf unserer “Diese Domain kennen wir leider nicht”-Seite. Ein WordPress, das bei uns gehostet ist, ist für diese Lücke also nicht anfällig.


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.


Und schwups war DNS aus

Was lernen wir als kleine Kinder von unseren Eltern? Immer in beide Richtungen schauen bevor die Straße überquert wird. – Nur was ist mit Einbahnstraßen? Ist es schlau sich den unnötigen Blick in die verbotene Gegenrichtung zu sparen, oder ist es schlau das Unerwartete zu erwarten und trotzdem in beide Richtungen zu schauen?

Wenn es um Computer geht ist es meist am besten, auch mit dem Unerwarteten zu rechnen, das ist zum Beispiel eine wichtige Lektion wenn es um IT-Security geht, aber auch beim Debugging kann das viel Kopfzerbrechen sparen (aber leider meist keine Zeit). Aber auch in der Kommunikation mit Menschen kann das eine wichtige Lektion sein, sonst passieren manchmal nicht nur Dinge die gewollt waren, sondern auch Dinge die nicht gewollt waren. Besonders gefährlich ist, wenn Dinge als implizit gegeben angenommen werden und nicht explizit gesagt werden.


Uberspace 7 - Episode 6

Update 18.01.2017

Der erste Server ist (voll automatisch) aufgesetzt, alle Kollegen haben einen Account, schauen sich um und finden (und beheben) gerade die ersten Bugs. Die letzten grundlegenden Funktionen sind (oder werden gerade) implementiert und in ein paar Tagen trauen wir uns, die ersten User auf das System zu lassen. Wir haben bereits eine Hand voll Tester rekrutiert und werden diese Gruppe langsam vergrößern. Auch hier wird dann zu gegebener Zeit ein Update erfolgen, in dem wir euch die Möglichkeit geben, einen Account zu testen.


Uberspace 7 - Episode 5

Es geht [gut voran] 1, mit unserer neuen Arbeitsweise sind wir inzwischen gut vertraut und sie ist uns in Mark und Bein übergegangen. Wir wollen euch nun mal kurz unsere Bürotür öffnen und euch zeigen, woran wir gerade arbeiten und wie die nähere Zukunft aussieht.

Wir tauschen unser HTTPS-Frontend aus

Inzwischen ist es spruchreif: Wir tauschen unser HTTPS-Frontend aus. Bisher haben wir auf [Pound] 3 gesetzt, mit Uberspace 7 setzen wir auf [nginx] 4. Das bringt folgende Vorteile:


Write the Docs Europe 2016 in Prag

Jonas und ich waren in der letzten Woche in Prag, um die Write the Docs Europe zu besuchen. Es war für uns beide die erste Write the Docs und, um das schonmal vorwegzunehmen, sicher nicht die letzte!

Warum eine Doku-Konferenz?

Wir wollen unsere Dokumentation verbessern. Nicht, dass sie schlecht wäre, wirklich gut ist sie aber eben auch nur bedingt. Ich weiß, viele von euch mögen sie sehr und ich auch, aber unsere wachsende Popularität stellt uns da gleich vor mehrere Herausforderungen:


Eine Runde mit dem Paternoster gefällig?

Wie ihr im aktuellen Blogpost der Uberspace-7-Reihe lesen könnt, ändert sich im Bereich unserer Shellscripts gerade eine ganze Menge. Aus Config-Dateien werden Ansible-Facts, aus Bash werden Playbooks oder Python-Skripte. Um all diese Teile wieder unter einen Hut zu bekommen, müssten wir einen Ausflug in die Softwareentwicklung machen.

Viele unserer Features - wie das allseits beliebte uberspace-add-domain - erfordern, dass wir euch mehr Rechte einräumen, als ihr eigentlich haben dürft. Auf diesem Weg könnt ihr beispielsweise mit uberspace-add-domain auf die Konfiguration unseres Webservers oder mit uberspace-add-port auf das iptables-Ruleset in engen Grenzen und indirekt, aber dennoch schreibend, zugreifen.