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.

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.

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. Wie wir das bisher gemacht haben Sicherlich kennt ihr unsere uberspace-add-domain, uberspace-add-certificate und uberspace-add-port-Skripte und vielleicht habt ihr schon mal einen Blick hinen geworfen.

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).

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: Einen User auf dem Server anlegen Ein SSH-Passwort setzen Eine Mail an User schicken Der User loggt sich per IMAP ein 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) Wir überprüfen den Inhalt der Mail auf einen bestimmten String Profit!

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. Features definieren Im ersten Schritt haben wir uns Gedanken darüber gemacht, was ein Uberspace eigentlich ist: Was unsere User erwarten, was wir selbst erwarten und was wir davon zuverlässig liefern können.

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.

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.