FollowSymLinks vs. SymLinksIfOwnerMatch

Wir haben bei Uberspace.de Mist gebaut – da gibt es wenig zu beschönigen. Unsere Konfiguration des Apache-Webservers hatte – immer schon – die Option FollowSymLinks standardmäßig aktiviert, damit der Apache, nun ja: Symlinks folgt. Das ist wichtig, weil Symlinks weit verbreitet sind und nicht zuletzt auch die Verzeichnisstrukturen vieler Webapplikationen intensiv auf Symlinks setzen.

tl;dr

  • Unsere Apache-Konfiguration wies eine Konfigurationsschwäche auf, die es über Symlink-Attacken lokalen Usern ermöglichte, Dateien außerhalb des eigenen DocumentRoots einzusehen, sofern jene für den Apache lesbar

Gigantische Apache Errorlogs

Wer kennt das nicht: Hin und wieder wachsen die Errorlogs von Apache binnen kürzester Zeit zu gigantischen Größen an. Wer (zweifelhaftes) Glück hat bemerkt das nicht weil das System hohen I/O Load davon bekommt, sondern erst wenn die Festplatte voll ist. Da steht schnell die Frage im Raum: „Tut das Not? Das muss doch nicht sein!“

Muss es auch nicht.

Unter CentOS 5 haben wir dazu den Apache angewiesen seine Errorlogs einfach an das Tool multilog aus den daemontools zu …

Got root?

Ein Kunde von uns sorgte neulich für Verwirrung, weil wir uns auf seinen Servern mit einem Mal nicht mehr einloggen konnten. Auf Nachfrage stellte sich dann heraus: Der Kunde hatte gerade eine neue Policy eingeführt und den Root-Account deaktiviert — und war noch nicht dazu gekommen uns zu informieren. Alles halb so wild, war ja glücklicherweise aufgefallen bevor irgendwas ausgefallen war und wir schnell auf die Server hätten zugreifen müssen/sollen. Aber es ergab sich dann doch eine Diskussion über den …

Werkstattbericht: UEFI

Ich hab mich schon seit einer Weile für UEFI interessiert und früher durch Macs, seit anderhalb Jahren durch meinen neuen Laptop und in den letzten Wochen und Monaten nun auch bei den ersten neuen Servern die Gelegenheit gehabt, mich auch damit zu beschäftigen. (Auch im Freundeskreis tauchten schon diverse Geräte mit UEFI auf — oft gefolgt von den ersten Hilferufen.) Nun steht ein Urlaub an, das ist die perfekte Gelegenheit das gesammelte gefährliche Halbwissen und mühsam erkämpfte Wissen vorher mal …

Da waren’s plötzlich 0b101 (bzw. 5)

Von Uberspace habe ich (Daniel) auf kuriosem Wege erfahren. Kurz nach dem CCC-Congress 27c3 in Berlin twitterte ich über Daniel J. Bernsteins Vortrag „High-speed high-security cryptography: encrypting and authenticating the whole Internet“ und landete daraufhin wohl auf Jonas Radar. Den noch jungen @ubernauten-Account fand ich kurz darauf durch Zufall unter meinen Followern und klickte neugierig auf den Link, den man bei Twitter als Webseite hinterlegen kann. Ich war unendlich begeistert von der Idee, Webhosting mal anders zu …

Die Annalen der Bash-Geschichte

Heute mal wieder eine Episode aus den „adventures in modern computing“.

Wer die Bash (oder eine andere gängige Shell, hier geht es aber spezifisch um die Bash) kennt, wird höchstwahrscheinlich ihre äußerst nützliche History-Funktion kennen. Die Bash loggt die Befehle die man auf ihr eingibt und hält sie in einem Puffer bereit, auf den man verschiedentlich zugreifen kann um Befehle erneut auszuführen, anzupassen oder sich einfach ins Gedächtnis zu rufen. In erster Linie ist dies wohl als Arbeitserleichterung gedacht, es …

Enterprise, my ass

Es war nur eine vergleichsweise unscheinbare Supportanfrage. Über das Webmail-System könnten gerade keine Mails mehr verschickt werden – es gäbe einen Authentifizierungsfehler. Merkwürdig ist das vor allem aus einem Grund: Für SMTP AUTH werden die gleichen Zugangsdaten verwendet wie für IMAP, und die stimmen – sonst hätte sich der User gar nicht erst am Webmail-System einloggen können. Die Möglichkeit, für SMTP AUTH davon abweichende Daten einzustellen, gibt es überhaupt nicht. Wie kann es also sein, dass Zugangsdaten für IMAP funktionieren, …

Es sei denn, es ist die letzte Zeile

Mit SMTP verhält es sich so: Ein Client sendet ein Kommando; der Server antwortet mit einem dreistelligen Statuscode, gefolgt von einem Leerzeichen und Text. Beispielsweise so:

HELO mainz.jonaspasche.com
250 crux.uberspace.de

Eine Antwort kann aber auch mehrzeilig ausfallen – in diesem Fall wird zwischen Statuscode und Text ein Minus statt eines Leerzeichens angegeben, um zu signalisieren, dass noch eine weitere Zeile kommt, und erst die letzte hat dann ein Leerzeichen. Beispielsweise so:

EHLO mainz.jonaspasche.com
250-crux.uberspace.de
250-PIPELINING
250-8BITMIME
250-AUTH LOGIN PLAIN
250 

(Auch) darum machen wir Uberspace.de

Manchmal sind wir fast etwas überrascht davon, dass offenbar als Besonderheit Nr. 1 von Uberspace.de ausgerechnet das freie Preismodell gesehen wird, das wir eigentlich eher als Nebenschauplatz gesehen hatten – und das vornehmlich aus der Bequemlichkeit heraus entstanden ist, nicht ständig über „warum kostet dieses und jenes so und so viel, und woanders kostet das aber so und so viel“ diskutieren zu müssen. Eigentlich lag unser Hauptanliegen vielmehr darin, mal etwas angstfreier damit umzugehen, Usern eine „echte Shell“ an die …

Schreibmaschine mit memory_limit

Normalerweise sitze ich nicht um 1:20 Uhr noch am Rechner, um PHP-Probleme zu debuggen. Insbesondere nicht, wenn’s keine bezahlte Auftragsarbeit ist, sondern nacktes „Ich! Will! Das! Verstehen!“. Aber genau sowas hatte ich heute. Nachdem ich vor einigen Tagen schon mal ergebnislos an dem folgenden Problem herumgedoktert hatte, habe ich mich heute nochmal darin verbissen.

Ein User betreibt einen Magento-Shop auf unserer Hosting-Plattform Uberspace.de. Dazu gehören auch einige Hintergrundjobs, und zwar unter anderem dieser hier, der ganz offenkundig am memory_limit