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.


Uberspace 7 - Episode 4

From stateful to stateless - the whole enchilada

Bei Uberspace habt ihr die Möglichkeit, eure eigenen Domains aufzuschalten, Ports in der Firewall zu öffnen und Zertifikate einzutragen. Bei all diesen Aktionen interagiert ihr mit Konfigurationsdateien, auf die ihr eigentlich keinen Zugriff habt - mit dem Webserver, unserem HTTPS-Frontend und der Firewall.


Wo mehr Plattenplatz her kommt

Als wir mit Uberspace angefangen haben, haben wir bekanntermaßen nicht damit gerechnet, dass das so groß wird. Das führte zu ein paar Fehlkalkulationen unsererseits, die verschiedene Probleme aufgeworfen haben, wovon die meisten aber schon lange gelöst sind. Ein hartnäckigeres Problem war das mit dem Plattenplatz. Zu Anfang hatten wir unseren VMs jeweils nur 400 GB Speicher zugewiesen, was sich im Verhältnis zu der Menge an Usern die wir auf die Server gelassen haben als Fehlkalkulation bei der Mischkalkulation herausgestellt hat (Rimshot). Wir lassen keine neuen User mehr auf diese Server, aber auch für die schon vorhandenen User ist der Platz zu knapp und wir müssen ihn vergrößern. Das ist allerdings leider nicht so einfach wie es vielleicht klingt.


httpoxy auf Uberspace

Wie ihr sicherlich schon auf Hackernews oder anders wo gelesen habt, kursiert gerade eine “neue” Lücke für diverse GCI-Applikationen im Netz: httpoxy.

Konkret geht es darum, dass der Proxy-HTTP-Header des Clients aufgrund der CGI-Spezifikation in der Umgebungsvariable $HTTP_PROXY landet. Diese wird von unzähligen Applikationen dazu benutzt, Verbindungen nach außen aufzubauen. Somit hätte ein potentieller Angreifer die volle Kontrolle über diese Aufrufe, die zum Beispiel die API eines Zahlungsanbieters als Ziel haben können.


Uberspace 7 - Episode 3

In Uberspace 7 - Episode 2 haben wir das Thema Tests angerissen:

Nachdem Features definiert wurden sollte man anfangen, Tests zu schreiben und damit die Anforderungen an die Features genau definieren.

Aber wie sieht so ein Test eigentlich aus? Beispiel: Jeder User bekommt mit seinem Account eine Mailbox, die er mit seinem SSH-Kennwort abrufen kann. Ein Test dafür würde folgendermaßen aussehen:

  1. Einen User auf dem Server anlegen
  2. Ein SSH-Passwort setzen
  3. Eine Mail an User schicken
  4. Der User loggt sich per IMAP ein
  5. User holt Mail 1 per IMAP ab (Es kann nur eine Mail da sein, der User ist ganz frisch angelegt und das Postfach war vor der Testmail leer)
  6. Wir überprüfen den Inhalt der Mail auf einen bestimmten String
  7. Profit!

Diesen Test haben wir mit Ansible realisiert. Und jetzt mal Butter bei die Fische, so sieht das in Code aus: Die Variablen testuser und dummypassword haben wir bereits an anderer Stelle definiert, in ansible_fqdn steht der Hostname des Servers. <{{ testuser }}@{{ ansible_fqdn }}> ist also die E-Mail-Adresse des Testusers.


Performance des Hosts Sirius in den letzten Tagen

Wie eine Hand voll User bemerkt haben, lief es in den letzten Tagen auf dem Host “Sirius” nicht ganz so rund, wie wir es selbst gerne hätten. Konkret hatten wir dort seit Dienstag Mittag mit einer erhöhten Load- und I/O-Werten zu kämpfen.

Wir möchten hier bei den betroffenen Sirius-Ubernauten um Entschuldigung bitten, euch erzählen warum das überhaupt der Fall war und auch ein bisschen darüber aufklären, wie wir im Allgemeinen mit solchen Problemen umgehen.


Uberspace 7 - Episode 2

Vielleicht fragt ihr euch, wie man so ein System denn überhaupt entwirft, was die einzelnen Phasen der Entwicklung sind und wie unsere Arbeitsweise so aussieht. Mit herzlichen Grüßen aus dem Bergwerk folgt hier ein kleiner Einblick in unsere tägliche Arbeit und den aktuellen Stand der Dinge.

Die Phasen der Entwicklung

… und was wir anders machen würden, wenn wir nochmal von vorne anfangen würden.


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.


Uberspace 7 - Episode 1

Die Sache mit den ETAs

Eines unserer Grundprinzipien ist: Wir geben keine ETAs. Features kommen, wenn sie fertig sind und nicht zu versprochenen Zeitpunkten. Wir sind der Meinung, dass es nicht gut sein kann, unter Zeitdruck an etwas zu arbeiten und sind fertig, wenn wir eben der Meinung sind, dass wir fertig sind; wenn wir soweit hinter unserer Arbeit stehen, dass wir sie vertreten können und gut finden. Wir haben kein Venture Capital und keine Abteilung im Rücken, die darauf pocht, neue Features schnellstmöglich und unpoliert auf den Markt zu werfen und profitabel zu machen. Daher nehmen wir uns die Zeit, die wir eben brauchen und finden diese Herangehensweise richtig und wichtig. Allerdings haben wir bei einer Sache mit diesem Grundprinzip gebrochen und das ist Uberspace 7. Unser erster ETA war Ende 2015, dann war es Anfang 2016. Jetzt haben wir daraus gelernt und wollen euch in einer Reihe von Blogeinträgen ein wenig an unserem Lernprozess teilhaben lassen und erklären, warum das alles (gefühlt) so schrecklich lange dauert. Aber erst mal ein Schritt zurück: Uberspace 7?


Uberspace-Sticker, die Zweite!

Auf dem 32c3 haben wir erstmals unsere Uberspace-Sticker verteilt. Die Nachfrage dort war so groß, dass sie uns nach 2 Tage schon wieder ausgegangen sind. Nach dem Event hat sich die Tatsache, dass es jetzt Sticker von uns gibt, relativ schnell rumgesprochen, sodass wir einen Haufen Anfragen dazu bekamen. Letzten Endes haben wir “klein beigegeben”, das ganze offiziell gemacht und aufgrund der Anzahl der Anfragen eine eigene Queue in unserem Ticketsystem eingerichtet.