StartSoftwareInternetDeaktivieren des Verzeichniseintrags mit .htaccess

Deaktivieren des Verzeichniseintrags mit .htaccess

Ein Directory Listing ist eine Serverfunktion, die alle Dateien und Ordner eines Verzeichnisses anzeigt, wenn keine Indexdatei vorhanden ist. Diese Funktion zu deaktivieren, ist ein kritischer Schritt für die Websicherheit, um Informationsoffenlegung zu verhindern. Dieser Artikel erklärt die Risiken von Directory Listings, wie man sie auf Apache-, Nginx- und IIS-Servern deaktiviert und welche Best Practices es für den Schutz Ihrer Serververzeichnisse gibt.

Was ist ein Directory Listing und warum sollte man es deaktivieren?

Ein Directory Listing (Verzeichnisauflistung) ist das Standardverhalten von Webservern, den gesamten Inhalt eines Ordners anzuzeigen, wenn keine Indexdatei wie index.html, index.php oder default.htm vorhanden ist. Der Browser zeigt die Dateien und Ordner dann als Hyperlinks an, sodass Besucher direkt darauf zugreifen oder sie herunterladen können.

Diese Funktion kann zwar für schnelles Filesharing oder Debugging nützlich sein, stellt aber ein ernstzunehmendes Sicherheitsrisiko dar. Angreifer können Directory Listings ausnutzen, um sensible Dateien zu entdecken, wie Datenbanksicherungen, Konfigurationsdateien (.env, config.php), Logs oder Skripte, die privat bleiben sollten. Diese Informationen können dann für weitere Angriffe wie „Forced Browsing“ oder „Directory Enumeration“ verwendet werden.

Ein aktiviertes Directory Listing zu hinterlassen, ist, als würde man potenziellen Angreifern eine Landkarte aller sensiblen Dateien aushändigen.

Beispiel für ein aktives Directory Listing

Wenn das Directory Listing nicht deaktiviert ist, sieht ein Besucher beim Aufruf eines Verzeichnisses ohne Indexdatei eine Anzeige ähnlich der folgenden.

Beispiel für ein aktives Directory Listing, das Dateien und Ordner anzeigt
Beispiel für ein aktives Directory Listing: Alle Dateien und Ordner sind sichtbar

So deaktivieren Sie Directory Listings auf verschiedenen Servern

Die Methode zum Deaktivieren von Directory Listings hängt vom verwendeten Webserver ab. Hier sind technische Anleitungen für die gängigsten Server: Apache, Nginx und IIS.

1. Directory Listing auf Apache deaktivieren

Bei Apache können Sie die Verzeichnisauflistung über die .htaccess-Datei oder die Konfiguration des virtuellen Hosts steuern. Zwei Hauptdirektiven werden häufig verwendet: Options -Indexes und IndexIgnore.

Verwendung von Options -Indexes

Fügen Sie die folgende Zeile in Ihre .htaccess-Datei im Stammverzeichnis oder innerhalb eines <Directory>-Blocks in der Hauptkonfiguration ein:

Options -Indexes

Diese Direktive verhindert, dass Apache Verzeichnislisten generiert. Wenn ein Benutzer auf ein Verzeichnis ohne Indexdatei zugreift, gibt der Server eine 403 Forbidden-Antwort zurück. Dies ist die empfohlene Methode, da sie den Zugriff vollständig blockiert.

403 Forbidden-Fehler nach dem Deaktivieren des Directory Listings mit Options -Indexes
Nach dem Anwenden von Options -Indexes zeigt der Browser eine 403 Forbidden-Meldung an

Verwendung von IndexIgnore

Eine Alternative ist die IndexIgnore-Direktive, die bestimmte Dateien oder Verzeichnisse vor der Auflistung verbirgt. Beispiel:

IndexIgnore *

Dieser Befehl verbirgt alle Dateien, sodass die Verzeichnisauflistung leer erscheint. Im Gegensatz zu Options -Indexes bleibt das Verzeichnis jedoch zugänglich, wenn jemand den genauen Dateinamen kennt. Daher ist IndexIgnore weniger sicher.

Ergebnis von IndexIgnore *: Das Verzeichnis erscheint leer, obwohl Dateien vorhanden sind
Ergebnis von IndexIgnore *: Das Verzeichnis wirkt leer, obwohl es Dateien enthält

