Webserver-Sicherheit, Teil 1

10 Tipps zur Sicherheitsoptimierung von Apache

Tipp 3: Konfigurationsoptionen für das Wurzelverzeichnis

In den Zeilen 316-319 der Datei httpd.conf werden Konfigurationsoptionen für das Wurzelverzeichnis »/« des Dateisystems festgelegt. Die besagte Stelle der Konfigurationsdatei sieht wie folgt aus:

<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>

Ich persönlich sehe keinen Grund dafür, dass der Apache, hervorgerufen durch die Angabe der Option FollowSymLinks, standardmäßig symbolischen Links folgt. Dieses Verhalten ist insbesondere deshalb fragwürdig, da durch diese Standardkonfiguration ebenfalls solche Links beziehungsweise Verweise verfolgt werden, bei denen die Zieldatei bzw. das Zielverzeichnis nicht demselben Benutzer gehören, dem der eigentliche Link gehört. Dadurch ist es einem potenziellen Angreifer prinzipiell möglich, auf Dateien zuzugreifen, die außerhalb des als DocumentRoot definierten Verzeichnisses gespeichert sind. Aus diesem Grunde halte ich folgende Konfiguration für sinnvoller:

<Directory />
Options None
AllowOverride None
</Directory>

Falls Sie dennoch auf symbolische Verweise im Wurzelverzeichnis nicht verzichten können, sollten Sie das Verfolgen von symbolischen Links wenigstens auf solche beschränken, bei denen der Besitzer der Zieldatei beziehungsweise des Zielverzeichnisses mit dem Besitzer des Verweises identisch ist:

<Directory />
Options SymLinksIfOwnerMatch
AllowOverride None
</Directory>

Die vorherige Variante ist dennoch wahrscheinlich die sicherere. Des Weiteren ist es aus sicherheitstechnischer Sicht sinnvoll, den Zugriff auf die Wurzel des Dateisystems (»/«) ebenfalls an dieser Stelle zu beschränken. Die beste Konfiguration an dieser Stelle der Datei httpd.conf ist deshalb wohl:

<Directory />
Options None
AllowOverride None
Order deny,allow
Deny from all
</Directory>

Mit Hilfe dieser Konfiguration lassen sich unter anderem so genannte Directory Traversals, das heißt mutwillige Durchstöberung des gesamten Verzeichnisbaums eines Servers, verhindern.