Warnung: Wenn Sie Options -Indexes verwenden, aber den Zugriff auf bestimmte Dateien erlauben müssen, können Sie es mit DirectoryIndex oder Rewrite-Regeln kombinieren.

2. Directory Listing auf Nginx deaktivieren

Nginx verwendet das Modul ngx_http_autoindex_module zur Steuerung von Directory Listings. Standardmäßig ist Autoindex deaktiviert. Sie können dies jedoch sicherstellen, indem Sie die folgende Konfiguration in einen location– oder server-Block einfügen:

location / {
    autoindex off;
}

Um es für den gesamten Server zu deaktivieren, platzieren Sie es im http– oder server-Block. Um zu überprüfen, ob Autoindex aktiv ist, verwenden Sie nginx -T, um die vollständige Konfiguration anzuzeigen.

3. Directory Listing auf IIS (Internet Information Services) deaktivieren

Im IIS wird die Verzeichnisauflistung über die Funktion „Directory Browsing“ gesteuert. Sie können sie über den IIS-Manager deaktivieren:

  • Öffnen Sie den IIS-Manager und wählen Sie die Website oder das Verzeichnis aus, das Sie konfigurieren möchten.
  • Doppelklicken Sie auf das Feature Directory Browsing.
  • Klicken Sie im Aktionsbereich auf Deaktivieren.

Alternativ können Sie die Konfiguration über die web.config-Datei ändern, indem Sie das folgende Element hinzufügen:

<configuration>
  <system.webServer>
    <directoryBrowse enabled="false" />
  </system.webServer>
</configuration>

Alternative Methode: Leere Indexdateien erstellen

Wenn Sie keinen Zugriff auf die Serverkonfiguration haben, ist die einfachste Methode, in jedem Verzeichnis eine leere Indexdatei zu erstellen. Erstellen Sie einfach eine Datei namens index.html (oder index.php) ohne Inhalt. Wenn Benutzer auf das Verzeichnis zugreifen, zeigt der Server eine leere Seite an oder leitet auf diese Datei weiter.

Dieser Ansatz funktioniert für kleine Websites, wird aber bei tausenden von Ordnern unpraktisch. Außerdem bleibt eine leere Indexdatei zugänglich und bietet keinen Schutz, wenn jemand Dateinamen errät.

Für maximale Sicherheit kombinieren Sie leere Indexdateien mit der Deaktivierung von Directory Listings auf Serverebene.

Best Practices für die Verzeichnissicherheit

Neben der Deaktivierung von Directory Listings sollten Sie diese zusätzlichen Schritte in Betracht ziehen, um Ihre Serververzeichnisse abzusichern:

  • Beschränken Sie den Zugriff durch Authentifizierung: Verwenden Sie .htpasswd auf Apache oder die integrierte Authentifizierung auf Nginx/IIS, um administrative Verzeichnisse zu schützen.
  • Lagern Sie sensible Dateien außerhalb des Document Root aus: Speichern Sie Konfigurationsdateien und kritische Daten in Verzeichnissen, die nicht über das Web erreichbar sind.
  • Prüfen Sie regelmäßig: Verwenden Sie Sicherheitsscanner oder Crawler, um Verzeichnisse zu erkennen, die noch Auflistungen erlauben.
  • Deaktivieren Sie die Skriptausführung in Upload-Verzeichnissen: Mit Options -ExecCGI auf Apache oder entsprechenden Regeln auf anderen Servern.

OWASP (Open Web Application Security Project) empfiehlt, Directory Listings im Rahmen der Server-Härtung immer zu deaktivieren. Die offizielle Anleitung dazu finden Sie auf der OWASP-Seite zu Forced Browsing.

Fazit

Das Deaktivieren von Directory Listings ist ein grundlegender Schritt zur Sicherung Ihrer Website. Mit den obigen Anleitungen können Sie unbeabsichtigte Informationslecks verhindern. Wählen Sie die Methode, die zu Ihrer Serverinfrastruktur passt: Verwenden Sie Options -Indexes auf Apache, autoindex off auf Nginx oder deaktivieren Sie „Directory Browsing“ auf IIS. Kombinieren Sie diese Maßnahmen mit anderen Sicherheitspraktiken, um eine mehrschichtige Verteidigung zu schaffen.

Weiterführende Dokumentation finden Sie auf den offiziellen Seiten von Apache mod_autoindex und Nginx ngx_http_autoindex_module.

Neueste Artikel